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

Project1

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

[超廢柴!]跟隨光标自修正位置的详细帮助窗口!

 关闭 [复制链接]

Lv3.寻梦者

酱油的

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

贵宾

跳转到指定楼层
1
发表于 2008-4-19 13:58:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
移植過來的廢柴腳本,介紹看這裏這裏

  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.     case equipment
  232.     when RPG::Weapon
  233.       special << phrase[:two_handed]      if equipment.two_handed
  234.       special << phrase[:fast_attack]     if equipment.fast_attack
  235.       special << phrase[:dual_attack]     if equipment.dual_attack
  236.       special << phrase[:critical_bonus]  if equipment.critical_bonus
  237.     when RPG::Armor
  238.       special << phrase[:prevent_critical]if equipment.prevent_critical
  239.       special << phrase[:half_mp_cost]    if equipment.half_mp_cost
  240.       special << phrase[:double_exp_gain] if equipment.double_exp_gain
  241.       special << phrase[:auto_hp_recover] if equipment.auto_hp_recover
  242.     end
  243.     #------------------------------------------------------------------------
  244.     # ● 確定背景圖片的高度
  245.     #------------------------------------------------------------------------
  246.     h += (description.size/3/@word)
  247.     h += 1 if (description.size/3%@word) > 0
  248.     now_h = h
  249.    
  250.     h += 1                               #價格
  251.    
  252.     h += 1 unless equipment.atk.zero?    #攻擊力
  253.     h += 1 unless equipment.def.zero?    #防禦力
  254.     h += 1 unless equipment.spi.zero?    #精神力
  255.     h += 1 unless equipment.agi.zero?    #敏捷力
  256.    
  257.     h += element_set.size + 1 if element_set.size > 0  #屬性
  258.     h += state_set.size   + 1 if state_set.size   > 0  #狀態
  259.     h += special.size     + 1 if special.size     > 0  #特殊效果
  260.    
  261.     #------------------------------------------------------------------------
  262.     # ● 圖片顯示保證高度
  263.     #------------------------------------------------------------------------
  264.     #h = 6 + now_h if (h - now_h) < 6
  265.     #------------------------------------------------------------------------
  266.     # ● 換算高度
  267.     #------------------------------------------------------------------------
  268.     self.height = h * @size + @name_size + 32
  269.     #------------------------------------------------------------------------
  270.     # ● 生成背景
  271.     #------------------------------------------------------------------------
  272.     self.contents = Bitmap.new(self.width - 32, self.height - 32)
  273.     self.contents.clear
  274.     #------------------------------------------------------------------------
  275.     # ● 名字描繪
  276.     #------------------------------------------------------------------------
  277.     text = equipment.name
  278.     self.contents.font.color = normal_color
  279.     self.contents.font.size = @name_size
  280.     if text.nil?
  281.       self.visible = false
  282.     else
  283.       self.visible = true
  284.       self.contents.draw_text(0, 0, text.size*7, @name_size, text, 0)
  285.     end
  286.     #------------------------------------------------------------------------
  287.     # ● 說明描繪
  288.     #------------------------------------------------------------------------
  289.     x = 0
  290.     @y += 1
  291.     while ((text = description.slice!(/./m)) != nil)
  292.       self.contents.font.color = normal_color
  293.       self.contents.font.size = @size
  294.       self.contents.draw_text(x*@size, @y*@size+5, @size, @size, text, 0)
  295.       x+=1
  296.       if x == @word
  297.         x=0
  298.         @y+=1
  299.       end
  300.     end
  301.     #------------------------------------------------------------------------
  302.     # ● 圖標描繪
  303.     #------------------------------------------------------------------------
  304.     #bitmap = Cache.system("Iconset")
  305.     #rect = Rect.new(equipment.icon_index % 16 * 24, equipment.icon_index / 16 * 24, 24, 24)
  306.     #self.contents.blt(0, y*size + 20, bitmap, rect, 255)
  307.     #------------------------------------------------------------------------
  308.     # ● 價格描繪
  309.     #------------------------------------------------------------------------
  310.     unless equipment.price.zero?
  311.       text = phrase[:price] + ":" + equipment.price.to_s
  312.       draw_text(text, 1, move)
  313.     end
  314.     #------------------------------------------------------------------------
  315.     # ● 攻擊力
  316.     #------------------------------------------------------------------------
  317.     unless equipment.atk.zero?
  318.       text = $data_system.terms.atk + ":" + equipment.atk.to_s
  319.       draw_text(text, 1, move)
  320.     end
  321.     #------------------------------------------------------------------------
  322.     # ● 防禦力
  323.     #------------------------------------------------------------------------
  324.     unless equipment.def.zero?
  325.       text = $data_system.terms.def + ":" + equipment.def.to_s
  326.       draw_text(text, 1, move)
  327.     end
  328.     #------------------------------------------------------------------------
  329.     # ● 精神力
  330.     #------------------------------------------------------------------------
  331.     unless equipment.spi.zero?
  332.       text = $data_system.terms.spi + ":" + equipment.spi.to_s
  333.       draw_text(text, 1, move)
  334.     end
  335.     #------------------------------------------------------------------------
  336.     # ● 敏捷力
  337.     #------------------------------------------------------------------------
  338.     unless equipment.agi.zero?
  339.       text = $data_system.terms.agi + ":" + equipment.agi.to_s
  340.       draw_text(text, 1, move)
  341.     end
  342.     #------------------------------------------------------------------------
  343.     # ● 屬性
  344.     #------------------------------------------------------------------------
  345.     if element_set.size > 0
  346.       case equipment
  347.       when RPG::Weapon
  348.         text=phrase[:elements]+":"
  349.       when RPG::Armor
  350.         text=phrase[:guard_elements]+":"
  351.       end
  352.       draw_text(text, 1, move)
  353.       element_set.each do |i|
  354.         text = $data_system.elements[i]
  355.         draw_text(text, 1, move + @size)
  356.       end
  357.     end
  358.     #------------------------------------------------------------------------
  359.     # ● 狀態
  360.     #------------------------------------------------------------------------
  361.     if state_set.size > 0
  362.       case equipment
  363.       when RPG::Weapon
  364.         text=phrase[:states]+":"
  365.       when RPG::Armor
  366.         text=phrase[:guard_states]+":"
  367.       end
  368.       draw_text(text, 1, move)
  369.       state_set.each do |i|
  370.         text = $data_states[i].name
  371.         draw_text(text, 1, move + @size)
  372.       end
  373.     end
  374.     #------------------------------------------------------------------------
  375.     # ● 特殊效果
  376.     #------------------------------------------------------------------------
  377.     if special.size > 0
  378.       text = phrase[:special]+":"
  379.       draw_text(text, 1, move)
  380.       special.each {|text| draw_text(text, 1, move + @size)}
  381.     end
  382.   end
  383. #////////////////////////////////////////////////////////////////////////////
  384.   #--------------------------------------------------------------------------
  385.   # ● 物品幫助窗口
  386.   #--------------------------------------------------------------------------
  387.   def set_item_text(item)
  388.     #----------------------------#
  389.     # 取得屬性、狀態、說明之副本 #
  390.     #----------------------------#
  391.     description = item.description.clone
  392.     element_set = item.element_set.clone
  393.     plus_state_set = item.plus_state_set.clone
  394.     minus_state_set = item.minus_state_set.clone
  395.     # 過濾不顯示的描述
  396.     element_set -= @unshow_elements
  397.     plus_state_set -= @unshow_states
  398.     minus_state_set -= @unshow_states
  399.     # 初始化數據設定
  400.     x, h, move = 0, 0, 0
  401.     phrase = @phrase
  402.     scope = @scope
  403.     parameter_type = @parameter_type
  404.     occasion = @occasion
  405.     # 基本文字設定

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

  754. #==============================================================================
  755. # ■ Window_Item
  756. #------------------------------------------------------------------------------
  757. #  アイテム画面などで、所持アイテムの一覧を表示するウィンドウです。
  758. #==============================================================================

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

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

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

