Project1

标题: 强化系统报错! [打印本页]

作者: a965645462    时间: 2015-6-20 10:37
标题: 强化系统报错!
所有东西都设置了好了     强化时出现这个字样:
以下是强化系统脚本:
RUBY 代码复制
  1. =begin
  2. ==============================================================================
  3.   MESS 1.00 (全称:Make Equips Stornger System)
  4. -----------------------------------------------------------------------------
  5.   装备强化系统 1.00 by 804173948
  6. ==============================================================================
  7.   与其他大部分强化系统的区别:
  8.  
  9.     (并没有针对某些强化系统、不过按自己的喜好选择吧)
  10.     
  11.     1.增加属性方面
  12.       大部分强化系统强化装备时增加的属性都是用特定公式计算的,
  13.       这个可直接在数据库里面自己设定好每一个属性,不用被公式束缚、
  14.       另外还有一个好处是,因为是数据库里面的装备,
  15.       所以打怪也可以直接在数据库里设定掉落这些被强化的装备
  16.     
  17.     2.强化成功率和所需金钱方面
  18.       很多强化系统都是固定的一个值或几个值,
  19.       本脚本可以直接在数据库里设定、不同装备强化成功率以及所需金钱都不同
  20.     
  21.     3.所需物品方面
  22.       本强化系统可以用多个物品强化一个装备,
  23.       强化每一个装备所需的物品都可以自行设定,
  24.       (打个比方、比如说要强化一个红宝石做的项链、自然要用[红宝石]来强化它;
  25.       但是一个绿宝石做的项链、却用[红宝石]来强化、就会觉得很怪、所以本人觉得
  26.       强化每一个装备所需的物品都可以自行设定 更合理)
  27.       
  28.     4.物品槽
  29.       (个人感觉更像合成系统之类的、、、)
  30.       
  31.   使用说明:
  32.  
  33.     装备:
  34.     
  35.       1.使装备能够强化:
  36.           在备注上加上 [Strongable 强化后的ID]
  37.           
  38.           如:一个武器在备注加上[Strongable 100]
  39.           强化成功后就获得一个 第100号武器
  40.           
  41.       2.强化成功率:
  42.           在备注上加上 [Rate 成功率]
  43.           成功率是0~100之间
  44.           
  45.       3.强化所需金钱:
  46.           在备注上加上 [Gold 数值]
  47.           
  48.       4.强化所需物品:
  49.           在备注上加上 [item n 物品[n]ID]
  50.           n 代表所需的第 n 个物品
  51.           
  52.           如:一个武器需要 第10号物品2个,30号物品一个
  53.           就在备注上加上 [item 1 10]
  54.                         [item 2 10]
  55.                         [item 3 30]
  56.           详细的就直接看范例的数据库里吧、
  57.        
  58.     物品:
  59.     
  60.       1.能够增加成功率:
  61.           在备注上加上 [RateUP 成功率]
  62.           成功率最好是0~100之间
  63.           注意、所谓成功率不是直接加在装备成功率上
  64.           、、比如说、强化一个成功几率为 60% 的装备、使用能够提升 20% 成功率的物品
  65.           成功率不是变为 80,而是 72 ,72 = 60*(1+20%)
  66.       
  67.       2.能够防止装备随坏:
  68.           在备注上加上 [Prevent]
  69.           
  70.     界面:
  71.     
  72.       1.物品装备栏:
  73.           位于左方,选取物品和装备进行强化
  74.       2.物品信息栏:
  75.           中间最大的那个,显示装备物品信息和强化信息
  76.       3.所需物品提示:
  77.           中下方,显示强化某装备必须品
  78.       4.物品槽:
  79.           右下角,选定准备进行强化的物品
  80.       
  81.       ※5.提示框(最最重要的又是最最最容易被人忽略的):
  82.           左上方,提示你接下来要做什么、、、
  83.           
  84.   ※注意事项:
  85.       
  86.     1.此脚本要与“装备帮助增强”脚本共用
  87.     (“装备帮助增强”脚本我改动了、具体行数是 123 行到 133 行,
  88.       请复制到你的工程同一位置中)
  89.       
  90.     2.不知道、、、
  91.  
  92.   BUG、冲突:
  93.  
  94.     暂无- -、
  95.  
  96.   友情提示:
  97.     最好把窗口分辨率调到最大、、、
  98.       
  99.  
  100. =end
  101. module MESS
  102.   # 能够强化的标志
  103.   CanAugmentFlag = "Strongable"
  104.   # 强化成功的几率
  105.   SuccessfulAugmentRate = "Rate"
  106.   # 强化所需物品
  107.   UseItemForAugment = "Item"
  108.   # 强化所需金钱
  109.   MoneyForAugment = "Gold"
  110.   # 增加强化成功率的物品(0~100)
  111.   CanRateUP = "RateUP"
  112.   # 强化失败能避免原装备损坏的标志
  113.   PreventLost = "Prevent"
  114.   # 强化所需物品最大值
  115.   MaxItemUse = 5
  116. end
  117. class Scene_MESS < Scene_ItemBase
  118.   #--------------------------------------------------------------------------
  119.   # ● 开始处理
  120.   #--------------------------------------------------------------------------
  121.   def start
  122.     super
  123.     create_help_window
  124.     create_text_help_window
  125.     create_item_status_window
  126.     create_item_window
  127.     create_augment_setting_window
  128.     create_item_slot_window
  129.   end
  130.   #--------------------------------------------------------------------------
  131.   # ● 生成文字提示窗口
  132.   #--------------------------------------------------------------------------
  133.   def create_text_help_window
  134.     @text_help_window = Window_Help.new(1)
  135.     @text_help_window.width = 256
  136.     @text_help_window.set_text("选择装备进行强化")
  137.   end
  138.   #--------------------------------------------------------------------------
  139.   # ● 生成物品窗口
  140.   #--------------------------------------------------------------------------
  141.   def create_item_window
  142.     wy = @text_help_window.y + @text_help_window.height
  143.     ww = @text_help_window.width
  144.     wh = Graphics.height - wy
  145.     @item_window = Window_EquipList.new(0, wy, ww, wh)
  146.     @item_window.viewport = @viewport
  147.     @item_window.help_window = @item_status_window
  148.     @item_window.set_handler(:ok    , method(:on_item_ok))
  149.     @item_window.set_handler(:cancel, method(:on_item_cancel))
  150.   end
  151.   #--------------------------------------------------------------------------
  152.   # ● 生成物品状态窗口
  153.   #--------------------------------------------------------------------------
  154.   def create_item_status_window
  155.     wx = @text_help_window.width
  156.     wy = 0
  157.     ww = Graphics.width - wx
  158.     wh = Graphics.height / 3 * 2
  159.     @item_status_window = Window_EquipStatus2.new(wx, wy, ww, wh)
  160.     @item_status_window.viewport = @viewport
  161.   end
  162.   #--------------------------------------------------------------------------
  163.   # ● 生成强化设定窗口(中下窗口)
  164.   #--------------------------------------------------------------------------
  165.   def create_augment_setting_window
  166.     wx = @text_help_window.width
  167.     wy = @item_status_window.height
  168.     ww = (Graphics.width - wx)/2
  169.     wh = Graphics.height - wy
  170.     @augment_setting_window = Window_AugmentSet.new(wx, wy, ww, wh)
  171.     @augment_setting_window.viewport = @viewport
  172.     @item_status_window.relation_window = @augment_setting_window
  173.   end
  174.   #--------------------------------------------------------------------------
  175.   # ● 生成物品槽
  176.   #--------------------------------------------------------------------------
  177.   def create_item_slot_window
  178.     wx = @augment_setting_window.x + @augment_setting_window.width
  179.     wy = @augment_setting_window.y
  180.     ww = Graphics.width - wx
  181.     wh = Graphics.height - wy
  182.     @slot_window = Window_ItemSlot.new(wx, wy, ww, wh)
  183.     @slot_window.viewport = @viewport
  184.     @slot_window.help_window = @item_status_window
  185.     @slot_window.set_handler(:ok    , method(:on_slot_ok))
  186.     @slot_window.set_handler(:cancel, method(:on_slot_cancel))
  187.     @item_window.index = 0
  188.     @item_window.activate
  189.   end
  190.   #--------------------------------------------------------------------------
  191.   # ● 生成警示窗口
  192.   #--------------------------------------------------------------------------
  193.   def create_warn_window
  194.     ww = Graphics.width / 4 * 3
  195.     wx = (Graphics.width - ww) / 2
  196.     wy = 80
  197.     @warn_window = Window_Help.new(1)
  198.     @warn_window.x = wx
  199.     @warn_window.y = wy
  200.     @warn_window.width = ww
  201.     @warn_window.viewport = @viewport
  202.     @warn_window.hide
  203.   end
  204.   #--------------------------------------------------------------------------
  205.   # ● 物品“确定”
  206.   #--------------------------------------------------------------------------
  207.   def on_item_ok
  208.     if @item_window.item
  209.       if @item_window.itemtype == :equip
  210.         @item_window.equip = @item_status_window.equip
  211.         @text_help_window.set_text("选择物品进行强化")
  212.         @item_window.itemtype = :item
  213.         @item_window.refresh
  214.         @item_window.index = 0
  215.         @item_window.activate
  216.       elsif @item_window.itemtype == :item
  217.         @text_help_window.set_text("选择物品槽放置物品")
  218.         @slot_window.index = 0 if @slot_window.index < 0
  219.         @slot_window.activate
  220.       end
  221.     else
  222.       on_item_change
  223.     end
  224.   end
  225.   #--------------------------------------------------------------------------
  226.   # ● 物品“取消”
  227.   #--------------------------------------------------------------------------
  228.   def on_item_cancel(augmenting = false)
  229.     if @item_window.itemtype == :item
  230.       if @slot_window.data != [] && augmenting == false
  231.         MESS::MaxItemUse.times {|i| $game_party.gain_item(@slot_window.data[i],1) if @slot_window.data[i]}
  232.         MESS::MaxItemUse.times {|i| @slot_window.remove_item(i)}
  233.       end
  234.       @item_window.equip = nil
  235.       @text_help_window.set_text("选择装备进行强化")
  236.       @item_window.itemtype = :equip
  237.       @item_window.refresh
  238.       @item_window.index = 0
  239.       @item_status_window.clear(true) if augmenting
  240.       @item_window.activate
  241.     elsif @item_window.itemtype == :equip
  242.       SceneManager.return
  243.     end
  244.   end
  245.   #--------------------------------------------------------------------------
  246.   # ● 装备栏“确定”
  247.   #--------------------------------------------------------------------------
  248.   def on_slot_ok
  249.     if @slot_window.item != :augment
  250.       if @item_window.windowstatus == :owner
  251.         @text_help_window.set_text("选择物品进行强化")
  252.         @augment_setting_window.set_item(@item_status_window.equip)
  253.         item = @item_window.item
  254.         if item.porveup > 0
  255.           rate = @item_status_window.basic_rate.to_f
  256.           rate *= item.porveup/100.0
  257.           rate *= 10
  258.           rate.round
  259.           rate /= 10.0
  260.           @item_status_window.rate = @item_status_window.rate + rate
  261.         end
  262.         item = @slot_window.item
  263.         if item
  264.           if item.porveup > 0
  265.             rate = @item_status_window.basic_rate.to_f
  266.             rate *= item.porveup/100.0
  267.             rate *= 10
  268.             rate.round
  269.             rate /= 10.0
  270.             @item_status_window.rate = @item_status_window.rate - rate
  271.           end
  272.         end
  273.         $game_party.lose_item(@item_window.item,1)
  274.         $game_party.gain_item(@slot_window.item,1) if @slot_window.item
  275.         @slot_window.set_item(@item_window.item,@slot_window.index)
  276.         @item_status_window.refresh_aug_status
  277.         @item_window.refresh
  278.         @item_window.activate
  279.       elsif @item_window.windowstatus == :given
  280.         item = @slot_window.item
  281.         if item
  282.           if item.porveup > 0
  283.             rate = @item_status_window.basic_rate.to_f
  284.             rate *= item.porveup/100.0
  285.             rate *= 10
  286.             rate.round
  287.             rate /= 10.0
  288.             @item_status_window.rate = @item_status_window.rate - rate
  289.           end
  290.           $game_party.gain_item(item,1)
  291.           @slot_window.remove_item(@slot_window.index)
  292.         end
  293.         @item_status_window.refresh_aug_status
  294.         @item_window.refresh
  295.         @slot_window.activate
  296.       end
  297.     else
  298.       @text_help_window.set_text("正在进行强化中...")
  299.       augment
  300.     end
  301.   end
  302.   #--------------------------------------------------------------------------
  303.   # ● 装备栏“取消”
  304.   #--------------------------------------------------------------------------
  305.   def on_slot_cancel
  306.     if @item_window.windowstatus == :owner
  307.       @text_help_window.set_text("选择物品进行强化")
  308.       @item_window.refresh
  309.       @item_window.activate
  310.     elsif @item_window.windowstatus == :given
  311.       on_slot_change
  312.     end
  313.   end
  314.  
  315.   def augment
  316.     create_warn_window
  317.     equip = @item_status_window.equip
  318.     if equip
  319.       rate = @item_status_window.rate
  320.       gold = @item_status_window.gold
  321.       item = @slot_window.data.select {|item| item != :augment && item }
  322.       needitem = []
  323.       MESS::MaxItemUse.times {|i| needitem.push($data_items[equip.strongitem(i+1)]) if equip.strongitem(i+1) > 0}
  324.       # 检查必需品
  325.       needcount = 0
  326.       for i in 0 ... needitem.size
  327.         if item.include?(needitem[i])
  328.           needcount += 1
  329.           for a in 0 ... item.size
  330.             if item[a] == needitem[i]
  331.               item.delete_at(a)
  332.               break
  333.             end
  334.           end
  335.         end
  336.       end
  337. #~       needitem.size.times{|i| item.delete(needitem[i]) if item.include?(needitem[i])}
  338.       if needcount >= needitem.size
  339.         if $game_party.gold >= gold
  340.           $game_party.lose_gold(gold)
  341.           $game_party.lose_item(equip,1)
  342.           rand = rand(100)
  343.           if rand <= rate
  344.             new_item = nil
  345.             if equip.is_a?(RPG::Weapon)
  346.               new_item = $data_weapons[equip.strongto]
  347.             elsif equip.is_a?(RPG::Armor)
  348.               new_item = $data_armors[equip.strongto]
  349.             end
  350.             $game_party.gain_item(new_item,1)
  351.             BattleManager.play_battle_end_me
  352.             @warn_window.show
  353.             @warn_window.set_text("恭喜!装备强化到了" + new_item.name + "!")
  354.             Graphics.wait(60)
  355.             @warn_window.hide
  356.             @slot_window.clear
  357.             @slot_window.refresh
  358.             on_slot_cancel
  359.             on_item_cancel(true)
  360.           else
  361.             prevent = false
  362.             for i in 0 ... item.size
  363.               if item[i].prevent?
  364.                 prevent = true
  365.                 break
  366.               end
  367.             end
  368.             if !prevent
  369.               $data_system.gameover_me.play
  370.               @warn_window.show
  371.               @warn_window.set_text("很遗憾,强化失败,装备消失")
  372.               Graphics.wait(60)
  373.               @warn_window.hide
  374.               @slot_window.clear
  375.               @slot_window.refresh
  376.               on_slot_cancel
  377.               on_item_cancel(true)
  378.             else
  379.               $game_party.gain_item(equip,1)
  380.               $data_system.gameover_me.play
  381.               @warn_window.show
  382.               @warn_window.set_text("强化失败,使用特殊道具,装备保留")
  383.               Graphics.wait(60)
  384.               @warn_window.hide
  385.               @slot_window.clear
  386.               @slot_window.refresh
  387.               on_slot_cancel
  388.               on_item_cancel(true)
  389.             end
  390.           end
  391.         else
  392.           Sound.play_buzzer
  393.           @warn_window.show
  394.           @warn_window.set_text("没有足够金钱")
  395.           Graphics.wait(30)
  396.           @warn_window.hide
  397.           on_slot_cancel
  398.         end
  399.       else
  400.         Sound.play_buzzer
  401.         @warn_window.show
  402.         @warn_window.set_text("没有足够物品")
  403.         Graphics.wait(30)
  404.         @warn_window.hide
  405.         on_slot_cancel
  406.       end
  407.     else
  408.       Sound.play_buzzer
  409.       @warn_window.show
  410.       @warn_window.set_text("没有选定装备")
  411.       Graphics.wait(30)
  412.       @warn_window.hide
  413.       on_slot_cancel
  414.     end
  415.   end
  416.  
  417.   def on_item_change
  418.     @text_help_window.set_text("移除物品槽物品")
  419.     @item_window.windowstatus = :given
  420.     @slot_window.refresh
  421.     @slot_window.activate
  422.   end
  423.  
  424.   def on_slot_change
  425.     @text_help_window.set_text("选择物品进行强化")
  426.     @item_window.windowstatus = :owner
  427.     @slot_window.index = 0
  428.     @item_window.refresh
  429.     @item_window.activate
  430.   end
  431.   #--------------------------------------------------------------------------
  432.   # ● 播放使用物品声效
  433.   #--------------------------------------------------------------------------
  434.   def play_se_for_item
  435.     Sound.play_use_item
  436.   end
  437.   #--------------------------------------------------------------------------
  438.   # ● 使用物品
  439.   #--------------------------------------------------------------------------
  440.   def use_item
  441.     super
  442.     @item_window.redraw_current_item
  443.   end
  444. end
  445.  
  446. class Window_EquipList <  Window_ItemList
  447.   attr_accessor       :equip
  448.   attr_accessor       :itemtype
  449.   attr_accessor       :windowstatus
  450.   def initialize(x, y, width, height)
  451.     super
  452.     @data = []
  453.     @equip = nil
  454.     @itemtype = :equip
  455.     @windowstatus = :owner
  456.     refresh
  457.   end
  458.   def col_max
  459.     return 1
  460.   end
  461.   def can_use?(id)
  462.     for i in 1 .. MESS::MaxItemUse
  463.       return true if @equip.strongitem(i) == id
  464.     end
  465.     return false
  466.   end
  467.   def include?(item,times = 0)
  468.     if item
  469.       case @itemtype
  470.       when :equip
  471.         if !item.is_a?(RPG::Item)
  472.           item.strongto > 0
  473.         else
  474.           false
  475.         end
  476.       when :item
  477.         if item.is_a?(RPG::Item)
  478.           if times == 0
  479.             can_use?(item.id)
  480.           elsif times == 1
  481.             item.prevent? || item.porveup > 0
  482.           end
  483.         else
  484.           false
  485.         end
  486.       else
  487.         false
  488.       end
  489.     else
  490.       true
  491.     end
  492.   end
  493.   def enable?(item)
  494.     return true
  495.   end
  496.   def make_item_list
  497.     @data = []
  498.     case @itemtype
  499.     when :equip
  500.       @data = $game_party.all_items.select {|item| include?(item) }
  501.     when :item
  502.       2.times {|i| @data += $game_party.all_items.select{|item| include?(item,i) } }
  503.     end
  504.     @data.push(nil) if include?(nil)
  505.   end
  506.   def draw_item(index)
  507.     item = @data[index]
  508.     if item
  509.       rect = item_rect(index)
  510.       rect.width -= 4
  511.       draw_item_name(item, rect.x, rect.y, enable?(item))
  512.       draw_item_number(rect, item)
  513.     elsif index == @data.size - 1 && !item
  514.       rect = item_rect(index)
  515.       draw_text(rect.x, rect.y, self.width-(rect.x+update_padding)*2, line_height, "光标移到物品槽",1)
  516.     end
  517.   end
  518.   def update_help
  519.     @help_window.set_item(item)
  520.   end
  521. end
  522. class Window_EquipStatus2 < Window_Base
  523.   attr_reader       :equip
  524.   attr_accessor     :relation_window  
  525.   attr_accessor     :rate
  526.   attr_accessor     :gold
  527.   def initialize(x,y,w,h)
  528.     super(x,y,w,h)
  529.     @equip = nil
  530.     @relation_window = nil   
  531.     @rate = 0.0
  532.     @gold = 0
  533.   end  
  534.   def basic_rate
  535.     return @equip ? @equip.strongrate : nil
  536.   end
  537.   def item_rate
  538.     return basic_rate ? (@rate - basic_rate).to_i : nil
  539.   end
  540.   def basic_gold
  541.     return @equip ? @equip.strongmoney : nil
  542.   end
  543.   def draw_augment_status(x,y,width)
  544.     if @equip
  545.       contents.font.size -= 6
  546.       contents.font.color = Color.new(128,255,128)
  547.       rate = [@rate,100].min
  548.       rate *= 10
  549.       rate.round
  550.       rate /= 10.0
  551.       draw_text(x,y,width,line_height,"成功率:"+rate.to_s+" ( "+item_rate.to_s+" )%")
  552.       contents.font.color = Color.new(255,255,128)
  553.       draw_text(x,y+line_height,width,line_height,Vocab::currency_unit+" ×"+basic_gold.to_s)
  554.       contents.font.size += 6
  555.       contents.font.color = Color.new(255,255,255)
  556.     end
  557.   end
  558.  
  559.   def can_use?(id)
  560.     for i in 1 .. MESS::MaxItemUse
  561.       return true if @equip.strongitem(i) == id
  562.     end
  563.     return false
  564.   end
  565.   def clear(equip_nil = false)
  566.     contents.clear
  567.     @equip = nil if equip_nil
  568.   end
  569.   def draw_old_equip(x,y,width,item)
  570.     change_color(system_color)
  571.     draw_text(x, y, width,line_height,"原装备:")
  572.     contents.font.color = Color.new(255,255,128)
  573.     rect = Rect.new(x,y+line_height+4,width,24)
  574.     draw_item_name(item, rect.x, rect.y)
  575.     help = "\\c[6]" + Equipplus.getequiphelp(item)
  576.     contents.font.size -= 8
  577.     draw_text_ex(x,y+line_height+4+24+4,help,width,40,false)
  578.     contents.font.size += 8
  579.     change_color(normal_color)
  580.   end
  581.   def draw_new_equip(x,y,width,item)
  582.     change_color(system_color)
  583.     draw_text(x, y, width,line_height,"新装备:")
  584.     contents.font.color = Color.new(128,255,128)
  585.     rect = Rect.new(x,y+line_height+4,width,24)
  586.     draw_item_name(item, rect.x, rect.y)
  587.     help = "\\c[3]" + Equipplus.getequiphelp(item)
  588.     contents.font.size -= 8
  589.     draw_text_ex(x,y+line_height+4+24+4,help,width,40,false)
  590.     contents.font.size += 8
  591.   end
  592.   def draw_item_effect(x,y,width,item)
  593.     change_color(system_color)
  594.     draw_text(x, y, width,line_height,"道具效果:")
  595.     rect = Rect.new(x,y+line_height+4,width,24)
  596.     draw_item_name(item, rect.x, rect.y)
  597.     help = make_item_help(item)
  598.     contents.font.size -= 4
  599.     draw_text_ex(x,y+line_height+4+24+4,help,width,40,false)
  600.     contents.font.size += 4
  601.     change_color(normal_color)
  602.   end
  603.   def make_item_help(item)
  604.     help = ""
  605.     if item.porveup > 0
  606.       help += "\\c[24]增加成功率:"+item.porveup.to_s+"% \n"
  607.     end
  608.     if item.prevent?
  609.       help += "\\c[13]防止装备损坏 \n"
  610.     end
  611.     if can_use?(item.id)
  612.       help += "\\c[2]必需品\n"
  613.     end
  614.     return help
  615.   end  
  616.   def set_item(item)
  617.     contents.clear
  618.     new_item = nil
  619.     if item.is_a?(RPG::EquipItem)
  620.       @equip = item
  621.       @rate = basic_rate
  622.       @gold = basic_gold
  623.       set_relation_window
  624.       draw_old_equip(4,0,(self.width-(4+update_padding)*2)/2,item)
  625.     elsif item.is_a?(RPG::Item)         
  626.       draw_item_effect(4,0,(self.width-(4+update_padding)*2)/2,item)
  627.       refresh_aug_status if @rate > 0.0 && @gold > 0
  628.     end
  629.     if @equip.is_a?(RPG::Weapon)
  630.         new_item = $data_weapons[@equip.strongto]
  631.     elsif @equip.is_a?(RPG::Armor)
  632.         new_item = $data_armors[@equip.strongto]
  633.     end
  634.     draw_new_equip(8+(self.width-(4+update_padding)*2)/2,0,(self.width-(4+update_padding)*2)/2,new_item) if new_item
  635.   end
  636.   def set_relation_window
  637.     @relation_window.set_item(@equip) if @relation_window
  638.   end
  639.   def refresh_aug_status
  640.     contents.clear_rect(4,self.height - line_height*3,(self.width-(4+update_padding)*2)/2,line_height*2)
  641.     draw_augment_status(4,self.height - line_height*3,(self.width-(4+update_padding)*2)/2)
  642.   end
  643. end
  644.  
  645. class Window_AugmentSet < Window_Base
  646.   def initialize(x,y,w,h)
  647.     super(x,y,w,h)
  648.     @equip = nil
  649.   end
  650.   def draw_equip_need(x,y,width,item)
  651.     useable = []
  652.     change_color(system_color)
  653.     contents.font.size -= 2
  654.     draw_text(x,y,width,line_height,"必需品")
  655.     change_color(normal_color)
  656.     for i in 1 .. MESS::MaxItemUse
  657.       if @equip.strongitem(i) > 0
  658.         useable.push($data_items[@equip.strongitem(i)])
  659.         draw_item_name(useable[i-1], x, y+i*(line_height+2))
  660.       end
  661.     end
  662.     contents.font.size += 2
  663.   end
  664.   def set_item(item)
  665.     contents.clear
  666.     if item
  667.       @equip = item
  668.       draw_equip_need(4,0,(self.width-(4+update_padding)*2)/2,item)
  669.     end
  670.   end
  671. end
  672. class Window_ItemSlot < Window_Selectable
  673.   attr_reader       :data
  674.   def initialize(x, y, width,height)
  675.     super(x, y, width, height)
  676.     @data = []
  677.     refresh
  678.   end
  679.   def clear
  680.     @data = []
  681.   end
  682.   def item_max
  683.     return MESS::MaxItemUse + 1
  684.   end
  685.   def item
  686.     @data && index >= 0 ? @data[index] : nil
  687.   end
  688.   def set_item(item,id)
  689.     @data[id] = item
  690.     refresh
  691.   end
  692.   def remove_item(index)
  693.     @data[index] = nil
  694.     refresh
  695.   end
  696.   def draw_item(index)
  697.     if index < MESS::MaxItemUse
  698.       contents.font.size -= 2
  699.       rect = item_rect_for_text(index)
  700.       change_color(system_color, enable?(index))
  701.       draw_text(rect.x, rect.y, 0, line_height, slot_name(index))
  702.       draw_item_name(@data[index], rect.x + 0, rect.y, enable?(index)) if @data[index]
  703.       change_color(normal_color)
  704.       contents.font.size += 2
  705.     elsif index == MESS::MaxItemUse
  706.       rect = item_rect_for_text(index)
  707.       draw_text(rect.x, rect.y, self.width-(rect.x+update_padding)*2, line_height, "强化装备",1)
  708.       @data[index] = :augment
  709.     end
  710.   end
  711.   def slot_name(index)
  712.     return "空"+(index+1).to_s
  713.   end
  714.   def enable?(index)
  715.     return true
  716.   end
  717.   def update_help
  718.     super
  719.     @help_window.set_item(item) if @help_window
  720.   end
  721. end

作者: taroxd    时间: 2015-6-20 10:53
见脚本“注意事项”一
作者: a965645462    时间: 2015-6-20 14:57
已自行解决问题!
作者: chd114    时间: 2015-6-20 17:36
a965645462 发表于 2015-6-19 21:57
已自行解决问题!

@VIPArcher @taroxd 问题解决




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