Project1

标题: 详尽帮助脚本问题 [打印本页]

作者: chenyuhangdash    时间: 2012-4-14 14:51
标题: 详尽帮助脚本问题
本帖最后由 chenyuhangdash 于 2012-4-14 20:10 编辑

我的VX工程里面加了详尽帮助脚本,可是总是出错。
比如打开了菜单里面的特技、装备界面,就会显示:


由于文件太大,我就把DATA发过来,请求高手帮帮我,就差这一关,我的游戏脚本就可以完毕了!
球球66RPG的高手们。
貌似是详尽帮助里面的窗口位置这一段出错,已经按照66的高手说的加了个脚本,并把详尽第8行改成FullHelp,虽然战斗特技可以,但菜单里的特技、装备貌似没法打开,就会显示上述情况,请求帮助。


‘‘──chenyuhangdash于2012-4-14 20:10补充以下内容

请求高手解答
’’


‘‘──chenyuhangdash于2012-4-14 20:10补充以下内容

请求高手解答
’’


‘‘──chenyuhangdash于2012-4-15 08:14补充以下内容

请求高手回答
’’


‘‘──chenyuhangdash于2012-4-15 08:14补充以下内容

请求高手回答
’’


‘‘──chenyuhangdash于2012-4-15 08:15补充以下内容

请求高手回答
’’


‘‘──chenyuhangdash于2012-4-15 08:30补充以下内容

{:2_271:}额
’’


‘‘──chenyuhangdash于2012-4-15 08:31补充以下内容

请求高手解决
’’dsu_plus_rewardpost_czw

未命名.jpg (26.49 KB, 下载次数: 30)

未命名.jpg

未命名.jpg (26.49 KB, 下载次数: 25)

未命名.jpg

Data.rar

654.11 KB, 下载次数: 137


