设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1968|回复: 2
打印 上一主题 下一主题

[已经解决] 详细帮助窗口的文字对齐问题。

[复制链接]

Lv1.梦旅人

梦石
0
星屑
70
在线时间
187 小时
注册时间
2006-9-3
帖子
175
跳转到指定楼层
1
发表于 2012-4-14 22:18:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 he11120 于 2012-4-14 22:19 编辑

里面有个对齐方式:左、中、右。
但我改了好像无效,谁帮我改成中间对齐的?
(装备的属性和状态描述那块对齐,其余不用),如图这样的,以中间像两边扩散。
  1. #==============================================================================
  2. # 禾西製作 / Created by Quarcy
  3. #==============================================================================
  4. class Window_Help < Window_Base
  5.   attr_reader :materia
  6.   #--------------------------------------------------------------------------
  7.   # ● 定義不顯示的屬性與狀態
  8.   #--------------------------------------------------------------------------
  9.   def unshown
  10.     @unshow_elements = [9, 10,11,12,13,14,15,16]
  11.     @unshow_states = []
  12.   end
  13.   #--------------------------------------------------------------------------
  14.   # ● 初始化對象
  15.   #--------------------------------------------------------------------------
  16.   def initialize
  17.     super(0, 0, 640, 64)
  18.     self.opacity = 150
  19.     self.z=150
  20.     self.visible = false
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # ● 設置文本
  24.   #     data  : 窗口顯示的字符串/物品資料
  25.   #     align : 對齊方式 (0..左對齊、1..中間對齊、2..右對齊)
  26.   #--------------------------------------------------------------------------
  27.   def set_text(data, align=0)
  28.     #------------------------------------------------------------------------
  29.     # ● 當資料爲文字時候
  30.     #------------------------------------------------------------------------
  31.     # 如果文本或對齊方式至少一方与上次的不同
  32.     if data != @text or align != @align
  33.       if data.is_a?(String)
  34.         # 再描繪文本
  35.         self.width = 640
  36.         self.height = 64
  37.         self.x=0
  38.         self.y=0
  39.         self.contents = Bitmap.new(width - 32, height - 32) if self.contents.nil?
  40.         self.contents.clear
  41.         self.contents.font.color = normal_color
  42.         self.contents.font.size = 20
  43.         self.contents.draw_text(4, 0, self.width - 40, 32, data, align)
  44.         @text = data
  45.         @align = align
  46.         @actor = nil
  47.         self.visible = true
  48.       end
  49.     end
  50.     return if data.is_a?(String)
  51.     #------------------------------------------------------------------------
  52.     # ● 當沒有資料時候
  53.     #------------------------------------------------------------------------
  54.     if data.nil?
  55.       self.visible=false
  56.     else
  57.       self.visible=true
  58.     end
  59.     #------------------------------------------------------------------------
  60.     # ● 當資料爲物品/技能時候
  61.     #------------------------------------------------------------------------
  62.     if data != nil && @data != data or self.width != 210
  63.       self.width = 210
  64.       self.height = 430
  65.       self.x=0
  66.       self.y=200
  67.       unshown
  68.       non_auto_update(data)
  69.     else
  70.       return
  71.     end
  72.   end
  73.   #--------------------------------------------------------------------------
  74.   # ● 更新帮助窗口
  75.   #--------------------------------------------------------------------------
  76.   def non_auto_update(data=@data)
  77.     @data = data
  78.     case @data
  79.     when RPG::Item
  80.       set_item_text(@data)
  81.     when RPG::Weapon
  82.       set_equipment_text(@data)
  83.     when RPG::Armor
  84.       set_equipment_text(@data)
  85.     when RPG::Skill
  86.       set_skill_text(@data)
  87.     end
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ● 裝備帮助窗口
  91.   #--------------------------------------------------------------------------
  92.   def set_equipment_text(equipment)
  93.     #------------------------------------------------------------------------
  94.     # ● 取得基本質料
  95.     #------------------------------------------------------------------------
  96.     # 取得屬性、附加狀態、解除狀態之副本
  97.     case equipment
  98.     when RPG::Weapon
  99.       element_set = equipment.element_set.clone
  100.       plus_state_set = equipment.plus_state_set.clone
  101.       minus_state_set = equipment.minus_state_set.clone
  102.       #----------------------#
  103.       # 過濾不顯示的狀態描述 #
  104.       #----------------------#
  105.       plus_state_set -= @unshow_states
  106.       minus_state_set -= @unshow_states
  107.     when RPG::Armor
  108.       element_set = equipment.guard_element_set.clone
  109.       guard_state_set = equipment.guard_state_set.clone
  110.       #----------------------#
  111.       # 過濾不顯示的狀態描述 #
  112.       #----------------------#
  113.       auto_state_id = equipment.auto_state_id
  114.       guard_state_set -= @unshow_states
  115.     end
  116.     #----------------------#
  117.     # 過濾不顯示的屬性描述 #
  118.     #----------------------#
  119.     element_set -= @unshow_elements
  120.     #--------------#
  121.     # 取得說明文字 #
  122.     #--------------#
  123.     description = equipment.description.clone
  124.     # 初始化數據設定
  125.     x = 0
  126.     y = 0
  127.     h = 0
  128.     phrase = {}
  129.    
  130.     # 基本文字設定
  131.     phrase["price"] = "价格:"
  132.     phrase["elements"] = "属性:"
  133.     phrase["minus_states"] = "解除状态:"
  134.     phrase["plus_states"] = "附加状态:"
  135.     phrase["guard_elements"] = "防御属性:"
  136.     phrase["guard_states"] = "防御状态:"
  137.     phrase["auto_state"] = "自动状态:"

  138.     # 基本數據設定
  139. =begin
  140.     name_size = 名字文字大小
  141.     size = 描述文字大小
  142.     word = 每行的描述文字數
  143.     move = 全體描述偏移幅度
  144. =end
  145.     name_size = 18
  146.     size = 14
  147.     word = 12
  148.     move = 25
  149.     #------------------------------------------------------------------------
  150.     # ● 確定背景圖片的高度
  151.     #------------------------------------------------------------------------
  152.     h += (description.size/3/word)
  153.     h += 1 if (description.size/3%word) > 0
  154.     h += 1 if equipment.is_a?(RPG::Weapon)
  155.     now_h = h
  156.     h += 1
  157.     h += 1 unless equipment.pdef.zero?
  158.     h += 1 unless equipment.mdef.zero?
  159.     h += 1 if element_set.size > 0
  160.     h += 1 if element_set.size >= 5
  161.     case equipment
  162.     when RPG::Weapon
  163.       h += 1 unless minus_state_set.empty?
  164.       h += minus_state_set.size
  165.       h += 1 unless plus_state_set.empty?
  166.       h += plus_state_set.size
  167.     when RPG::Armor
  168.       h += 1 unless guard_state_set.empty?
  169.       h += guard_state_set.size
  170.       h += 1 unless auto_state_id.zero?
  171.     end
  172.     h += 1
  173.     h += 1 unless equipment.str_plus.zero?
  174.     h += 1 unless equipment.dex_plus.zero?
  175.     h += 1 unless equipment.agi_plus.zero?
  176.     h += 1 unless equipment.int_plus.zero?
  177.     h += materia_height_plus(equipment) unless self.materia.nil?
  178.     #------------------------------------------------------------------------
  179.     # ● 圖片顯示保證高度
  180.     #------------------------------------------------------------------------
  181.     h = 6 + now_h if (h - now_h) < 6
  182.     #------------------------------------------------------------------------
  183.     # ● 換算高度
  184.     #------------------------------------------------------------------------
  185.     self.height = h * size + name_size + 32
  186.     #------------------------------------------------------------------------
  187.     # ● 生成背景
  188.     #------------------------------------------------------------------------
  189.     self.contents = Bitmap.new(self.width - 32, self.height - 32)
  190.     self.contents.clear
  191.     #------------------------------------------------------------------------
  192.     # ● 名字描繪
  193.     #------------------------------------------------------------------------
  194.     text = equipment.name
  195.     self.contents.font.color = draw_name_color(equipment)
  196.     self.contents.font.size = name_size
  197.     if text.nil?
  198.       self.visible = false
  199.     else
  200.       self.visible = true
  201.       self.contents.draw_text(0, 0, text.size*7+50, name_size, "    " + text, 0)
  202.     end
  203.     #------------------------------------------------------------------------
  204.     # ● 說明描繪
  205.     #------------------------------------------------------------------------
  206.     x = 0
  207.     y += 1
  208.     while ((text = description.slice!(/./m)) != nil)
  209.       self.contents.font.color = normal_color
  210.       self.contents.font.size = size
  211.       self.contents.draw_text(x*size, y*size+5, size, size, text, 0)
  212.       x+=1
  213.       if x == word
  214.         x=0
  215.         y+=1   
  216.       end
  217.     end
  218.     #------------------------------------------------------------------------
  219.     # ● 圖標描繪
  220.     #------------------------------------------------------------------------
  221.     bitmap = RPG::Cache.icon(equipment.icon_name)
  222.     if $yanse != 0 and $yanse != nil           #图标颜色随着强化而变
  223.      bitmap.hue_change($yanse)
  224.      $yanse = 0
  225.      end
  226.     opacity = self.contents.font.color == normal_color ? 255 : 128
  227.     self.contents.blt(0 ,y*size + 20, bitmap, Rect.new(0, 0, 95, 100), 225)
  228.     #------------------------------------------------------------------------
  229.     # ● 鑒定接口
  230.     #------------------------------------------------------------------------
  231.     if identified
  232.       return unless equipment.identified
  233.     end
  234.     #------------------------------------------------------------------------
  235.     # ● 攻擊力描繪(武器)
  236.     #------------------------------------------------------------------------
  237.     if equipment.is_a?(RPG::Weapon)
  238.       x = 0
  239.       y += 1
  240.       text = $data_system.words.atk+":"+equipment.atk.to_s
  241.       self.contents.font.color = normal_color
  242.       self.contents.font.size = size
  243.       self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  244.     end
  245.     #------------------------------------------------------------------------
  246.     # ● 價格描繪
  247.     #------------------------------------------------------------------------
  248.     x = 0
  249.     y += 1
  250.     text = phrase["price"] + equipment.price.to_s
  251.     self.contents.font.color = normal_color
  252.     self.contents.font.size = size
  253.     self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  254.     #------------------------------------------------------------------------
  255.     # ● 物理防禦
  256.     #------------------------------------------------------------------------
  257.     unless equipment.pdef.zero?
  258.       x = 0
  259.       y += 1
  260.       text = $data_system.words.pdef+":"+equipment.pdef.to_s
  261.       self.contents.font.color = normal_color
  262.       self.contents.font.size = size
  263.       self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  264.     end
  265.     #------------------------------------------------------------------------
  266.     # ● 魔法防禦
  267.     #------------------------------------------------------------------------
  268.     unless equipment.mdef.zero?
  269.       x = 0
  270.       y += 1
  271.       text=$data_system.words.mdef+":"+equipment.mdef.to_s
  272.       self.contents.font.color = normal_color
  273.       self.contents.font.size = size
  274.       self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  275.     end
  276.     #------------------------------------------------------------------------
  277.     # ● 屬性
  278.     #------------------------------------------------------------------------
  279.     if element_set.size > 0
  280.       x = 0
  281.       y += 1
  282.       text = phrase["elements"]
  283.       for i in 0...element_set.size
  284.         break if i > 4
  285.         text += $data_system.elements[element_set[i]]
  286.       end
  287.       self.contents.font.color = normal_color
  288.       self.contents.font.size = size
  289.       self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  290.     end
  291.     if element_set.size >= 5
  292.       x = (phrase["elements"].size)*5-4
  293.       y += 1
  294.       text = ""
  295.       for i in 4...element_set.size
  296.         text += $data_system.elements[element_set[i]]
  297.       end
  298.       self.contents.font.color = normal_color
  299.       self.contents.font.size = size
  300.       self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  301.     end
  302.     #------------------------------------------------------------------------
  303.     # ● 描述分流 武器/防具
  304.     #------------------------------------------------------------------------
  305.     case equipment
  306.     when RPG::Weapon
  307.       #------------------------------------------------------------------------
  308.       # ● 解除狀態(武器)
  309.       #------------------------------------------------------------------------
  310.       unless minus_state_set.empty?
  311.         x = 0
  312.         y += 1
  313.         text=phrase["minus_states"]
  314.         text=phrase["guard_states"]
  315.         self.contents.font.color = normal_color
  316.         self.contents.font.size = size
  317.         self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  318.         for i in 0...minus_state_set.size
  319.           y += 1
  320.           text = $data_states[minus_state_set[i]].name        
  321.           self.contents.font.color = normal_color
  322.           self.contents.font.size = size
  323.           self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)        
  324.         end
  325.       end
  326.       #------------------------------------------------------------------------
  327.       # ● 附加狀態(武器)
  328.       #------------------------------------------------------------------------
  329.       unless plus_state_set.empty?
  330.         x = 0
  331.         y += 1
  332.         text = phrase["plus_states"]
  333.         self.contents.font.color = normal_color
  334.         self.contents.font.size = size
  335.         self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  336.         for i in 0...plus_state_set.size
  337.           y += 1
  338.           text=$data_states[plus_state_set[i]].name        
  339.           self.contents.font.color = normal_color
  340.           self.contents.font.size = size
  341.           self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)        
  342.         end  
  343.       end
  344.     when RPG::Armor
  345.       #------------------------------------------------------------------------
  346.       # ● 防禦狀態(防具)
  347.       #------------------------------------------------------------------------
  348.       unless guard_state_set.empty?
  349.         x = 0
  350.         y += 1
  351.         text=phrase["guard_states"]
  352.         self.contents.font.color = normal_color
  353.         self.contents.font.size = size
  354.         self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  355.         for i in 0...guard_state_set.size
  356.           y += 1
  357.           text = $data_states[guard_state_set[i]].name        
  358.           self.contents.font.color = normal_color
  359.           self.contents.font.size = size
  360.           self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)        
  361.         end
  362.       end
  363.       #------------------------------------------------------------------------
  364.       # ● 自動狀態(防具)
  365.       #------------------------------------------------------------------------
  366.       unless auto_state_id.zero?
  367.         x = 0
  368.         y += 1
  369.         text = phrase["auto_state"] + $data_states[auto_state_id].name
  370.         self.contents.font.color = normal_color
  371.         self.contents.font.size = size
  372.         self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  373.       end
  374.     end
  375.     #------------------------------------------------------------------------
  376.     # ● 空行
  377.     #------------------------------------------------------------------------
  378.     y+=1
  379.     #------------------------------------------------------------------------
  380.     # ● 力量
  381.     #------------------------------------------------------------------------
  382.     unless equipment.str_plus.zero?
  383.       x = 0
  384.       y += 1
  385.       h += 1
  386.       if equipment.str_plus > 0
  387.         text=$data_system.words.str+" +"+ equipment.str_plus.to_s
  388.       else
  389.         text=$data_system.words.str+" -"+ (-equipment.str_plus).to_s
  390.       end
  391.       self.contents.font.color = normal_color
  392.       self.contents.font.size = size
  393.       self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)  
  394.     end
  395.     #------------------------------------------------------------------------
  396.     # ● 靈巧
  397.     #------------------------------------------------------------------------
  398.     unless equipment.dex_plus.zero?
  399.       x = 0
  400.       y += 1
  401.       h += 1
  402.       if equipment.dex_plus > 0
  403.         text=$data_system.words.dex+" +"+ equipment.dex_plus.to_s
  404.       else
  405.         text=$data_system.words.dex+" -"+ (-equipment.dex_plus).to_s
  406.       end
  407.       self.contents.font.color = normal_color
  408.       self.contents.font.size = size
  409.       self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  410.     end
  411.     #------------------------------------------------------------------------
  412.     # ● 速度
  413.     #------------------------------------------------------------------------
  414.     unless equipment.agi_plus.zero?
  415.       x = 0
  416.       y += 1
  417.       h += 1
  418.       if equipment.agi_plus > 0
  419.         text=$data_system.words.agi+" +"+ equipment.agi_plus.to_s
  420.       else
  421.         text=$data_system.words.agi+" -"+ (-equipment.agi_plus).to_s
  422.       end
  423.       self.contents.font.color = normal_color
  424.       self.contents.font.size = size
  425.       self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  426.     end
  427.     #------------------------------------------------------------------------
  428.     # ● 智力
  429.     #------------------------------------------------------------------------
  430.     unless equipment.int_plus.zero?
  431.       x = 0
  432.       y += 1
  433.       h += 1
  434.       if equipment.int_plus > 0
  435.         text=$data_system.words.int+" +"+ equipment.int_plus.to_s
  436.       else
  437.         text=$data_system.words.int+" -"+ (-equipment.int_plus).to_s
  438.       end
  439.       self.contents.font.color = normal_color
  440.       self.contents.font.size = size
  441.       self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  442.     end
  443.     #------------------------------------------------------------------------
  444.     # ● 魔力石描繪
  445.     #------------------------------------------------------------------------
  446.     y += draw_materia(equipment, move, y, size) unless self.materia.nil?
  447.   end
  448.   #--------------------------------------------------------------------------
  449.   # ● 物品幫助窗口
  450.   #--------------------------------------------------------------------------
  451.   def set_item_text(item)
  452.     # 取得描述
  453.     description = item.description.clone
  454.     # 取得屬性、附加狀態、解除狀態之副本
  455.     element_set = item.element_set.clone
  456.     plus_state_set = item.plus_state_set.clone
  457.     minus_state_set = item.minus_state_set.clone
  458.     # 過濾不顯示的描述
  459.     element_set -= @unshow_elements
  460.     plus_state_set -= @unshow_states
  461.     minus_state_set -= @unshow_states
  462.     # 初始化數據設定
  463.     x = 0
  464.     y = 0
  465.     h = 0
  466.     phrase = {}
  467.     scope ={}
  468.     parameter_type = {}
  469.    
  470.     # 基本數據設定
  471. =begin
  472.     name_size = 名字文字大小
  473.     size = 描述文字大小
  474.     word = 每行的描述文字數
  475.     move = 全體描述偏移幅度
  476. =end
  477.     name_size = 18
  478.     size = 14
  479.     word = 12
  480.     move = 80
  481.    
  482.     # 基本文字設定
  483.     phrase["scope"] = "范围:"
  484.     phrase["price"] = "价格:"
  485.     phrase["recover_hp_rate"] = "HP 回复率:"
  486.     phrase["recover_hp"] = "HP 回复量:"
  487.     phrase["recover_sp_rate"] = "SP 回复率:"
  488.     phrase["recover_sp"] = "SP 回复量:"
  489.     phrase["elements"] = "属性:"
  490.     phrase["plus"] = "附加"
  491.     phrase["minus"] = "解除"
  492.     phrase["states"] = "状态"
  493.     scope[0] = "特殊物品"
  494.     scope[1] = "特殊物品"
  495.     scope[2] = "敌单体"
  496.     scope[3] = "敌全体"
  497.     scope[4] = "己方单体"
  498.     scope[5] = "己方全体"
  499.     scope[6] = "己方昏死单体"
  500.     scope[7] = "己方昏死全体"
  501.     scope[8] = "使用者"

  502.     parameter_type[1] = "MaxHP"
  503.     parameter_type[2] = "MaxSP"
  504.     parameter_type[3] = $data_system.words.str
  505.     parameter_type[4] = $data_system.words.dex
  506.     parameter_type[5] = $data_system.words.agi
  507.     parameter_type[6] = $data_system.words.int
  508.    
  509.     #依顯示内容確定自身高
  510.     h = (description.size/3/word)
  511.     h +=1 if (description.size/3%word)> 0
  512.     now_h = h
  513.     h +=3  # 空行,效果範圍,價格
  514.     h += 1 unless item.recover_hp_rate.zero?
  515.     h += 1 unless item.recover_hp.zero?
  516.     h += 1 unless item.recover_sp_rate.zero?
  517.     h += 1 unless item.recover_sp.zero?
  518.     h += 1 unless item.parameter_type.zero?
  519.     h += 1 unless element_set[0].nil?
  520.     h += 1 unless element_set[4].nil?
  521.     h += (1+plus_state_set.size) unless plus_state_set.empty?
  522.     h += (1+minus_state_set.size) unless minus_state_set.empty?
  523.     #------------------------------------------------------------------------
  524.     # ● 圖片顯示保證高度
  525.     #------------------------------------------------------------------------
  526.     h = 6 + now_h if (h - now_h) < 6
  527.     #------------------------------------------------------------------------
  528.     # ● 換算高度
  529.     #------------------------------------------------------------------------
  530.     self.height = h * size + name_size + 32
  531.     #------------------------------------------------------------------------
  532.     # ● 生成背景
  533.     #------------------------------------------------------------------------
  534.     self.contents = Bitmap.new(self.width - 32, self.height - 32)
  535.     self.contents.clear
  536.     #------------------------------------------------------------------------
  537.     # ● 名字描繪
  538.     #------------------------------------------------------------------------
  539.     text = item.name
  540.     self.contents.font.color = normal_color#顔色腳本
  541.     self.contents.font.size = name_size
  542.     if text.nil?
  543.       self.visible = false
  544.     else
  545.       self.visible = true
  546.       self.contents.draw_text(0,0, text.size*7, 20, text, 0)
  547.     end
  548.     #------------------------------------------------------------------------
  549.     # ● 說明描繪
  550.     #------------------------------------------------------------------------
  551.     x = 0
  552.     y += 1
  553.     while ((text = description.slice!(/./m)) != nil)
  554.       self.contents.font.color = normal_color
  555.       self.contents.font.size = size
  556.       self.contents.draw_text(x*size, y*size+5, size, size, text, 0)
  557.       x+=1
  558.       if x == word
  559.         x = 0
  560.         y += 1
  561.       end
  562.     end
  563.     #------------------------------------------------------------------------
  564.     # ● 圖標描繪
  565.     #------------------------------------------------------------------------
  566.     bitmap = RPG::Cache.icon(item.icon_name) unless item.icon_name.nil?
  567.     opacity = self.contents.font.color == normal_color ? 255 : 128
  568.     self.contents.blt(-50 ,y*size + 20, bitmap, Rect.new(0, 0, 95, 100), 225)
  569.     #------------------------------------------------------------------------
  570.     # ● 魔力石接口
  571.     #------------------------------------------------------------------------
  572.     unless self.materia.nil?
  573.       return if is_materia?(item)
  574.     end
  575.     #------------------------------------------------------------------------
  576.     # ● 效果範圍
  577.     #------------------------------------------------------------------------
  578.     text= phrase["scope"] + scope[item.scope]
  579.     x = 0
  580.     y += 1
  581.     self.contents.font.color = normal_color
  582.     self.contents.font.size = size
  583.     self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  584.     #------------------------------------------------------------------------
  585.     # ● 價格
  586.     #------------------------------------------------------------------------
  587.     x = 0
  588.     y += 1      
  589.     text = phrase["price"] + item.price.to_s
  590.     self.contents.font.color = normal_color
  591.     self.contents.font.size = size
  592.     self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  593.    
  594.     #------------------------------------------------------------------------
  595.     # ● HP回復率
  596.     #------------------------------------------------------------------------
  597.     unless item.recover_hp_rate.zero?  
  598.       x = 0
  599.       y += 1
  600.       text = phrase["recover_hp_rate"] + item.recover_hp_rate.to_s+"%"
  601.       self.contents.font.color = normal_color
  602.       self.contents.font.size = size
  603.       self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)   
  604.     end
  605.     #------------------------------------------------------------------------
  606.     # ● HP回復量
  607.     #------------------------------------------------------------------------
  608.     unless item.recover_hp.zero?  
  609.       x = 0
  610.       y += 1      
  611.       text = phrase["recover_hp"] + item.recover_hp.to_s
  612.       self.contents.font.color = normal_color
  613.       self.contents.font.size = size
  614.       self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  615.     end
  616.     #------------------------------------------------------------------------
  617.     # ● SP回復率
  618.     #------------------------------------------------------------------------
  619.     unless item.recover_sp_rate.zero?
  620.       x = 0
  621.       y += 1      
  622.       text = phrase["recover_sp_rate"] + item.recover_sp_rate.to_s+"%"
  623.       self.contents.font.color = normal_color
  624.       self.contents.font.size = size
  625.       self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  626.     end
  627.     #------------------------------------------------------------------------
  628.     # ● SP回復量
  629.     #------------------------------------------------------------------------
  630.     unless item.recover_sp.zero?  
  631.       x = 0
  632.       y += 1      
  633.       text = phrase["elements"] + item.recover_sp.to_s
  634.       self.contents.font.color = normal_color
  635.       self.contents.font.size = size
  636.       self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  637.     end
  638.     #------------------------------------------------------------------------
  639.     # ● 能力值增加
  640.     #------------------------------------------------------------------------
  641.     unless item.parameter_type.zero?
  642.       x = 0
  643.       y += 1      
  644.       text= parameter_type[item.parameter_type]+" +"+item.parameter_points.to_s

  645.       self.contents.font.color = normal_color
  646.       self.contents.font.size = size
  647.       self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  648.     end
  649.     #------------------------------------------------------------------------
  650.     # ● 屬性
  651.     #------------------------------------------------------------------------
  652.     if element_set.size > 0
  653.       x = 0
  654.       y += 1
  655.       text = phrase["elements"]
  656.       for i in 0...element_set.size
  657.         break if i > 4
  658.         text += $data_system.elements[element_set[i]]
  659.       end
  660.       self.contents.font.color = normal_color
  661.       self.contents.font.size = size
  662.       self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  663.     end
  664.     if element_set.size >= 5
  665.       x = (phrase["elements"].size)*5-4
  666.       y += 1
  667.       text = ""
  668.       for i in 4...element_set.size
  669.         text += $data_system.elements[element_set[i]]
  670.       end
  671.       self.contents.font.color = normal_color
  672.       self.contents.font.size = size
  673.       self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  674.     end
  675.     #------------------------------------------------------------------------
  676.     # ● 狀態添加
  677.     #------------------------------------------------------------------------
  678.     unless plus_state_set.empty?
  679.       text = phrase["plus"]
  680.       x = 0
  681.       y += 1
  682.       self.contents.font.color = normal_color
  683.       self.contents.font.size = size
  684.       self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  685.       plus_state_set.each do |plus_state|
  686.         y += 1
  687.         text = $data_states[plus_state].name        
  688.         self.contents.font.color = normal_color
  689.         self.contents.font.size = size
  690.         self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)      
  691.       end  
  692.     end
  693.     #------------------------------------------------------------------------
  694.     # ● 狀態解除
  695.     #------------------------------------------------------------------------
  696.     unless minus_state_set.empty?
  697.       text = phrase["minus"]
  698.       x = 0
  699.       y += 1
  700.       self.contents.font.color = normal_color
  701.       self.contents.font.size = size
  702.       self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)
  703.       minus_state_set.each do |minus_state|
  704.         y += 1
  705.         text = $data_states[minus_state].name
  706.         self.contents.font.color = normal_color
  707.         self.contents.font.size = size
  708.         self.contents.draw_text(x+move, y*size+5, text.size*6, size, text, 0)   
  709.       end
  710.     end
  711.   end
  712.   #--------------------------------------------------------------------------
  713.   # ● 技能帮助窗口
  714.   #--------------------------------------------------------------------------
  715.   def set_skill_text(skill)
  716.     # 取得描述
  717.     description = skill.description.clone
  718.     # 取得屬性、附加狀態、解除狀態之副本
  719.     element_set = skill.element_set.clone
  720.     plus_state_set = skill.plus_state_set.clone
  721.     minus_state_set = skill.minus_state_set.clone
  722.     # 過濾不顯示的描述
  723.     element_set -= @unshow_elements
  724.     plus_state_set -= @unshow_states
  725.     minus_state_set -= @unshow_states
  726.     # 初始化設定
  727.     x = 0
  728.     y = 0
  729.     h = 0
  730.     phrase = {}
  731.     scope = {}
  732.    
  733.     # 基本數據設定
  734. =begin
  735.     name_size = 名字文字大小
  736.     size = 描述文字大小
  737.     word = 每行的描述文字數
  738.     move = 全體描述偏移幅度
  739. =end
  740.     name_size = 18
  741.     size = 14
  742.     word = 12
  743.     move = 80
  744.    
  745.     # 基本文字設定
  746.     phrase["scope"] = "范围:"
  747.     #
  748.     phrase["power"] = "技能攻击力:"
  749.     phrase["cost_sp"] = "消耗MP:"
  750.     phrase["hit_rate"] = "命中率:"
  751.     phrase["elements"] = "攻击属性"
  752.     #
  753.     phrase["plus"] = "附加"
  754.     phrase["minus"] = "解除"
  755.     phrase["states"] = "状态"
  756.     scope[0] = "特殊技能"
  757.     scope[1] = "敌单体"
  758.     scope[2] = "敌全体"
  759.     scope[3] = "我方单体"
  760.     scope[4] = "我方全体"
  761.     scope[5] = "我方昏死(单体)"
  762.     scope[6] = "我方昏死(全体)"
  763.     scope[7] = "自身"

  764.    
  765.     #由描叙确定高
  766.     h =description.size/3/word
  767.     h += 1 if (description.size%3/word) > 0
  768.     h += 4  #空行,效果范围,消费SP,命中率
  769.     h += 1 unless skill.power.zero?
  770.     h += 1 unless element_set.empty?
  771.     h += 1 unless element_set[4].nil?
  772.     h += plus_state_set.size
  773.     h += minus_state_set.size
  774.     #------------------------------------------------------------------------
  775.     # ● 換算高度
  776.     #------------------------------------------------------------------------
  777.     self.height=h * size + name_size + 32  
  778.     self.contents = Bitmap.new(self.width - 32,self.height - 32)
  779.     self.contents.clear
  780.    
  781.     #------------------------------------------------------------------------
  782.     # ● 名字描述
  783.     #------------------------------------------------------------------------
  784.     text = skill.name
  785.     self.contents.font.color = Color.new(255, 255, 128, 255)
  786.     self.contents.font.size = name_size
  787.     if text!=nil
  788.       self.visible = true
  789.       self.contents.draw_text(0,0, text.size*7, name_size, text, 0)
  790.     else
  791.       self.visible = false
  792.     end
  793.    
  794.     #------------------------------------------------------------------------
  795.     # ● 說明描述
  796.     #------------------------------------------------------------------------
  797.     x = 0
  798.     y += 1
  799.     text = description
  800.     while ((text = description.slice!(/./m)) != nil)
  801.       self.contents.font.color = normal_color
  802.       self.contents.font.size = size
  803.       self.contents.draw_text(x*size, y*size+5, size, size, text, 0)
  804.       x+=1
  805.       if x==word#每行10个字
  806.         x = 0
  807.         y += 1      
  808.       end
  809.     end
  810.    
  811.     #------------------------------------------------------------------------
  812.     # ● 攻擊範圍
  813.     #------------------------------------------------------------------------
  814.     text = phrase["scope"] + scope[skill.scope]
  815.     x = 0
  816.     y += 1
  817.     self.contents.font.color = normal_color
  818.     self.contents.font.size = size
  819.     self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
  820.     #------------------------------------------------------------------------
  821.     # ● 空一行
  822.     #------------------------------------------------------------------------
  823.     y += 1
  824.     #------------------------------------------------------------------------
  825.     # ● 威力描述
  826.     #------------------------------------------------------------------------
  827.     unless skill.power.zero?
  828.       power = skill.power > 0 ? skill.power : -1 * skill.power
  829.       if  skill.id ==15           #战士技能说明修正
  830.         power /= skill.atk_f / 50
  831.         end
  832.       text = phrase["power"] + power.to_s
  833.       x = 0
  834.       y += 1
  835.       self.contents.font.color = normal_color
  836.       self.contents.font.size = size  
  837.       self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
  838.     end  
  839.     #------------------------------------------------------------------------
  840.     # ● 消費SP描述
  841.     #------------------------------------------------------------------------
  842.     text = phrase["cost_sp"] + skill.sp_cost.to_s
  843.     x = 0
  844.     y += 1
  845.     self.contents.font.color = normal_color
  846.     self.contents.font.size = size   
  847.     self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
  848.     #------------------------------------------------------------------------
  849.     # ● 命中率描述
  850.     #------------------------------------------------------------------------
  851.     text = phrase["hit_rate"] + skill.hit.to_s + "%"
  852.     x = 0
  853.     y += 1
  854.     self.contents.font.color = normal_color
  855.     self.contents.font.size = size
  856.     self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
  857.     #------------------------------------------------------------------------
  858.     # ● 攻擊屬性
  859.     #------------------------------------------------------------------------
  860.     if element_set.size > 0
  861.       text=phrase["elements"]
  862.       for i in 0...element_set.size
  863.         if i < 4
  864.           text+=$data_system.elements[element_set[i]]
  865.         else
  866.           break
  867.         end        
  868.       end
  869.       x = 0
  870.       y += 1
  871.       self.contents.font.color = normal_color
  872.       self.contents.font.size = size
  873.       self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
  874.     end
  875.     if element_set.size >= 5
  876.       text=""
  877.       for i in 4...element_set.size
  878.         text+=$data_system.elements[element_set[i]]
  879.       end
  880.       x= (phrase["elements"].size)*3
  881.       y += 1
  882.       self.contents.font.color = normal_color
  883.       self.contents.font.size = size
  884.       self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
  885.     end
  886.     #------------------------------------------------------------------------
  887.     # ● 狀態附加
  888.     #------------------------------------------------------------------------
  889.     unless plus_state_set.empty?
  890.       text= phrase["plus"]
  891.       x = 0
  892.       y += 1
  893.       self.contents.font.color = normal_color
  894.       self.contents.font.size = size
  895.       self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
  896.       plus_state_set.each do |plus_state|
  897.         y += 1
  898.         text=$data_states[plus_state].name        
  899.         self.contents.font.color = normal_color
  900.         self.contents.font.size = size
  901.         self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)        
  902.       end  
  903.     end
  904.     #------------------------------------------------------------------------
  905.     # ●狀態解除
  906.     #------------------------------------------------------------------------
  907.     unless minus_state_set.empty?
  908.       text = phrase["minus"]
  909.       x = 0
  910.       y += 1
  911.       self.contents.font.color = normal_color
  912.       self.contents.font.size=size
  913.       self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)
  914.       minus_state_set.each do |minus_state|
  915.         y += 1
  916.         text=$data_states[minus_state].name        
  917.         self.contents.font.color = normal_color
  918.         self.contents.font.size=size
  919.         self.contents.draw_text(x, y*size+5, text.size*6, size, text, 0)        
  920.       end  
  921.     end     
  922.   end
  923.   #--------------------------------------------------------------------------
  924.   # ● 设置角色
  925.   #     actor : 要显示状态的角色
  926.   #--------------------------------------------------------------------------
  927.   def set_actor(actor)
  928.     if actor != @actor
  929.       self.contents.clear
  930.       draw_actor_name(actor, 4, 0)
  931.       draw_actor_state(actor, 140, 0)
  932.       draw_actor_hp(actor, 284, 0)
  933.       draw_actor_sp(actor, 460, 0)
  934.       @actor = actor
  935.       @text = nil
  936.       self.visible = true
  937.     end
  938.   end
  939.   #--------------------------------------------------------------------------
  940.   # ● 設置角色
  941.   #     actor : 要顯示狀態之角色
  942.   #--------------------------------------------------------------------------
  943.   def set_actor(actor)
  944.     self.contents = Bitmap.new(width - 32, height - 32) if self.contents.nil?
  945.     if actor != @actor
  946.       self.contents.clear
  947.       draw_actor_name(actor, 4, 0)
  948.       draw_actor_state(actor, 140, 0)
  949.       draw_actor_hp(actor, 284, 0)
  950.       draw_actor_sp(actor, 460, 0)
  951.       @actor = actor
  952.       @text = nil
  953.       self.visible = true
  954.     end
  955.   end
  956.   #--------------------------------------------------------------------------
  957.   # ● 設置敵人
  958.   #     enemy : 要顯示名字與狀態之敵人
  959.   #--------------------------------------------------------------------------
  960.   def set_enemy(enemy)
  961.     self.contents = Bitmap.new(width - 32, height - 32) if self.contents.nil?
  962.     text = enemy.name.sub(/\\[Ff]\[([0-9]+)\]/) {""}
  963.     state_text = make_battler_state_text(enemy, 112, false)
  964.     if state_text != ""
  965.       text += "  " + state_text
  966.     end
  967.     set_text(text, 1)
  968.     self.visible = true
  969.   end
  970.   #--------------------------------------------------------------------------
  971.   # ● 校正帮助窗口位置
  972.   #--------------------------------------------------------------------------
  973.   def set_pos(x,y,width,oy,index,column_max)
  974.     #光标坐标
  975.     cursor_width = width / column_max - 32
  976.     xx = index % column_max * (cursor_width + 32)
  977.     yy = index / column_max * 32 - oy
  978.     self.x=xx+x+150
  979.     self.y=yy+y+30
  980.     if self.x+self.width>640
  981.       self.x=640-self.width
  982.     end
  983.     if self.y+self.height>480
  984.       self.y=480-self.height
  985.     end  
  986.   end
  987.   #------------------------------------------------------------------------
  988.   # ● 裝備名字顔色變化 接口
  989.   #------------------------------------------------------------------------
  990.   def draw_name_color(equipment)
  991.     return normal_color
  992.   end
  993.   #------------------------------------------------------------------------
  994.   # ● 自身身份確認
  995.   #------------------------------------------------------------------------
  996.   def original_help?
  997.     return false
  998.   end
  999.   #------------------------------------------------------------------------
  1000.   # ● 鑒定確認
  1001.   #------------------------------------------------------------------------
  1002.   def identified
  1003.     return false
  1004.   end
  1005. end

  1006. #------------------------------------------------------------------------------



  1007. #------------------------------------------------------------------------------
  1008. #==============================================================================
  1009. # ■ Window_Item
  1010. #------------------------------------------------------------------------------
  1011. #  物品画面、战斗画面、显示浏览物品的窗口。
  1012. #==============================================================================

  1013. class Window_Item < Window_Selectable
  1014.   #--------------------------------------------------------------------------
  1015.   # ● 初始化对像
  1016.   #--------------------------------------------------------------------------
  1017.   def initialize
  1018.     super(0, 64-64, 640, 416+64)
  1019.     @column_max = 2
  1020.     refresh
  1021.     self.index = 0
  1022.     # 战斗中的情况下将窗口移至中央并将其半透明化
  1023.     if $game_temp.in_battle
  1024.       self.y = 64
  1025.       self.height = 256
  1026.       self.back_opacity = 160
  1027.     end
  1028.   end
  1029.   #--------------------------------------------------------------------------
  1030.   # ● 刷新帮助文本
  1031.   #--------------------------------------------------------------------------
  1032.   def update_help
  1033.     @help_window.set_text(item)
  1034.     #校正帮助窗口位置
  1035.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  1036.   end
  1037. end
  1038. #------------------------------------------------------------------------------



  1039. #------------------------------------------------------------------------------
  1040. #==============================================================================
  1041. # ■ Window_Skill
  1042. #------------------------------------------------------------------------------
  1043. #  特技画面、战斗画面、显示可以使用的特技浏览的窗口。
  1044. #==============================================================================

  1045. class Window_Skill < Window_Selectable
  1046.   #--------------------------------------------------------------------------
  1047.   # ● 初始化对像
  1048.   #     actor : 角色
  1049.   #--------------------------------------------------------------------------
  1050.   def initialize(actor)
  1051.     super(0, 128, 640, 352)
  1052.     @actor = actor
  1053.     @column_max = 2
  1054.    
  1055.     refresh
  1056.     self.index = 0
  1057.     # 战斗中的情况下将窗口移至中央并将其半透明化
  1058.     if $game_temp.in_battle
  1059.       self.y = 64
  1060.       self.height = 256
  1061.       self.back_opacity = 160
  1062.     end
  1063.   end
  1064.   #--------------------------------------------------------------------------
  1065.   # ● 刷新帮助文本
  1066.   #--------------------------------------------------------------------------

  1067.   def update_help
  1068.     @help_window.set_text(skill)
  1069.     #校正帮助窗口位置
  1070.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  1071.   end
  1072. end
  1073. #------------------------------------------------------------------------------



  1074. #------------------------------------------------------------------------------
  1075. #==============================================================================
  1076. # ■ Window_SkillStatus
  1077. #------------------------------------------------------------------------------
  1078. #  显示特技画面、特技使用者的窗口。
  1079. #==============================================================================

  1080. class Window_SkillStatus < Window_Base
  1081.   #--------------------------------------------------------------------------
  1082.   # ● 初始化对像
  1083.   #     actor : 角色
  1084.   #--------------------------------------------------------------------------
  1085.   def initialize(actor)
  1086. # -------------------
  1087. # 修改開始
  1088.     super(0, 64-64, 640, 64+64)#★★★★★★★★★★★★★★★★★★★★
  1089. # 修改終了
  1090. # -------------------
  1091.     self.contents = Bitmap.new(width - 32, height - 32)
  1092.     @actor = actor
  1093.     refresh
  1094.   end
  1095. end
  1096. #------------------------------------------------------------------------------



  1097. #------------------------------------------------------------------------------


  1098. #------------------------------------------------------------------------------
  1099. #==============================================================================
  1100. # ■ Window_EquipRight
  1101. #------------------------------------------------------------------------------
  1102. #  装备画面、显示角色现在装备的物品的窗口。
  1103. #==============================================================================

  1104. class Window_EquipRight < Window_Selectable
  1105.   #--------------------------------------------------------------------------
  1106.   # ● 初始化对像
  1107.   #     actor : 角色
  1108.   #--------------------------------------------------------------------------
  1109.   def initialize(actor)
  1110.     super(272, 64-64, 368, 192+64)
  1111.     self.contents = Bitmap.new(width - 32, height - 32)
  1112.     @actor = actor
  1113.     refresh
  1114.     self.index = 0
  1115.   end
  1116.   #--------------------------------------------------------------------------
  1117.   # ● 刷新帮助文本
  1118.   #--------------------------------------------------------------------------

  1119.   def update_help
  1120.     @help_window.set_text(item)
  1121.     #校正帮助窗口位置
  1122.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  1123.   end
  1124. end
  1125. class Window_EquipLeft < Window_Base
  1126.   #--------------------------------------------------------------------------
  1127.   # ● 初始化对像
  1128.   #     actor : 角色
  1129.   #--------------------------------------------------------------------------
  1130.   def initialize(actor)
  1131.     super(0, 64-64, 272, 192+64)
  1132.     self.contents = Bitmap.new(width - 32, height - 32)
  1133.     @actor = actor
  1134.     refresh
  1135.   end
  1136. end
  1137. #------------------------------------------------------------------------------



  1138. #------------------------------------------------------------------------------
  1139. #==============================================================================
  1140. # ■ Window_EquipItem
  1141. #------------------------------------------------------------------------------
  1142. #  装备画面、显示浏览变更装备的候补物品的窗口。
  1143. #==============================================================================

  1144. class Window_EquipItem < Window_Selectable
  1145.   def update_help
  1146.     @help_window.set_text(item)
  1147.     #校正帮助窗口位置
  1148.    @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  1149.   end
  1150. end
  1151. #------------------------------------------------------------------------------



  1152. #------------------------------------------------------------------------------
  1153. #==============================================================================
  1154. # ■ Window_ShopCommand
  1155. #------------------------------------------------------------------------------
  1156. #  商店画面、选择要做的事的窗口
  1157. #==============================================================================

  1158. class Window_ShopCommand < Window_Selectable
  1159.   #--------------------------------------------------------------------------
  1160.   # ● 初始化对像
  1161.   #--------------------------------------------------------------------------
  1162.   def initialize
  1163. # -------------------
  1164. # 修改開始
  1165.     super(0, 64-64, 480, 64)#★★★★★★★★★★★★★★★★★
  1166. # 修改終了
  1167. # -------------------
  1168.     self.contents = Bitmap.new(width - 32, height - 32)
  1169.     @item_max = 3
  1170.     @column_max = 3
  1171.     @commands = ["买", "卖", "取消"]
  1172.     refresh
  1173.     self.index = 0
  1174.   end
  1175. end
  1176. #------------------------------------------------------------------------------



  1177. #------------------------------------------------------------------------------
  1178. #========================================================================================================================
  1179. # ■ Window_ShopBuy
  1180. #------------------------------------------------------------------------------
  1181. #  商店画面、浏览显示可以购买的商品的窗口。
  1182. #==============================================================================

  1183. class Window_ShopBuy < Window_Selectable
  1184.   #--------------------------------------------------------------------------
  1185.   # ● 初始化对像
  1186.   #     shop_goods : 商品
  1187.   #--------------------------------------------------------------------------
  1188.   def initialize(shop_goods)
  1189. # -------------------
  1190. # 修改開始
  1191.     super(0, 128-64, 368, 352+64)#★★★★★★★★★★★★★★★★
  1192. # 修改終了
  1193. # -------------------
  1194.     @shop_goods = shop_goods
  1195.    
  1196.     refresh
  1197.     self.index = 0
  1198.   end
  1199.   #--------------------------------------------------------------------------
  1200.   # ● 刷新帮助文本
  1201.   #--------------------------------------------------------------------------

  1202.   def update_help
  1203.     @help_window.set_text(item)
  1204.     #校正帮助窗口位置
  1205.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  1206.   end
  1207. end
  1208. #------------------------------------------------------------------------------



  1209. #------------------------------------------------------------------------------
  1210. #==============================================================================
  1211. # ■ Window_ShopSell
  1212. #------------------------------------------------------------------------------
  1213. #  商店画面、浏览显示可以卖掉的商品的窗口。
  1214. #==============================================================================

  1215. class Window_ShopSell < Window_Selectable
  1216.   #--------------------------------------------------------------------------
  1217.   # ● 初始化对像
  1218.   #--------------------------------------------------------------------------
  1219.   def initialize
  1220. # -------------------
  1221. # 修改開始
  1222.     super(0, 128-64, 640, 352+64)#★★★★★★★★★★★★★★★★
  1223. # 修改終了
  1224. # -------------------
  1225.     @column_max = 2
  1226.    
  1227.     refresh
  1228.     self.index = 0
  1229.   end
  1230.   #--------------------------------------------------------------------------
  1231.   # ● 刷新帮助文本
  1232.   #--------------------------------------------------------------------------

  1233.   def update_help
  1234.     @help_window.set_text(item)
  1235.     #校正帮助窗口位置
  1236.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  1237.   end
  1238. end
  1239. #------------------------------------------------------------------------------



  1240. #------------------------------------------------------------------------------
  1241. #==============================================================================
  1242. # ■ Window_ShopNumber
  1243. #------------------------------------------------------------------------------
  1244. #  商店画面、输入买卖数量的窗口。
  1245. #==============================================================================
  1246. class Window_ShopNumber < Window_Base
  1247.   #--------------------------------------------------------------------------
  1248.   # ● 初始化对像
  1249.   #--------------------------------------------------------------------------
  1250.   def initialize
  1251. # -------------------
  1252. # 修改開始
  1253.     super(0, 128-64, 368, 352+64)#★★★★★★★★★★★★★★★★
  1254. # 修改終了
  1255. # -------------------
  1256.     self.contents = Bitmap.new(width - 32, height - 32)
  1257.     @item = nil
  1258.     @max = 1
  1259.     @price = 0
  1260.     @number = 1
  1261.   end
  1262. end
  1263. #------------------------------------------------------------------------------



  1264. #------------------------------------------------------------------------------
  1265. #==============================================================================
  1266. # ■ Window_ShopStatus
  1267. #------------------------------------------------------------------------------
  1268. #  商店画面、显示物品所持数与角色装备的窗口。
  1269. #==============================================================================

  1270. class Window_ShopStatus < Window_Base
  1271.   #--------------------------------------------------------------------------
  1272.   # ● 初始化对像
  1273.   #--------------------------------------------------------------------------
  1274.   def initialize
  1275. # -------------------
  1276. # 修改開始
  1277.     super(368, 128-64, 272, 352+64)#★★★★★★★★★★★★
  1278. # 修改終了
  1279. # -------------------
  1280.     self.contents = Bitmap.new(width - 32, height - 32)
  1281.     @item = nil
  1282.     refresh
  1283.   end
  1284. end
  1285. #------------------------------------------------------------------------------



  1286. #------------------------------------------------------------------------------
  1287. #==============================================================================
  1288. # ■ Scene_Equip
  1289. #------------------------------------------------------------------------------
  1290. #  处理装备画面的类。
  1291. #==============================================================================

  1292. class Scene_Equip
  1293.   #--------------------------------------------------------------------------
  1294.   # ● 刷新画面 (右侧窗口被激活的情况下)
  1295.   #--------------------------------------------------------------------------
  1296.   def update_right
  1297. # -------------------
  1298. # 修改開始
  1299.     if @right_window.item==nil
  1300.         @help_window.visible=false
  1301.     else
  1302.         @help_window.visible=true
  1303.     end
  1304. # 修改終了
  1305. # -------------------
  1306.     # 按下 B 键的情况下
  1307.     if Input.trigger?(Input::B)
  1308.       # 演奏取消 SE
  1309.       $game_system.se_play($data_system.cancel_se)
  1310.       # 切换到菜单画面
  1311.       $scene = Scene_Menu.new(2)
  1312.       return
  1313.     end
  1314.     # 按下 C 键的情况下
  1315.     if Input.trigger?(Input::C)
  1316.       # 固定装备的情况下
  1317.       if @actor.equip_fix?(@right_window.index)
  1318.         # 演奏冻结 SE
  1319.         $game_system.se_play($data_system.buzzer_se)
  1320.         return
  1321.       end
  1322.       # 演奏确定 SE
  1323.       $game_system.se_play($data_system.decision_se)
  1324.       # 激活物品窗口
  1325.       @right_window.active = false
  1326.       @item_window.active = true
  1327.       @item_window.index = 0
  1328.       return
  1329.     end
  1330.     # 按下 R 键的情况下
  1331.     if Input.trigger?(Input::R)
  1332.       # 演奏光标 SE
  1333.       $game_system.se_play($data_system.cursor_se)
  1334.       # 移至下一位角色
  1335.       @actor_index += 1
  1336.       @actor_index %= $game_party.actors.size
  1337.       # 切换到别的装备画面
  1338.       $scene = Scene_Equip.new(@actor_index, @right_window.index)
  1339.       return
  1340.     end
  1341.     # 按下 L 键的情况下
  1342.     if Input.trigger?(Input::L)
  1343.       # 演奏光标 SE
  1344.       $game_system.se_play($data_system.cursor_se)
  1345.       # 移至上一位角色
  1346.       @actor_index += $game_party.actors.size - 1
  1347.       @actor_index %= $game_party.actors.size
  1348.       # 切换到别的装备画面
  1349.       $scene = Scene_Equip.new(@actor_index, @right_window.index)
  1350.       return
  1351.     end
  1352.   end
  1353.   #--------------------------------------------------------------------------
  1354.   # ● 刷新画面 (物品窗口被激活的情况下)
  1355.   #--------------------------------------------------------------------------
  1356.   def update_item
  1357. # -------------------
  1358. # 修改開始
  1359.     if @item_window.item==nil
  1360.         @help_window.visible=false
  1361.     else
  1362.         @help_window.visible=true
  1363.     end
  1364. # 修改終了
  1365. # -------------------
  1366.     # 按下 B 键的情况下
  1367.     if Input.trigger?(Input::B)
  1368.       # 演奏取消 SE
  1369.       $game_system.se_play($data_system.cancel_se)
  1370.       # 激活右侧窗口
  1371.       @right_window.active = true
  1372.       @item_window.active = false
  1373.       @item_window.index = -1
  1374.       return
  1375.     end
  1376.     # 按下 C 键的情况下
  1377.     if Input.trigger?(Input::C)
  1378.       # 演奏装备 SE
  1379.       $game_system.se_play($data_system.equip_se)
  1380.       # 获取物品窗口现在选择的装备数据
  1381.       item = @item_window.item
  1382.       # 变更装备
  1383.       @actor.equip(@right_window.index, item == nil ? 0 : item.id)
  1384.       # 激活右侧窗口
  1385.       @right_window.active = true
  1386.       @item_window.active = false
  1387.       @item_window.index = -1
  1388.       # 再生成右侧窗口、物品窗口的内容
  1389.       @right_window.refresh
  1390.       @item_window.refresh
  1391.       return
  1392.     end
  1393.   end
  1394. end
  1395. #------------------------------------------------------------------------------



  1396. #------------------------------------------------------------------------------
  1397. #========================================================================================================================
  1398. # ■ Scene_Battle (分割定义 3)
  1399. #------------------------------------------------------------------------------
  1400. #  处理战斗画面的类。
  1401. #========================================================================================================================

  1402. class Scene_Battle
  1403.   #--------------------------------------------------------------------------
  1404.   # ● 刷新画面 (角色命令回合 : 选择特技)
  1405.   #--------------------------------------------------------------------------
  1406.   alias first_reupdate_phase3_skill_select update_phase3_skill_select
  1407.   def update_phase3_skill_select
  1408. # -------------------
  1409. # 修改開始
  1410.     @skill_window.help_window.visible = false#★★★★★★★★★★★★★
  1411. # 修改終了
  1412. # -------------------
  1413.     first_reupdate_phase3_skill_select
  1414.   end
  1415.   #--------------------------------------------------------------------------
  1416.   # ● 刷新画面 (角色命令回合 : 选择物品)
  1417.   #--------------------------------------------------------------------------
  1418.   alias first_reupdate_phase3_item_select update_phase3_item_select  
  1419.   def update_phase3_item_select
  1420. # -------------------
  1421. # 修改開始
  1422.     @item_window.help_window.visible = false#★★★★★★★★★★★★
  1423. # 修改終了
  1424. # -------------------
  1425.     first_reupdate_phase3_item_select
  1426.   end
  1427.   #--------------------------------------------------------------------------
  1428.   # ● 开始选择特技
  1429.   #--------------------------------------------------------------------------
  1430.   def start_skill_select
  1431.     @skill_window = Window_Skill.new(@active_battler)
  1432.     @skill_window.help_window = Window_Help.new
  1433.     @actor_command_window.active = false
  1434.     @actor_command_window.visible = false
  1435.   end
  1436.   #--------------------------------------------------------------------------
  1437.   # ● 选择特技结束
  1438.   #--------------------------------------------------------------------------
  1439.   alias first_update_end_skill_select end_skill_select  
  1440.   def end_skill_select
  1441. # -------------------
  1442. # 修改開始
  1443.     @skill_window.help_window.visible = false#★★★★★★★★★★★★
  1444. # 修改終了
  1445. # -------------------
  1446.     first_update_end_skill_select
  1447.   end
  1448.   #--------------------------------------------------------------------------
  1449.   # ● 开始选择物品
  1450.   #--------------------------------------------------------------------------
  1451.   def start_item_select
  1452.     # 生成物品窗口
  1453.     @item_window = Window_Item.new
  1454.     # 关联帮助窗口
  1455. # -------------------
  1456. # 修改開始
  1457.     @item_window.help_window =  Window_Help.new#★★★★★★★★★★★★
  1458. # 修改終了
  1459. # -------------------
  1460.     # 无效化角色指令窗口
  1461.     @actor_command_window.active = false
  1462.     @actor_command_window.visible = false
  1463.   end
  1464.   #--------------------------------------------------------------------------
  1465.   # ● 结束选择物品
  1466.   #--------------------------------------------------------------------------
  1467.   alias first_update_end_item_select end_item_select
  1468.   def end_item_select
  1469. # -------------------
  1470. # 修改開始
  1471.     @item_window.help_window.visible = false#★★★★★★★★★★★★
  1472. # 修改終了
  1473. # -------------------
  1474.     first_update_end_item_select
  1475.   end
  1476. end
  1477. #------------------------------------------------------------------------------



  1478. #------------------------------------------------------------------------------
  1479. #==============================================================================
  1480. # ■ Scene_Shop
  1481. #------------------------------------------------------------------------------
  1482. #  处理商店画面的类。
  1483. #==============================================================================

  1484. class Scene_Shop
  1485.   #--------------------------------------------------------------------------
  1486.   # ● 主处理
  1487.   #--------------------------------------------------------------------------
  1488. # --------------------
  1489. # 衝突可能
  1490.   def main
  1491.     # 生成帮助窗口
  1492. # -------------------
  1493. # 修改開始
  1494.     @help_window = Window_Help.new#★★★★★★★★★★★★★★★★
  1495. # 修改終了
  1496. # -------------------
  1497.     # 生成指令窗口
  1498.     @command_window = Window_ShopCommand.new
  1499.     # 生成金钱窗口
  1500.     @gold_window = Window_Gold.new
  1501.     @gold_window.x = 480
  1502. # -------------------
  1503. # 修改開始
  1504.     @gold_window.y = 64-64#★★★★★★★★★★★★★
  1505. # 修改終了
  1506. # -------------------
  1507.     # 生成时间窗口
  1508. # -------------------
  1509. # 修改開始
  1510.     @dummy_window = Window_Base.new(0, 128-64, 640, 352+64)#★★★★★★★★★★★★★
  1511. # 修改終了
  1512. # -------------------
  1513.     # 生成购买窗口
  1514.     @buy_window = Window_ShopBuy.new($game_temp.shop_goods)
  1515.     @buy_window.active = false
  1516.     @buy_window.visible = false
  1517.     @buy_window.help_window = @help_window
  1518.     # 生成卖出窗口
  1519.     @sell_window = Window_ShopSell.new
  1520.     @sell_window.active = false
  1521.     @sell_window.visible = false
  1522.     @sell_window.help_window = @help_window
  1523.     # 生成数量输入窗口
  1524.     @number_window = Window_ShopNumber.new
  1525.     @number_window.active = false
  1526.     @number_window.visible = false
  1527.     # 生成状态窗口
  1528.     @status_window = Window_ShopStatus.new
  1529.     @status_window.visible = false
  1530.     # 执行过渡
  1531.     Graphics.transition
  1532.     # 主循环
  1533.     loop do
  1534.       # 刷新游戏画面
  1535.       Graphics.update
  1536.       # 刷新输入信息
  1537.       Input.update
  1538.       # 刷新画面
  1539.       update
  1540.       # 如果画面切换的话就中断循环
  1541.       if $scene != self
  1542.         break
  1543.       end
  1544.     end
  1545.     # 准备过渡
  1546.     Graphics.freeze
  1547.     # 释放窗口
  1548.     @help_window.dispose
  1549.     @command_window.dispose
  1550.     @gold_window.dispose
  1551.     @dummy_window.dispose
  1552.     @buy_window.dispose
  1553.     @sell_window.dispose
  1554.     @number_window.dispose
  1555.     @status_window.dispose
  1556.   end
  1557.   #--------------------------------------------------------------------------
  1558.   # ● 刷新画面
  1559.   #--------------------------------------------------------------------------
  1560. # --------------------
  1561. # 衝突可能
  1562.   def update
  1563.     # 刷新窗口
  1564.     @help_window.update
  1565.     @command_window.update
  1566.     @gold_window.update
  1567.     @dummy_window.update
  1568.     @buy_window.update
  1569.     @sell_window.update
  1570.     @number_window.update
  1571.     @status_window.update
  1572.     # 指令窗口激活的情况下: 调用 update_command
  1573.     if @command_window.active
  1574. # -------------------
  1575. # 修改開始
  1576.       @help_window.visible=false#★★★★★★★★★★★★★★★★
  1577. # 修改終了
  1578. # -------------------
  1579.       update_command
  1580.       return
  1581.     end
  1582.     # 购买窗口激活的情况下: 调用 update_buy
  1583.     if @buy_window.active
  1584. # -------------------
  1585. # 修改開始
  1586.       @help_window.visible=true#★★★★★★★★★★★★★★★★
  1587.       if @buy_window.item==nil#★★★★★★★★★★★★★★★★
  1588.         @help_window.visible=false#★★★★★★★★★★★★★★★★
  1589.       end #★★★★★★★★★★★★★★★★     
  1590. # 修改終了
  1591. # -------------------
  1592.       update_buy
  1593.       return
  1594.     end
  1595.     # 卖出窗口激活的情况下: 调用 update_sell
  1596.     if @sell_window.active
  1597. # -------------------
  1598. # 修改開始
  1599.       @help_window.visible=true#★★★★★★★★★★★★★★★★
  1600.       if @sell_window.item==nil#★★★★★★★★★★★★★★★★
  1601.         @help_window.visible=false#★★★★★★★★★★★★★★★★
  1602.       end #★★★★★★★★★★★★★★★★
  1603. # 修改終了
  1604. # -------------------      
  1605.       update_sell
  1606.       return
  1607.     end
  1608.     # 个数输入窗口激活的情况下: 调用 update_number
  1609.     if @number_window.active
  1610. # -------------------
  1611. # 修改開始
  1612.       @help_window.visible=false#★★★★★★★★★★★★★★★★
  1613. # 修改終了
  1614. # -------------------
  1615.       update_number
  1616.       return
  1617.     end
  1618.   end
  1619. end
复制代码
...........

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
2
发表于 2012-4-15 10:11:05 | 只看该作者
27行下面加个
  1. align=1
复制代码
试试

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

Lv3.寻梦者

酱油的

梦石
0
星屑
1030
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

3
发表于 2012-4-15 11:10:10 | 只看该作者
一堆draw_text中有一堆0,align這東西當然地被我忽略了。
看不懂?翻F1查draw_text

点评

哇~惊现原作者,这个在强化、随机、镶嵌3合一里附带的。  发表于 2012-4-15 15:51
= =b 竟然是禾西酱的脚本,怎么我从没见过这个……  发表于 2012-4-15 11:46
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-27 03:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表