VX的畫圖速度超慢,加了這個腳本會讓窗口打開速度慢上0.04~0.20秒不等(P4 2Ghz 128MB Memory),讓禾西對於VX和自己都非常失望。所以是否使用請三思而後行。
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

2
发表于 2008-4-19 14:08:33 | 只看该作者
490行出錯
text = scope[skill.scope]應該是text = scope[item.scope]吧?
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

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

贵宾

3
 楼主| 发表于 2008-4-19 14:24:49 | 只看该作者
唔,的確寫錯了。已經修正==|||
順便麻煩把個懸賞分去掉。
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

4
发表于 2008-4-19 14:35:16 | 只看该作者
以下引用禾西于2008-4-19 6:24:49的发言:
順便麻煩把個懸賞分去掉。

MM,已經清除了
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

5
发表于 2008-4-19 17:54:31 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

6
发表于 2008-4-19 18:46:09 | 只看该作者
不增加鼠标系统也有也会有用吗?
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-4-19
帖子
52
7
发表于 2008-4-29 04:49:15 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

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

贵宾

8
 楼主| 发表于 2008-4-29 17:30:22 | 只看该作者
超過邊框了吧?==記憶中禾西那裏沒有寫上換行的功能。
可以搜索
    self.width = 186        #修正寬度

改變一下數值
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-4-19
帖子
52
9
发表于 2008-4-30 03:38:01 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-20
帖子
258
10
发表于 2008-5-2 17:03:17 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 06:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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