作者: 怪蜀黍    时间: 2012-4-16 14:53
详尽帮助脚本我已经用了很久了,它所调用的“Window_Help”是和默认的"Window_Help"有冲突的。要使用的话,需要在不同的地方调用不同的"Window_Help"。
你的data.rar我下不了,但是我知道,你的问题一定是出在调用了默认的"Window_Help"而不是详尽帮助所定义的"Window_Help"。因为详尽帮助的定义中是已经定义了"set_pos"了的,你的错误提示说没定义。
我料想,只要你把详尽帮助中的def set_pos里面的内容注释掉,就可以打开菜单了,可是打开之后的详尽帮助恐怕不是你想要的详尽帮助,而就是一行默认的物品或技能介绍。
{:2_273:}
作者: hcm    时间: 2012-4-19 12:16
你那工程我下不下来,不过你用的是这个吗?如果没添加什么可能冲突的脚本一般没问题啊。
  1. #==============================================================================
  2. # ■ Window_Help
  3. #------------------------------------------------------------------------------
  4. # 原作:xuelong
  5. # 修正:水迭澜
  6. # 移植:禾西
  7. #==============================================================================
  8. class Window_Help < Window_Base
  9.   #--------------------------------------------------------------------------
  10.   # ● 定義
  11.   #--------------------------------------------------------------------------
  12.   def set
  13.     @phrase,@y= {}, 0
  14.     @scope, @parameter_type = [], []
  15. =begin
  16.     @name_size = 名字文字大小
  17.     @size = 描述文字大小
  18.     @word = 每行的描述文字數
  19. =end
  20.     @name_size = 18
  21.     @size = 14
  22.     @word = 11
  23.    
  24.     # 不顯示的 屬性 與 狀態 ID
  25.     @unshow_elements = [17, 18]
  26.     @unshow_states = []
  27.    
  28.     # 基本文字設定
  29.     @phrase[:price]          = "售价"
  30.     @phrase[:elements]       = "属性"
  31.     @phrase[:states]         = "附加状态"
  32.     @phrase[:guard_elements] = "半減属性"
  33.     @phrase[:guard_states]   = "无效的状态"
  34.     #------------------#
  35.     #   物品效果語句   #
  36.     #------------------#
  37.     @phrase[:recover]      = "回复"
  38.     @phrase[:hp]           = "HP"
  39.     @phrase[:mp]           = "MP"
  40.     @phrase[:plus_states]  = "狀態附加"
  41.     @phrase[:minus_states] = "狀態解除"
  42.     @phrase[:speed]        = "速度補正"
  43.     @phrase[:consumable]   = "消耗品"
  44.     @phrase[:base_damage]  = "基本傷害"
  45.     #------------------#
  46.     #   特殊效果語句   #
  47.     #------------------#
  48.     @phrase[:special]          = "特殊效果"
  49.     @phrase[:two_handed]       = "双手武器"
  50.     @phrase[:fast_attack]      = "先制几率上升"
  51.     @phrase[:dual_attack]      = "连续攻撃"
  52.     @phrase[:critical_bonus]   = "暴击率上升"
  53.     @phrase[:prevent_critical] = "暴击回避上升"
  54.     @phrase[:half_mp_cost]     = "消費MP减半"
  55.     @phrase[:double_exp_gain]  = "取得経験値2倍"
  56.     @phrase[:auto_hp_recover]  = "HP自動回復"
  57.     @phrase[:physical_attack]  = "物理攻撃"
  58.     @phrase[:damage_to_mp]     = "减少MP"
  59.     @phrase[:absorb_damage]    = "傷害吸収"
  60.     @phrase[:ignore_defense]   = "防御力無視"
  61.     #------------------#
  62.     #   技能描述語句   #
  63.     #------------------#
  64.     @phrase[:recovery] = "回復力"
  65.     @phrase[:mp_cost]  = "消耗SP"
  66.     @phrase[:hit]      = "命中率"
  67.     #------------------#
  68.     #   效果範圍語句   #
  69.     #------------------#
  70.     @phrase[:scope]    = "効果範囲"
  71.     @scope[0]  = "特殊"
  72.     @scope[1]  = "敵単体"
  73.     @scope[2]  = "敵全体"
  74.     @scope[3]  = "敵単体 連続"
  75.     @scope[4]  = "敵単体 隨機"
  76.     @scope[5]  = "敵二体 隨機"
  77.     @scope[6]  = "敵三体 隨機"
  78.     @scope[7]  = "味方単体"
  79.     @scope[8]  = "味方全体"
  80.     @scope[9]  = "味方戦闘不能(単)"
  81.     @scope[10] = "味方戦闘不能(全)"
  82.     @scope[11] = "使用者"
  83.     #------------------#
  84.     #   效果範圍語句   #
  85.     #------------------#
  86.     @parameter_type[1] = "MaxHP"
  87.     @parameter_type[2] = "MaxMP"
  88.     @parameter_type[3] = $data_system.terms.atk
  89.     @parameter_type[4] = $data_system.terms.def
  90.     @parameter_type[5] = $data_system.terms.spi
  91.     @parameter_type[6] = $data_system.terms.agi
  92.   end
  93.   #--------------------------------------------------------------------------
  94.   # ● 初始化對象
  95.   #--------------------------------------------------------------------------
  96.   def initialize
  97.     super(0, 0, 544, WLH + 32)
  98.     self.opacity = 200
  99.     self.z = 150
  100.     self.visible = false
  101.   end
  102.   #--------------------------------------------------------------------------
  103.   # ● 設置文本
  104.   #     data  : 窗口顯示的字符串/物品資料
  105.   #     align : 對齊方式 (0..左對齊、1..中間對齊、2..右對齊)
  106.   #--------------------------------------------------------------------------
  107.   def set_text(data, align=0)
  108.     #------------------------------------------------------------------------
  109.     # ● 當資料爲文字時候
  110.     #------------------------------------------------------------------------
  111.     if data != @text or align != @align
  112.       if data.is_a?(String)
  113.         draw_string(data,align)
  114.       end
  115.     end
  116.     return if data.is_a?(String)
  117.     #------------------------------------------------------------------------
  118.     # ● 當沒有資料時候
  119.     #------------------------------------------------------------------------
  120.     if data.nil?
  121.       self.visible=false
  122.     else
  123.       self.visible=true
  124.     end
  125.     #------------------------------------------------------------------------
  126.     # ● 當資料爲物品/技能時候
  127.     #------------------------------------------------------------------------
  128.     if data != nil && @data != data
  129.       self.width = 210
  130.       self.height = 430
  131.       self.x=0
  132.       self.y=200
  133.       set
  134.       draw_data(data)
  135.     else
  136.       return
  137.     end
  138.   end
  139.   #--------------------------------------------------------------------------
  140.   # ● 更新帮助窗口
  141.   #--------------------------------------------------------------------------
  142.   def draw_string(data,align)
  143.     self.width = 544        #修正寬度
  144.     self.height = WLH + 32  #修正高度
  145.     self.x=0                #修正 x 坐標
  146.     self.y=0                #修正 y 坐標
  147.     @text = data            #記錄文本資料
  148.     @align = align          #記錄對齊方式
  149.     @actor = nil            #清空角色資料
  150.     self.contents = Bitmap.new(width - 32, height - 32) if self.contents.nil?
  151.     self.contents.clear
  152.     self.contents.font.color = normal_color
  153.     self.contents.font.size = 20
  154.     self.contents.draw_text(4, 0, self.width - 40, 32, data, align)
  155.     self.visible = true
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # ● 更新帮助窗口
  159.   #--------------------------------------------------------------------------
  160.   def draw_data(data=@data)
  161.     self.width = 186        #修正寬度
  162.     self.height = 430       #修正高度
  163.     self.x=0                #修正 x 坐標
  164.     self.y=150              #修正 y 坐標
  165.     @data = data            #記錄 data 資料
  166.     case @data
  167.     when RPG::Item
  168.       set_item_text(@data)
  169.     when RPG::Weapon, RPG::Armor
  170.       set_equipment_text(@data)
  171.     when RPG::Skill
  172.       set_skill_text(@data)
  173.     end
  174.   end
  175.   #--------------------------------------------------------------------------
  176.   # ● 修正窗口位置
  177.   #--------------------------------------------------------------------------
  178.   def set_pos(x,y,width,oy,index,column_max)
  179.     cursor_width = width / column_max - 32
  180.     xx = index % column_max * (cursor_width + WLH)
  181.     yy = index / column_max * WLH - oy
  182.     self.x=xx+x+140
  183.     self.y=yy+y+35
  184.     if self.x+self.width>544
  185.       self.x=544-self.width
  186.     end
  187.     if self.y+self.height>416
  188.       self.y=416-self.height
  189.     end  
  190.   end
  191.   #------------------------------------------------------------------------
  192.   # ● 文字描繪
  193.   #------------------------------------------------------------------------
  194.   def draw_text(text, increase, move=0)
  195.     @y += increase
  196.     self.contents.font.color = normal_color
  197.     self.contents.font.size = @size
  198.     self.contents.draw_text(0+move, @y*@size+5, text.size*6, @size, text, 0)
  199.   end
  200. #-------------------------------------#
  201. # 子方法
  202. #-------------------------------------#
  203.   #--------------------------------------------------------------------------
  204.   # ● 裝備幫助窗口
  205.   #--------------------------------------------------------------------------
  206.   def set_equipment_text(equipment)
  207.     #------------------------------------------------------------------------
  208.     # ● 取得基本質料
  209.     #------------------------------------------------------------------------
  210.    
  211.     #----------------------------#
  212.     # 取得屬性、狀態、說明之副本 #
  213.     #----------------------------#
  214.     element_set = equipment.element_set.clone
  215.     state_set   = equipment.state_set.clone
  216.     description = equipment.description.clone
  217.     phrase      = @phrase
  218.     #----------------------------#
  219.     # 過濾不顯示的屬性與狀態描述 #
  220.     #----------------------------#
  221.     element_set -= @unshow_elements
  222.     state_set   -= @unshow_states
  223.     #----------------#
  224.     # 初始化數據設定 #
  225.     #----------------#
  226.     x, h, move = 0, 0, 0
  227.     #------------------#
  228.     # 取得特殊效果數據 #
  229.     #------------------#
  230.     special = []
  231.     gifts = [] if gifts.nil?
  232.     s = [
  233.     "攻击 + [s]",   "攻击 + [s]%",
  234.     "防御 + [s]",   "防御 + [s]%",
  235.     "精神 + [s]",   "精神 + [s]%",
  236.     "敏捷 + [s]",   "敏捷 + [s]%",
  237.     "最大HP + [s]", "最大HP + [s]%",
  238.     "最大MP + [s]", "最大MP + [s]%",
  239.     "命中率 + [s]",
  240.     "闪避率 + [s]",
  241.     "暴击率 + [s]",
  242.     "额外经验 + [s]%",
  243.     "极品爆率 + [s]%"
  244.     ]
  245.     for g in gifts
  246.       special << s[g.type].sub(/\[s\]/) {g.value}
  247.     end
  248.     #------------------------------------------------------------------------
  249.     # ● 確定背景圖片的高度
  250.     #------------------------------------------------------------------------
  251.     h += (description.size/3/@word)
  252.     h += 1 if (description.size/3%@word) > 0
  253.     now_h = h
  254.    
  255.     h += 1                               #價格
  256.    
  257.     h += 1 unless equipment.atk.zero?    #攻擊力
  258.     h += 1 unless equipment.def.zero?    #防禦力
  259.     h += 1 unless equipment.spi.zero?    #精神力
  260.     h += 1 unless equipment.agi.zero?    #敏捷力
  261.    
  262.     h += element_set.size + 1 if element_set.size > 0  #屬性
  263.     h += state_set.size   + 1 if state_set.size   > 0  #狀態
  264.     h += special.size     + 2 if special.size     > 0  #特殊效果
  265.    
  266.     #------------------------------------------------------------------------
  267.     # ● 圖片顯示保證高度
  268.     #------------------------------------------------------------------------
  269.     #h = 6 + now_h if (h - now_h) < 6
  270.     #------------------------------------------------------------------------
  271.     # ● 換算高度
  272.     #------------------------------------------------------------------------
  273.     self.height = h * @size + @name_size + 32
  274.     #------------------------------------------------------------------------
  275.     # ● 生成背景
  276.     #------------------------------------------------------------------------
  277.     self.contents = Bitmap.new(self.width - 32, self.height - 32)
  278.     self.contents.clear
  279.     #------------------------------------------------------------------------
  280.     # ● 名字描繪
  281.     #------------------------------------------------------------------------
  282.     text = equipment.name
  283.     self.contents.font.color = normal_color
  284.     self.contents.font.size = @name_size
  285.     if text.nil?
  286.       self.visible = false
  287.     else
  288.       self.visible = true
  289.       ###self.contents.draw_text(0, 0, text.size*7, @name_size, text, 0)
  290.       self.contents.draw_text(0, 0, contents.width-4, @name_size, text)
  291.     end
  292.     #------------------------------------------------------------------------
  293.     # ● 說明描繪
  294.     #------------------------------------------------------------------------
  295.     x = 0
  296.     @y += 1
  297.     while ((text = description.slice!(/./m)) != nil)
  298.       self.contents.font.color = normal_color
  299.       self.contents.font.size = @size
  300.       self.contents.draw_text(x*@size, @y*@size+5, @size, @size, text, 0)
  301.       x+=1
  302.       if x == @word
  303.         x=0
  304.         @y+=1
  305.       end
  306.     end
  307.     #------------------------------------------------------------------------
  308.     # ● 圖標描繪
  309.     #------------------------------------------------------------------------
  310.     #bitmap = Cache.system("Iconset")
  311.     #rect = Rect.new(equipment.icon_index % 16 * 24, equipment.icon_index / 16 * 24, 24, 24)
  312.     #self.contents.blt(0, y*size + 20, bitmap, rect, 255)
  313.     #------------------------------------------------------------------------
  314.     # ● 價格描繪
  315.     #------------------------------------------------------------------------
  316.     unless equipment.price.zero?
  317.       text = phrase[:price] + ":" + equipment.price.to_s
  318.       draw_text(text, 1, move)
  319.     end
  320.     #------------------------------------------------------------------------
  321.     # ● 攻擊力
  322.     #------------------------------------------------------------------------
  323.     unless equipment.atk.zero?
  324.       text = $data_system.terms.atk + ":" + equipment.atk.to_s
  325.       draw_text(text, 1, move)
  326.     end
  327.     #------------------------------------------------------------------------
  328.     # ● 防禦力
  329.     #------------------------------------------------------------------------
  330.     unless equipment.def.zero?
  331.       text = $data_system.terms.def + ":" + equipment.def.to_s
  332.       draw_text(text, 1, move)
  333.     end
  334.     #------------------------------------------------------------------------
  335.     # ● 精神力
  336.     #------------------------------------------------------------------------
  337.     unless equipment.spi.zero?
  338.       text = $data_system.terms.spi + ":" + equipment.spi.to_s
  339.       draw_text(text, 1, move)
  340.     end
  341.     #------------------------------------------------------------------------
  342.     # ● 敏捷力
  343.     #------------------------------------------------------------------------
  344.     unless equipment.agi.zero?
  345.       text = $data_system.terms.agi + ":" + equipment.agi.to_s
  346.       draw_text(text, 1, move)
  347.     end
  348.     #------------------------------------------------------------------------
  349.     # ● 屬性
  350.     #------------------------------------------------------------------------
  351.     if element_set.size > 0
  352.       case equipment
  353.       when RPG::Weapon
  354.         text=phrase[:elements]+":"
  355.       when RPG::Armor
  356.         text=phrase[:guard_elements]+":"
  357.       end
  358.       draw_text(text, 1, move)
  359.       element_set.each do |i|
  360.         text = $data_system.elements[i]
  361.         draw_text(text, 1, move + @size)
  362.       end
  363.     end
  364.     #------------------------------------------------------------------------
  365.     # ● 狀態
  366.     #------------------------------------------------------------------------
  367.     if state_set.size > 0
  368.       case equipment
  369.       when RPG::Weapon
  370.         text=phrase[:states]+":"
  371.       when RPG::Armor
  372.         text=phrase[:guard_states]+":"
  373.       end
  374.       draw_text(text, 1, move)
  375.       state_set.each do |i|
  376.         text = $data_states[i].name
  377.         draw_text(text, 1, move + @size)
  378.       end
  379.     end
  380.     #------------------------------------------------------------------------
  381.     # ● 特殊效果
  382.     #------------------------------------------------------------------------
  383.     if special.size > 0
  384.       text = phrase[:special]+":"
  385.       draw_text(text, 1, move)
  386.       special.each {|text| draw_text(text, 1, move + @size)}
  387.     end
  388.   end
  389. #////////////////////////////////////////////////////////////////////////////
  390.   #--------------------------------------------------------------------------
  391.   # ● 物品幫助窗口
  392.   #--------------------------------------------------------------------------
  393.   def set_item_text(item)
  394.     #----------------------------#
  395.     # 取得屬性、狀態、說明之副本 #
  396.     #----------------------------#
  397.     description = item.description.clone
  398.     element_set = item.element_set.clone
  399.     plus_state_set = item.plus_state_set.clone
  400.     minus_state_set = item.minus_state_set.clone
  401.     # 過濾不顯示的描述
  402.     element_set -= @unshow_elements
  403.     plus_state_set -= @unshow_states
  404.     minus_state_set -= @unshow_states
  405.     # 初始化數據設定
  406.     x, h, move = 0, 0, 0
  407.     phrase = @phrase
  408.     scope = @scope
  409.     parameter_type = @parameter_type
  410.     occasion = @occasion
  411.     # 基本文字設定

  412.    
  413.     #------------------#
  414.     # 取得特殊效果數據 #
  415.     #------------------#
  416.     special = []
  417.     special << phrase[:physical_attack] if item.physical_attack #物理攻撃
  418.     special << phrase[:damage_to_mp]    if item.damage_to_mp    #MPにダメージ
  419.     special << phrase[:absorb_damage]   if item.absorb_damage   #ダメージを吸収
  420.     special << phrase[:ignore_defense]  if item.ignore_defense  #防御力無視
  421.    
  422.     #------------------------------------------------------------------------
  423.     # ● 確定背景圖片的高度
  424.     #------------------------------------------------------------------------
  425.     h += (description.size/3/@word)
  426.     h += 1 if (description.size/3%@word) > 0
  427.     now_h = h
  428.    
  429.     h += 2                                  #効果範囲,價格
  430.     h += 1 if item.consumable               #消耗品
  431.     h += 1 unless item.speed.zero?          #速度補正値
  432.    
  433.     h += 1 unless item.hp_recovery_rate==0 and item.hp_recovery==0 #HP 回復
  434.     h += 1 unless item.mp_recovery_rate==0 and item.mp_recovery==0 #MP 回復
  435.    
  436.     h += 1 unless item.parameter_type.zero? #能力値
  437.     h += 1 unless item.base_damage.zero?    #基本ダメージ
  438.    
  439.     h += element_set.size     + 1 if element_set.size     > 0  #屬性
  440.     h += plus_state_set.size  + 1 if plus_state_set.size  > 0  #附加狀態
  441.     h += minus_state_set.size + 1 if minus_state_set.size > 0  #解除狀態
  442.     h += special.size         + 1 if special.size         > 0  #特殊效果
  443.    
  444.     #------------------------------------------------------------------------
  445.     # ● 圖片顯示保證高度
  446.     #------------------------------------------------------------------------
  447.     #h = 6 + now_h if (h - now_h) < 6
  448.     #------------------------------------------------------------------------
  449.     # ● 換算高度
  450.     #------------------------------------------------------------------------
  451.     self.height = h * @size + @name_size + 32
  452.     #------------------------------------------------------------------------
  453.     # ● 生成背景
  454.     #------------------------------------------------------------------------
  455.     self.contents = Bitmap.new(self.width - 32, self.height - 32)
  456.     self.contents.clear
  457.     #------------------------------------------------------------------------
  458.     # ● 名字描繪
  459.     #------------------------------------------------------------------------
  460.     text = item.name
  461.     self.contents.font.color = normal_color#顔色腳本
  462.     self.contents.font.size = @name_size
  463.     if text.nil?
  464.       self.visible = false
  465.     else
  466.       self.visible = true
  467.       self.contents.draw_text(0,0, text.size*7, 20, text, 0)
  468.     end
  469.     #------------------------------------------------------------------------
  470.     # ● 說明描繪
  471.     #------------------------------------------------------------------------
  472.      x = 0
  473.     @y += 1
  474.     while ((text = description.slice!(/./m)) != nil)
  475.       self.contents.font.color = normal_color
  476.       self.contents.font.size = @size
  477.       self.contents.draw_text(x*@size, @y*@size+5, @size, @size, text, 0)
  478.       x+=1
  479.       if x == @word
  480.          x = 0
  481.         @y += 1
  482.       end
  483.     end
  484.     #------------------------------------------------------------------------
  485.     # ● 圖標描繪
  486.     #------------------------------------------------------------------------
  487.     #bitmap = Cache.system("Iconset")
  488.     #rect = Rect.new(item.icon_index % 16 * 24, equipment.icon_index / 16 * 24, 24, 24)
  489.     #self.contents.blt(0, y*size + 20, bitmap, rect, 255)
  490.     #------------------------------------------------------------------------
  491.     # ● 效果範圍
  492.     #------------------------------------------------------------------------
  493.     text = phrase[:scope] +":"
  494.     draw_text(text, 1, move)
  495.     text = scope[item.scope]
  496.     draw_text(text, 1, move + @size)
  497.     #------------------------------------------------------------------------
  498.     # ● 價格
  499.     #------------------------------------------------------------------------
  500.     text = phrase[:price] + item.price.to_s
  501.     draw_text(text, 1, move)
  502.     #------------------------------------------------------------------------
  503.     # ● 消耗品
  504.     #------------------------------------------------------------------------
  505.     if item.consumable
  506.       text = phrase[:consumable]
  507.       draw_text(text, 1, move)
  508.     end
  509.     #------------------------------------------------------------------------
  510.     # ● 速度補正値
  511.     #------------------------------------------------------------------------
  512.     unless item.speed.zero?
  513.       text = phrase[:speed]
  514.       draw_text(text, 1, move)
  515.     end
  516.     #------------------------------------------------------------------------
  517.     # ● HP回復
  518.     #------------------------------------------------------------------------
  519.     unless item.hp_recovery_rate.zero? and item.hp_recovery.zero?
  520.       if item.hp_recovery_rate > 0 and item.hp_recovery > 0
  521.         text = " + "
  522.       else
  523.         text = ""
  524.       end
  525.       
  526.       unless item.hp_recovery_rate.zero?
  527.         text = item.hp_recovery_rate.to_s + "%" + text
  528.       end
  529.       unless item.hp_recovery.zero?
  530.         text += item.hp_recovery.to_s
  531.       end
  532.       text = phrase[:recover] +":" + phrase[:hp] + text
  533.       draw_text(text, 1, move)
  534.     end
  535.     #------------------------------------------------------------------------
  536.     # ● SP回復
  537.     #------------------------------------------------------------------------
  538.     unless item.mp_recovery_rate.zero? and item.mp_recovery.zero?
  539.       if item.mp_recovery_rate > 0 and item.mp_recovery > 0
  540.         text = " + "
  541.       else
  542.         text = ""
  543.       end
  544.       
  545.       unless item.mp_recovery_rate.zero?
  546.         text = item.mp_recovery_rate.to_s + "%" + text
  547.       end
  548.       unless item.mp_recovery.zero?
  549.         text += item.mp_recovery.to_s
  550.       end
  551.       text = phrase[:recover] +":" + phrase[:mp] + text
  552.       draw_text(text, 1, move)
  553.     end
  554.     #------------------------------------------------------------------------
  555.     # ● 能力值增加
  556.     #------------------------------------------------------------------------
  557.     unless item.parameter_type.zero?
  558.       text= parameter_type[item.parameter_type]+" +"+item.parameter_points.to_s
  559.       draw_text(text, 1, move)
  560.     end
  561.     #------------------------------------------------------------------------
  562.     # ● 基本ダメージ
  563.     #------------------------------------------------------------------------
  564.     unless item.base_damage.zero?
  565.       text = phrase[:base_damage] +":" + item.base_damage.to_s
  566.       draw_text(text, 1, move)
  567.     end
  568.     #------------------------------------------------------------------------
  569.     # ● 屬性
  570.     #------------------------------------------------------------------------
  571.     if element_set.size > 0
  572.       text = phrase[:elements]+":"
  573.       draw_text(text, 1, move)
  574.       element_set.each do |i|
  575.         text = $data_system.elements[i]
  576.         draw_text(text, 1, move + @size)
  577.       end
  578.     end
  579.     #------------------------------------------------------------------------
  580.     # ● 添加狀態
  581.     #------------------------------------------------------------------------
  582.     unless plus_state_set.empty?
  583.       text = phrase[:plus_states]+":"
  584.       draw_text(text, 1, move)
  585.       plus_state_set.each do |i|
  586.         text = $data_states[i].name
  587.         draw_text(text, 1, move + @size)
  588.       end
  589.     end
  590.     #------------------------------------------------------------------------
  591.     # ● 解除狀態
  592.     #------------------------------------------------------------------------
  593.     unless minus_state_set.empty?
  594.       text = phrase[:minus_states]+":"
  595.       draw_text(text, 1, move)
  596.       minus_state_set.each do |i|
  597.         text = $data_states[i].name
  598.         draw_text(text, 1, move + @size)
  599.       end
  600.     end
  601.     #------------------------------------------------------------------------
  602.     # ● 特殊效果
  603.     #------------------------------------------------------------------------
  604.     if special.size > 0
  605.       text = phrase[:special]+":"
  606.       draw_text(text, 1, move)
  607.       special.each {|text| draw_text(text, 1, move + @size)}
  608.     end
  609.   end
  610. #////////////////////////////////////////////////////////////////////////////
  611.   #--------------------------------------------------------------------------
  612.   # ● 技能帮助窗口
  613.   #--------------------------------------------------------------------------
  614.   def set_skill_text(skill)
  615.     #----------------------------#
  616.     # 取得屬性、狀態、說明之副本 #
  617.     #----------------------------#
  618.     description = skill.description.clone
  619.     element_set = skill.element_set.clone
  620.     plus_state_set = skill.plus_state_set.clone
  621.     minus_state_set = skill.minus_state_set.clone
  622.     # 過濾不顯示的描述
  623.     element_set -= @unshow_elements
  624.     plus_state_set -= @unshow_states
  625.     minus_state_set -= @unshow_states
  626.     # 初始化設定
  627.     x ,h, move = 0, 0, 0
  628.     phrase = @phrase
  629.     scope = @scope
  630.     #------------------#
  631.     # 取得特殊效果數據 #
  632.     #------------------#
  633.     special = []
  634.     special << phrase[:physical_attack] if skill.physical_attack #物理攻撃
  635.     special << phrase[:damage_to_mp]    if skill.damage_to_mp    #MPにダメージ
  636.     special << phrase[:absorb_damage]   if skill.absorb_damage   #ダメージを吸収
  637.     special << phrase[:ignore_defense]  if skill.ignore_defense  #防御力無視
  638.     #------------------------------------------------------------------------
  639.     # ● 確定背景圖片的高度
  640.     #------------------------------------------------------------------------
  641.     h += (description.size/3/@word)
  642.     h += 1 if (description.size/3%@word) > 0
  643.     now_h = h
  644.    
  645.     h += 4                                  #効果範囲,消費MP,命中率
  646.     h += 1 unless skill.speed.zero?         #速度補正値
  647.     h += 1 unless skill.base_damage.zero?   #基本ダメージ
  648.    
  649.    
  650.    
  651.     h += element_set.size     + 1 if element_set.size     > 0  #屬性
  652.     h += plus_state_set.size  + 1 if plus_state_set.size  > 0  #附加狀態
  653.     h += minus_state_set.size + 1 if minus_state_set.size > 0  #解除狀態
  654.     h += special.size         + 1 if special.size         > 0  #特殊效果
  655.     #------------------------------------------------------------------------
  656.     # ● 換算高度
  657.     #------------------------------------------------------------------------
  658.     self.height=h * @size + @name_size + 32  
  659.     self.contents = Bitmap.new(self.width - 32,self.height - 32)
  660.     self.contents.clear
  661.    
  662.     #------------------------------------------------------------------------
  663.     # ● 名字描述
  664.     #------------------------------------------------------------------------
  665.     text = skill.name
  666.     self.contents.font.color = Color.new(255, 255, 128, 255)
  667.     self.contents.font.size = @name_size
  668.     if text!=nil
  669.       self.visible = true
  670.       self.contents.draw_text(0,0, text.size*7, @name_size, text, 0)
  671.     else
  672.       self.visible = false
  673.     end
  674.    
  675.     #------------------------------------------------------------------------
  676.     # ● 說明描述
  677.     #------------------------------------------------------------------------
  678.     x = 0
  679.     @y += 1
  680.     text = description
  681.     while ((text = description.slice!(/./m)) != nil)
  682.       self.contents.font.color = normal_color
  683.       self.contents.font.size = @size
  684.       self.contents.draw_text(x*@size, @y*@size+5, @size, @size, text, 0)
  685.       x+=1
  686.       if x==@word
  687.         x = 0
  688.         @y += 1
  689.       end
  690.     end
  691.    
  692.     #------------------------------------------------------------------------
  693.     # ● 攻擊範圍
  694.     #------------------------------------------------------------------------
  695.     text = phrase[:scope] +":"
  696.     draw_text(text, 1, move)
  697.     text = scope[skill.scope]
  698.     draw_text(text, 1, move + @size)
  699.     #------------------------------------------------------------------------
  700.     # ● 基本ダメージ
  701.     #------------------------------------------------------------------------
  702.     unless skill.base_damage .zero?
  703.       text = skill.base_damage > 0 ? phrase[:base_damage] : phrase[:recovery]
  704.       text += ":" + skill.base_damage.abs.to_s
  705.       draw_text(text, 1, move)
  706.     end
  707.     #------------------------------------------------------------------------
  708.     # ● 消費SP描述
  709.     #------------------------------------------------------------------------
  710.     text = phrase[:mp_cost] +":"+ skill.mp_cost.to_s
  711.     draw_text(text, 1, move)
  712.     #------------------------------------------------------------------------
  713.     # ● 命中率描述
  714.     #------------------------------------------------------------------------
  715.     text = phrase[:hit] + ":" + skill.hit.to_s + "%"
  716.     draw_text(text, 1, move)
  717.     #------------------------------------------------------------------------
  718.     # ● 屬性
  719.     #------------------------------------------------------------------------
  720.     if element_set.size > 0
  721.       text = phrase[:elements]+":"
  722.       draw_text(text, 1, move)
  723.       element_set.each do |i|
  724.         text = $data_system.elements[i]
  725.         draw_text(text, 1, move + @size)
  726.       end
  727.     end
  728.     #------------------------------------------------------------------------
  729.     # ● 添加狀態
  730.     #------------------------------------------------------------------------
  731.     unless plus_state_set.empty?
  732.       text = phrase[:plus_states]+":"
  733.       draw_text(text, 1, move)
  734.       plus_state_set.each do |i|
  735.         text = $data_states[i].name
  736.         draw_text(text, 1, move + @size)
  737.       end
  738.     end
  739.     #------------------------------------------------------------------------
  740.     # ● 解除狀態
  741.     #------------------------------------------------------------------------
  742.     unless minus_state_set.empty?
  743.       text = phrase[:minus_states]+":"
  744.       draw_text(text, 1, move)
  745.       minus_state_set.each do |i|
  746.         text = $data_states[i].name
  747.         draw_text(text, 1, move + @size)
  748.       end
  749.     end
  750.     #------------------------------------------------------------------------
  751.     # ● 特殊效果
  752.     #------------------------------------------------------------------------
  753.     if special.size > 0
  754.       text = phrase[:special]+":"
  755.       draw_text(text, 1, move)
  756.       special.each {|text| draw_text(text, 1, move + @size)}
  757.     end  
  758.   end
  759. end

  760. #==============================================================================
  761. # ■ Window_Item
  762. #------------------------------------------------------------------------------
  763. #  アイテム画面などで、所持アイテムの一覧を表示するウィンドウです。
  764. #==============================================================================

  765. class Window_Item < Window_Selectable
  766.   #--------------------------------------------------------------------------
  767.   # ● ヘルプテキスト更新
  768.   #--------------------------------------------------------------------------
  769.   def update_help
  770.     @help_window.set_text(item)
  771.     #修正窗口位置
  772.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  773.   end
  774. end
  775. #==============================================================================
  776. # ■ Window_Skill
  777. #------------------------------------------------------------------------------
  778. #  スキル画面などで、使用できるスキルの一覧を表示するウィンドウです。
  779. #==============================================================================

  780. class Window_Skill < Window_Selectable
  781.   #--------------------------------------------------------------------------
  782.   # ● ヘルプテキスト更新
  783.   #--------------------------------------------------------------------------
  784.   def update_help
  785.     @help_window.set_text(skill)
  786.     #修正窗口位置
  787.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  788.   end
  789. end
  790. #==============================================================================
  791. # ■ Window_Equip
  792. #------------------------------------------------------------------------------
  793. #  装備画面で、アクターが現在装備しているアイテムを表示するウィンドウです。
  794. #==============================================================================

  795. class Window_Equip < Window_Selectable
  796.   #--------------------------------------------------------------------------
  797.   # ● ヘルプテキスト更新
  798.   #--------------------------------------------------------------------------
  799.   def update_help
  800.     @help_window.set_text(item)
  801.     #修正窗口位置
  802.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  803.   end
  804. end
  805. #==============================================================================
  806. # ■ Window_ShopBuy
  807. #------------------------------------------------------------------------------
  808. #  ショップ画面で、購入できる商品の一覧を表示するウィンドウです。
  809. #==============================================================================
  810. class Window_ShopBuy < Window_Selectable
  811.   #--------------------------------------------------------------------------
  812.   # ● ヘルプテキスト更新
  813.   #--------------------------------------------------------------------------
  814.   def update_help
  815.     @help_window.set_text(item)
  816.     #修正窗口位置
  817.     @help_window.set_pos(self.x,self.y,self.width,self.oy,self.index,@column_max)
  818.   end
  819. end
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1