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

Project1

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

[已经解决] 请教一个关于装备强化脚本的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2015-6-30
帖子
11
跳转到指定楼层
1
发表于 2015-6-30 16:41:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ 装备强化系统 By wyongcan
  4. #==============================================================================
  5. module Equipplus
  6. #升到各级时装备颜色请在“颜色描绘”脚本中修改
  7. $maxlv = 12  #最高升到的级数
  8. $gailv = [100,80,70,60,50,30,20,10,5,5,5,5,1] #每级提升概率
  9. $gemlv = [[60,23],[10,28],[25,29],[40,30]] #使用宝石提高的几率  [提高几率,宝石ID]
  10. $uplv = [[12,24],[3,25],[6,26],[9,27]] #强化所需要的强化石 [最大强化到的等级,强化石ID]
  11. $xxlv = [0,0,5,10,15,20,25,30,30,40,40,45,60] #每级强化后失败物品消失的几率
  12. $jjlv = [0,10,15,20,30,45,55,65,70,70,75,80,100] #每级强化后失败物品降级的几率
  13. $tsnl = [10,14,18,22,26,30,34,38,42,46,50,54,65] #每级强化提升能力的百分比
  14. $tswp = [31,32] # 意思是:如果有31号物品则失败后物品不消失,如果有32号物品则失败后物品不降级
  15. #武器强化后的计算公式为: 原攻击 * (1 + 提升能力百分比) + (0到当前强化级数随机) * 5 + 当前强化级数
  16. $gemlv.sort!
  17. $uplv.sort!
  18. $当前使用宝石id = 0
  19. $当前使用宝石加成率 = 0
  20. $强化哈希表 = {
  21. "最高等级" => $maxlv ,
  22. "每级概率" => $gailv ,
  23. "宝石效果" => $gemlv ,
  24. "消失几率" => $xxlv  ,
  25. "降级几率" => $jjlv  ,
  26. "提升能力" => $tsnl  ,
  27. "特殊物品" => $tswp  ,
  28. "强化材料" => $uplv  }
  29. def self.idlostitem(id,amount = 1)
  30.   $game_party.lose_item(idgetitem(id),amount)
  31. end

  32. def self.idlostequip(id,weapon = true,amount = 1)
  33.   weapon == true ? $game_party.lose_item($data_weapons[id],amount,true) : $game_party.lose_item($data_armors[id],amount,true)
  34. end

  35. def self.idgainequip(id,weapon = true,amount = 1)
  36.   weapon == true ? $game_party.gain_item($data_weapons[id],amount,true) : $game_party.gain_item($data_armors[id],amount,true)
  37. end

  38. def self.idgetitem(id)
  39.   $data_items[id]
  40. end

  41. def self.equipable?(id,weapon = true)
  42.   weapon == true ? weaponupisnil(id) : armorupisnil(id)
  43.   weapon == true ? equip = $data_weapons[id].dup : equip = $data_armors[id].dup
  44.   price = equip.price
  45.   @needmoney = price * equip.up
  46.   if @needmoney == 0
  47.     @needmoney = price / 2
  48.   end
  49. #循环取出需要的强化材料
  50.   temp = false
  51.   for i in $强化哈希表["强化材料"]
  52.     if equip.up < i[0]
  53.       @lostitem = idgetitem i[1]
  54.       $game_party.has_item?(idgetitem(i[1])) ? temp = true : temp = false
  55.       break
  56.     end
  57.   end
  58.   $game_party.gold >= @needmoney && temp == true ? true : false
  59. end

  60. def self.upweapon (id)
  61.   $message = ""
  62.   success = false
  63.   weaponupisnil(id)
  64.   weapon = $data_weapons[id].dup
  65.   gl = 0
  66.   fangb = false
  67.   fangj = false
  68.   return unless weapon.up < $强化哈希表["最高等级"] && weaponupable?(id)
  69.   loststh
  70.   $message += "本次强化,共消耗:" + Vocab::currency_unit + " " + @needmoney.to_s
  71.   $message += " " + @lostitem.name + "\n "
  72.   gl = $强化哈希表["每级概率"][weapon.up]
  73.   if $usegem == true
  74.     gl += $当前使用宝石加成率
  75.     idlostitem($当前使用宝石id)
  76.     $message += idgetitem($当前使用宝石id).name + " "
  77.   end
  78.   if $fangb == true
  79.     fangb = true
  80.     idlostitem $强化哈希表["特殊物品"][0]
  81.     $message += idgetitem($强化哈希表["特殊物品"][0]).name + " "
  82.   end
  83.   if $fangj == true
  84.     fangj = true
  85.     idlostitem $强化哈希表["特殊物品"][1]
  86.     $message += idgetitem($强化哈希表["特殊物品"][1]).name + " "
  87.   end
  88.   suiji = rand (100)
  89.   if suiji <= gl
  90.     success = true
  91.   end
  92.   $message += "\n强化结果:"
  93.   if success == true
  94.     $message += "强化成功"
  95.     idlostequip id
  96.     weapon.id = $data_weapons.size
  97.     params = weapon.params.dup
  98.     params[2] *= 1 + $强化哈希表["提升能力"][weapon.up] / 100
  99.     params[2] += rand(weapon.up) * 5 + weapon.up
  100.     params[2] += 1 if params[2] == weapon.params[2]
  101.     $message += " 攻击力提升:" + (params[2] - weapon.params[2]).to_int.to_s
  102.     weapon.up += 1
  103.     $data_weapons.insert $data_weapons.size,weapon
  104.     $data_weapons[$data_weapons.size-1].params = params
  105.     idgainequip weapon.id
  106.   else
  107.     $message += "强化失败"
  108.     suiji = rand (100)
  109.     if suiji <= $强化哈希表["消失几率"][weapon.up]
  110.       if fangb != true
  111.       $message += ",道具消失"
  112.       idlostequip id
  113.       else
  114.       $message += ",由于" + idgetitem($强化哈希表["特殊物品"][0]).name + "的作用,道具未消失"
  115.       end
  116.     else
  117.       suiji = rand (100)
  118.       if suiji <= $强化哈希表["降级几率"][weapon.up]
  119.         if fangj == false && weapon.up != 0
  120.           $message += ",道具降级"
  121.           params = weapon.params.dup
  122.           params[2] -= weapon.up + rand(weapon.up) * 5
  123.           params[2] /= 1 + $强化哈希表["提升能力"][weapon.up] / 100
  124.           weapon.params = params
  125.           weapon.up -= 1
  126.           $data_weapons[id] = weapon
  127.         else
  128.           $message += ",由于" + idgetitem($强化哈希表["特殊物品"][1]).name + "的作用,道具未降级"
  129.         end
  130.       end
  131.     end
  132.   end
  133.    $usegem = false
  134.    $fangb = false
  135.    $fangj = false
  136. end

  137. def self.weaponupisnil(id)
  138.    $data_weapons[id].up = 0 unless $data_weapons[id].up != nil
  139. end

  140. def self.weaponupable?(id)
  141.   equipable?(id)
  142. end

  143. def self.uparmor (id)
  144.   $message = ""
  145.   success = false
  146.   armorupisnil(id)
  147.   armor = $data_armors[id].dup
  148.   gl = 0
  149.   fangb = false
  150.   fangj = false
  151.   return unless armor.up < $强化哈希表["最高等级"] && armorupable?(id)
  152.   loststh
  153.   $message += "本次强化,共消耗:" + Vocab::currency_unit + " " + @needmoney.to_s
  154.   $message += " " + @lostitem.name + "\n "
  155.   gl = $强化哈希表["每级概率"][armor.up]
  156.   if $usegem == true
  157.     gl += $当前使用宝石加成率
  158.     idlostitem($当前使用宝石id)
  159.     $message += idgetitem($当前使用宝石id).name + " "
  160.   end
  161.   if $fangb == true
  162.     fangb = true
  163.     idlostitem $强化哈希表["特殊物品"][0]
  164.     $message += idgetitem($强化哈希表["特殊物品"][0]).name + " "
  165.   end
  166.   if $fangj == true
  167.     fangj = true
  168.     idlostitem $强化哈希表["特殊物品"][1]
  169.     $message += idgetitem($强化哈希表["特殊物品"][1]).name + " "
  170.   end
  171.   suiji = rand (100)
  172.   if suiji <= gl
  173.     success = true
  174.   end
  175.   $message += "\n强化结果:"
  176.   if success == true
  177.     $message += "强化成功"
  178.     idlostequip id,false
  179.     armor.id = $data_armors.size
  180.     params = armor.params.dup
  181.     params[3] *= 1 + $强化哈希表["提升能力"][armor.up] / 100
  182.     params[3] += rand(armor.up) * 5 + armor.up
  183.     params[3] += 1 if params[3] == armor.params[3]
  184.     $message += " 防御力提升:" + (params[3] - armor.params[3]).to_int.to_s
  185.     armor.up += 1
  186.     $data_armors.insert $data_armors.size,armor
  187.     $data_armors[$data_armors.size-1].params = params
  188.     idgainequip armor.id,false
  189.   else
  190.     $message += "强化失败"
  191.     suiji = rand (100)
  192.     if suiji <= $强化哈希表["消失几率"][armor.up]
  193.       if fangb != true
  194.       $message += ",道具消失"
  195.       idlostequip id,false
  196.       else
  197.       $message += ",由于" + idgetitem($强化哈希表["特殊物品"][0]).name + "的作用,道具未消失"
  198.       end
  199.     else
  200.       suiji = rand (100)
  201.       if suiji <= $强化哈希表["降级几率"][armor.up]
  202.         if fangj == false && armor.up != 0
  203.           $message += ",道具降级"
  204.           params = armor.params.dup
  205.           params[3] -= armor.up + rand(armor.up) * 5
  206.           params[3] /= 1 + $强化哈希表["提升能力"][armor.up] / 100
  207.           armor.params = params
  208.           armor.up -= 1
  209.           $data_armors[id] = armor
  210.         else
  211.           $message += ",由于" + idgetitem($强化哈希表["特殊物品"][1]).name + "的作用,道具未降级"
  212.         end
  213.       end
  214.     end
  215.   end
  216.    $usegem = false
  217.    $fangb = false
  218.    $fangj = false
  219. end

  220. def self.armorupisnil(id)
  221.    $data_armors[id].up = 0 unless $data_armors[id].up != nil
  222. end
  223. def self.armorupable?(id)
  224.   equipable?(id,false)
  225. end
  226. def self.loststh()
  227.    $game_party.lose_item(@lostitem,1)
  228.    $game_party.lose_gold(@needmoney)
  229. end
  230. def self.needmoney
  231.    @needmoney
  232. end
  233. def self.lostitem
  234.    @lostitem
  235. end
  236. end
  237. #==============================================================================
  238. # ■ Scene_Qiang
  239. #------------------------------------------------------------------------------
  240. #  强化画面
  241. #==============================================================================

  242. class Scene_Qiang < Scene_MenuBase
  243.   $wufang = true
  244.   $usegem = false
  245.   $fangb = false
  246.   $fangj = false
  247.   #--------------------------------------------------------------------------
  248.   # ● 开始处理
  249.   #--------------------------------------------------------------------------
  250.   def start
  251.     super
  252.     create_help_window
  253.     @help_window.hide
  254.     create_qianghelp_window
  255.     create_command_window
  256.     create_qiangxz_window
  257.     create_wu_window
  258.     create_fang_window
  259.     create_choosegem_window
  260.   end
  261.   #--------------------------------------------------------------------------
  262.   # ● 生成说明窗口
  263.   #--------------------------------------------------------------------------
  264.   def create_qianghelp_window
  265.     @qianghelp_window = Window_Qianghelp.new
  266.     @qianghelp_window.y = Graphics.height - @qianghelp_window.height
  267.     @qianghelp_window.viewport = @viewport
  268.     @qianghelp_window.hide
  269.   end
  270.   #--------------------------------------------------------------------------
  271.   # ● 生成选择宝石
  272.   #--------------------------------------------------------------------------
  273.   def create_choosegem_window
  274.     @choosegem_window = Window_Choosegem.new
  275.     @choosegem_window.y = Graphics.height - @choosegem_window.height
  276.     @choosegem_window.viewport = @viewport
  277.     @choosegem_window.z = 120
  278.   end
  279.   #--------------------------------------------------------------------------
  280.   # ● 生成选择窗口
  281.   #--------------------------------------------------------------------------
  282.   def create_qiangxz_window
  283.     @qiangxz_window = Window_Qiangxz.new
  284.     @qiangxz_window.y = @help_window.height + fitting_height(5) /2
  285.     @qiangxz_window.z = 110
  286.     @qiangxz_window.viewport = @viewport
  287.     @qiangxz_window.set_handler(:gem,    method(:qiangxz_gem))
  288.     @qiangxz_window.set_handler(:fangb,    method(:qiangxz_fangb))
  289.     @qiangxz_window.set_handler(:fangj,    method(:qiangxz_fangj))
  290.     @qiangxz_window.set_handler(:ok, method(:qiangxz_ok))
  291.     @qiangxz_window.set_handler(:cancel, method(:qiangxz_cancel))
  292.     @qiangxz_window.hide
  293.     @qiangxz_window.deactivate
  294.   end
  295.   #--------------------------------------------------------------------------
  296.   # ● 生成指令窗口
  297.   #--------------------------------------------------------------------------
  298.   def create_command_window
  299.     @command_window = Window_QiangCommand.new
  300.     @command_window.viewport = @viewport
  301.     @command_window.y = @help_window.height + fitting_height(3) /2
  302.     @command_window.set_handler(:qiangwu,    method(:qiangwu))
  303.     @command_window.set_handler(:qiangfang,   method(:qiangfang))
  304.     @command_window.set_handler(:cancel, method(:return_scene))
  305.   end
  306.   #--------------------------------------------------------------------------
  307.   # ● 生成武器强化窗口
  308.   #--------------------------------------------------------------------------
  309.   def create_wu_window
  310.     @wu_window = Window_Qiangwu.new(@qianghelp_window,@qiangxz_window)
  311.     @wu_window.viewport = @viewport
  312.     @wu_window.y += @help_window.height
  313.     @wu_window.hide
  314.     @wu_window.help_window= @help_window
  315.     @wu_window.set_handler(:cancel, method(:qiangwu_cancel))
  316.     @wu_window.set_handler(:ok,     method(:qiangwu_ok))
  317.   end
  318.   #--------------------------------------------------------------------------
  319.   # ● 生成防具强化窗口
  320.   #--------------------------------------------------------------------------
  321.   def create_fang_window
  322.     @fang_window = Window_Qiangfang.new(@qianghelp_window,@qiangxz_window)
  323.     @fang_window.viewport = @viewport
  324.     @fang_window.y += @help_window.height
  325.     @fang_window.hide
  326.     @fang_window.help_window= @help_window
  327.     @fang_window.set_handler(:cancel, method(:qiangfang_cancel))
  328.     @fang_window.set_handler(:ok,     method(:qiangfang_ok))
  329.   end
  330.   #--------------------------------------------------------------------------
  331.   # ● 计算窗口显示指定行数时的应用高度
  332.   #--------------------------------------------------------------------------
  333.   def fitting_height(line_number)
  334.     line_number * 24 + 12 * 2
  335.   end
  336.   #--------------------------------------------------------------------------
  337.   # ● 显示强化武器
  338.   #--------------------------------------------------------------------------
  339.   def qiangwu
  340.     @command_window.hide
  341.     @help_window.show
  342.     @wu_window.show
  343.     @wu_window.start
  344.     @qianghelp_window.show
  345.     @wu_window.activate
  346.     $wufang = true
  347.     @command_window.deactivate
  348.   end
  349.   #--------------------------------------------------------------------------
  350.   # ● 显示强化防具
  351.   #--------------------------------------------------------------------------
  352.   def qiangfang
  353.     @command_window.hide
  354.     @help_window.show
  355.     @fang_window.show
  356.     @fang_window.start
  357.     @qianghelp_window.show
  358.     @fang_window.activate
  359.     $wufang = false
  360.     @command_window.deactivate
  361.   end
  362.   #--------------------------------------------------------------------------
  363.   # ● 取消强化武器
  364.   #--------------------------------------------------------------------------
  365.   def qiangwu_cancel
  366.     @command_window.show
  367.     @help_window.hide
  368.     @wu_window.hide
  369.     @qianghelp_window.hide
  370.     @command_window.activate
  371.     @qianghelp_window.set_text("")
  372.     @help_window.set_text("")
  373.   end
  374.   #--------------------------------------------------------------------------
  375.   # ● 取消强化防具
  376.   #--------------------------------------------------------------------------
  377.   def qiangfang_cancel
  378.     @command_window.show
  379.     @help_window.hide
  380.     @fang_window.hide
  381.     @qianghelp_window.hide
  382.     @command_window.activate
  383.     @qianghelp_window.set_text("")
  384.     @help_window.set_text("")
  385.   end
  386.   #--------------------------------------------------------------------------
  387.   # ● 确定强化武器
  388.   #--------------------------------------------------------------------------
  389.   def qiangwu_ok
  390.     @help_window.hide
  391.     @wu_window.qiangwu_ok
  392.     @qiangxz_window.show
  393.     @qiangxz_window.activate
  394.   end
  395.   #--------------------------------------------------------------------------
  396.   # ● 确定强化防具
  397.   #--------------------------------------------------------------------------
  398.   def qiangfang_ok
  399.     @help_window.hide
  400.     @fang_window.qiangfang_ok
  401.     @qiangxz_window.show
  402.     @qiangxz_window.activate
  403.   end
  404.   #--------------------------------------------------------------------------
  405.   # ● 获取卖出价格
  406.   #--------------------------------------------------------------------------
  407.   def selling_price
  408.     @item.price / 2
  409.   end
  410.   
  411.   def qiangxz_gem
  412.     @choosegem_window.start
  413.     @qiangxz_window.deactivate
  414.     @choosegem_window.qiangxz= @qiangxz_window
  415.     if $wufang == true
  416.       @choosegem_window.wufangwindow= @wu_window
  417.     else
  418.       @choosegem_window.wufangwindow= @fang_window
  419.     end
  420.   end
  421.   
  422.   def qiangxz_fangb
  423.     $fangb = !$fangb
  424.     if $wufang == true
  425.       @wu_window.update_help
  426.     else
  427.       @fang_window.update_help
  428.     end
  429.     @qiangxz_window.activate
  430.   end
  431.   
  432.   def qiangxz_fangj
  433.     $fangj = !$fangj
  434.     if $wufang == true
  435.       @wu_window.update_help
  436.     else
  437.       @fang_window.update_help
  438.     end
  439.     @qiangxz_window.activate
  440.   end
  441.   
  442.   def qiangxz_ok
  443.     if $wufang == true
  444.       Equipplus.upweapon(@wu_window.itemid)
  445.       qianging
  446.       @qianghelp_window.set_text($message)
  447.       @qiangxz_window.hide
  448.       Graphics.wait(60)
  449.       @wu_window.activate
  450.       @qiangxz_window.deactivate
  451.       @help_window.hide
  452.       $当前使用宝石加成率 = 0
  453.       $usegem = false
  454.       @fang_window.update_help
  455.       @wu_window.refresh
  456.       @command_window.deactivate
  457.     else
  458.       Equipplus.uparmor(@fang_window.itemid)
  459.       qianging
  460.       @qianghelp_window.set_text($message)
  461.       @qiangxz_window.hide
  462.       Graphics.wait(60)
  463.       @fang_window.activate
  464.       @qiangxz_window.deactivate
  465.       @help_window.hide
  466.       $当前使用宝石加成率 = 0
  467.       $usegem = false
  468.       @fang_window.update_help
  469.       @fang_window.refresh
  470.       @command_window.deactivate
  471.     end
  472.   end
  473.   
  474.   def qiangxz_cancel
  475.     @help_window.refresh
  476.                 @help_window.show
  477.     @wu_window.show
  478.     @qiangxz_window.hide
  479.     @qiangxz_window.deactivate
  480.     if $wufang == true
  481.       @wu_window.activate
  482.     else
  483.       @fang_window.activate
  484.     end
  485.     $当前使用宝石加成率 = 0
  486.     $usegem = false
  487.     @command_window.deactivate
  488.   end
  489.   
  490.   def qianging
  491.     i = 0
  492.     while i < 20
  493.       i += 1
  494.       text = "\n"
  495.       text += "★" * i + "☆" * (20 - i)
  496.       text = text + "\n强化中,请等待。"
  497.       @qianghelp_window.set_text(text)
  498.       Graphics.wait(6)
  499.     end
  500.   end
  501. end

  502. class RPG::EquipItem < RPG::BaseItem
  503.   alias old initialize
  504.   def initialize
  505.     old
  506.     @up = 0 #装备强化次数
  507.   end
  508.   attr_accessor :up
  509. end
  510. #==============================================================================
  511. # ■ Window_Qiangwu
  512. #------------------------------------------------------------------------------
  513. #  强化系统_武器强化窗口
  514. #==============================================================================

  515. class Window_Qiangwu < Window_ItemList
  516.   #--------------------------------------------------------------------------
  517.   # ● 初始化对象
  518.   #--------------------------------------------------------------------------
  519.   def initialize(qianghelp,xuanze)
  520.     super(0, 0, Graphics.width, fitting_height(8))
  521.     self.openness = 0
  522.     deactivate
  523.     @qianghelp = qianghelp
  524.     @xuanze = xuanze
  525.   end
  526.   #--------------------------------------------------------------------------
  527.   # ● 开始输入的处理
  528.   #--------------------------------------------------------------------------
  529.   def start
  530.     self.category = :weapon
  531.     refresh
  532.     select(0)
  533.     open
  534.     activate
  535.   end
  536.   #--------------------------------------------------------------------------
  537.   # ● 查询此物品是否可用
  538.   #--------------------------------------------------------------------------
  539.   def enable?(item)
  540.     return false unless item != nil
  541.     Equipplus.weaponupable?(item.id)
  542.   end
  543.   #--------------------------------------------------------------------------
  544.   # ● 确定强化武器
  545.   #--------------------------------------------------------------------------
  546.   def qiangwu_ok
  547.     result = item ? item.id : 0
  548.   end
  549.   #--------------------------------------------------------------------------
  550.   # ● 更新帮助内容
  551.   #--------------------------------------------------------------------------
  552.   def update_help
  553.     return unless item != nil
  554.     @help_window.set_item(item)
  555.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil
  556.     needmoney = 0
  557.     Equipplus.weaponupable?(item.id)
  558.     qitemname = Equipplus.lostitem.name
  559.     if item.up >= $强化哈希表["最高等级"]
  560.       qitemname = "无法继续升级"
  561.     end
  562.     temp = []
  563.     $usegem == true ? temp.push("使用") : temp.push("未使用")
  564.     temp.push($data_items[$强化哈希表["特殊物品"][0]].name)
  565.     $fangb == true ? temp.push("使用") : temp.push("未使用")
  566.     temp.push($data_items[$强化哈希表["特殊物品"][1]].name)
  567.     $fangj == true ? temp.push("使用") : temp.push("未使用")
  568.     cgl = ($强化哈希表["每级概率"][item.up] + $当前使用宝石加成率).to_s
  569.     if item.up == 0
  570.       min = item.params[2] + 1
  571.       max = min + 5
  572.     else
  573.       if item.up >= $强化哈希表["最高等级"]
  574.         min = item.params[2].to_int
  575.         max = min
  576.       else
  577.     min = (item.params[2] * (1 + $强化哈希表["提升能力"][item.up] / 100)).to_int + item.up
  578.     max = min + item.up * 5
  579.     end
  580.   end
  581.     text = "装备名称:" + item.name + "\n强化所需" + Vocab::currency_unit + ":" + Equipplus.needmoney.to_s
  582.     text += "\n当前强化等级:" + item.up.to_s + "\n强化需要:" +  qitemname
  583.     text += "\n强化宝石:" + temp [0] + " " + temp[1] + ":" + temp[2]+ " " + temp[3] + ":" + temp[4]
  584.     text += "\n成功率:" + cgl + "% " + "\n强化后攻击力范围:" + min.to_s + "~" + max.to_s
  585.     @qianghelp.set_text(text)
  586.   end
  587.   #--------------------------------------------------------------------------
  588.   # ● 获取当前武器等级
  589.   #--------------------------------------------------------------------------
  590.   def getweaponup
  591.     Equipplus.weaponupisnil(item.id)
  592.     item.up
  593.   end
  594.   
  595.   def itemid
  596.     item.id
  597.   end
  598.   #--------------------------------------------------------------------------
  599.   # ● 选择项目
  600.   #--------------------------------------------------------------------------
  601.   def select(index)
  602.     self.index = index if index
  603.     update_help
  604.   end
  605. end
  606. #==============================================================================
  607. # ■ Window_Qiangfang
  608. #------------------------------------------------------------------------------
  609. #  强化系统_防具强化窗口
  610. #==============================================================================

  611. class Window_Qiangfang < Window_ItemList
  612.   #--------------------------------------------------------------------------
  613.   # ● 初始化对象
  614.   #--------------------------------------------------------------------------
  615.   def initialize(qianghelp,xuanze)
  616.     super(0, 0, Graphics.width, fitting_height(8))
  617.     self.openness = 0
  618.     deactivate
  619.     @qianghelp = qianghelp
  620.     @xuanze = xuanze
  621.   end
  622.   #--------------------------------------------------------------------------
  623.   # ● 开始输入的处理
  624.   #--------------------------------------------------------------------------
  625.   def start
  626.     self.category = :armor
  627.     refresh
  628.     select(0)
  629.     open
  630.     activate
  631.   end
  632.   #--------------------------------------------------------------------------
  633.   # ● 查询此物品是否可用
  634.   #--------------------------------------------------------------------------
  635.   def enable?(item)
  636.     return false unless item != nil
  637.     Equipplus.armorupable?(item.id)
  638.   end
  639.   #--------------------------------------------------------------------------
  640.   # ● 确定强化防具
  641.   #--------------------------------------------------------------------------
  642.   def qiangfang_ok
  643.     result = item ? item.id : 0
  644.   end
  645.   #--------------------------------------------------------------------------
  646.   # ● 更新帮助内容
  647.   #--------------------------------------------------------------------------
  648.   def update_help
  649.     return unless item != nil
  650.     @help_window.set_item(item)
  651.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil
  652.     needmoney = 0
  653.     Equipplus.armorupable?(item.id)
  654.     qitemname = Equipplus.lostitem.name
  655.     if item.up >= $强化哈希表["最高等级"]
  656.       qitemname = "无法继续升级"
  657.     end
  658.     temp = []
  659.     $usegem == true ? temp.push("使用") : temp.push("未使用")
  660.     temp.push($data_items[$强化哈希表["特殊物品"][0]].name)
  661.     $fangb == true ? temp.push("使用") : temp.push("未使用")
  662.     temp.push($data_items[$强化哈希表["特殊物品"][1]].name)
  663.     $fangj == true ? temp.push("使用") : temp.push("未使用")
  664.     cgl = ($强化哈希表["每级概率"][item.up] + $当前使用宝石加成率).to_s
  665.     if item.up == 0
  666.       min = item.params[3] + 1
  667.       max = min + 5
  668.     else
  669.       if item.up >= $强化哈希表["最高等级"]
  670.         min = item.params[3].to_int
  671.         max = min
  672.       else
  673.     min = (item.params[3] * (1 + $强化哈希表["提升能力"][item.up] / 100)).to_int + item.up
  674.     max = min + item.up * 5
  675.     end
  676.   end
  677.     text = "装备名称:" + item.name + "\n强化所需" + Vocab::currency_unit + ":" + Equipplus.needmoney.to_s
  678.     text += "\n当前强化等级:" + item.up.to_s + "\n强化需要:" +  qitemname
  679.     text += "\n强化宝石:" + temp [0] + " " + temp[1] + ":" + temp[2]+ " " + temp[3] + ":" + temp[4]
  680.     text += "\n成功率:" + cgl + "% " + "\n强化后防御力范围:" + min.to_s + "~" + max.to_s
  681.     @qianghelp.set_text(text)
  682.   end
  683.   #--------------------------------------------------------------------------
  684.   # ● 获取当前防具等级
  685.   #--------------------------------------------------------------------------
  686.   def getarmorup
  687.     Equipplus.armorupisnil(item.id)
  688.     item.up
  689.   end
  690.   
  691.   def itemid
  692.     item.id
  693.   end
  694.   #--------------------------------------------------------------------------
  695.   # ● 选择项目
  696.   #--------------------------------------------------------------------------
  697.   def select(index)
  698.     self.index = index if index
  699.     update_help
  700.   end
  701. end
  702. #==============================================================================
  703. # ■ Window_QiangCommand
  704. #------------------------------------------------------------------------------
  705. #  强化系统中,处理命令选择的窗口。
  706. #==============================================================================

  707. class Window_QiangCommand < Window_Command
  708.   #--------------------------------------------------------------------------
  709.   # ● 初始化对象
  710.   #--------------------------------------------------------------------------
  711.   def initialize
  712.     super(0, 0)
  713.     update_placement
  714.     self.openness = 0
  715.     open
  716.   end
  717.   #--------------------------------------------------------------------------
  718.   # ● 获取窗口的宽度
  719.   #--------------------------------------------------------------------------
  720.   def window_width
  721.     return 160
  722.   end
  723.   #--------------------------------------------------------------------------
  724.   # ● 更新窗口的位置
  725.   #--------------------------------------------------------------------------
  726.   def update_placement
  727.     self.x = (Graphics.width - width) / 2
  728.     self.y = (Graphics.height - height) / 2
  729.   end
  730.   #--------------------------------------------------------------------------
  731.   # ● 生成指令列表
  732.   #--------------------------------------------------------------------------
  733.   def make_command_list
  734.     add_command("强化武器",    :qiangwu)
  735.     add_command("强化防具",    :qiangfang)
  736.     add_command(Vocab::ShopCancel, :cancel)
  737.   end
  738. end
  739. #==============================================================================
  740. # ■ Window_Qianghelp
  741. #------------------------------------------------------------------------------
  742. #  显示说明
  743. #==============================================================================

  744. class Window_Qianghelp < Window_Base
  745.   #--------------------------------------------------------------------------
  746.   # ● 初始化对象
  747.   #--------------------------------------------------------------------------
  748.   def initialize
  749.     super(0, 0, window_width, fitting_height(7) + 8)
  750.     refresh
  751.   end
  752.   #--------------------------------------------------------------------------
  753.   # ● 获取窗口的宽度
  754.   #--------------------------------------------------------------------------
  755.   def window_width
  756.     return 544
  757.   end
  758.   #--------------------------------------------------------------------------
  759.   # ● 获取持有金钱
  760.   #--------------------------------------------------------------------------
  761.   def value
  762.     $game_party.gold
  763.   end
  764.   #--------------------------------------------------------------------------
  765.   # ● 获取货币单位
  766.   #--------------------------------------------------------------------------
  767.   def currency_unit
  768.     Vocab::currency_unit
  769.   end
  770.   #--------------------------------------------------------------------------
  771.   # ● 设置内容
  772.   #--------------------------------------------------------------------------
  773.   def set_text(text)
  774.     if text != @text
  775.       @text = text
  776.       refresh
  777.     end
  778.   end
  779.   #--------------------------------------------------------------------------
  780.   # ● 清除
  781.   #--------------------------------------------------------------------------
  782.   def clear
  783.     set_text("")
  784.   end
  785.   #--------------------------------------------------------------------------
  786.   # ● 刷新
  787.   #--------------------------------------------------------------------------
  788.   def refresh
  789.     contents.clear
  790.     draw_text_ex(4, 0, @text)
  791.   end
  792. end
  793. #==============================================================================
  794. # ■ Window_Qiangxz
  795. #------------------------------------------------------------------------------
  796. #  强化系统中,选择强化方式的窗口。
  797. #==============================================================================

  798. class Window_Qiangxz < Window_Command
  799.   @havegem = false
  800.   @havefangb = false
  801.   @havefangj = false
  802.   #--------------------------------------------------------------------------
  803.   # ● 初始化对象
  804.   #--------------------------------------------------------------------------
  805.   def initialize
  806.     super(0, 0)
  807.     index = 0
  808.     update_placement
  809.     self.openness = 0
  810.     open
  811.   end
  812.   #--------------------------------------------------------------------------
  813.   # ● 获取窗口的宽度
  814.   #--------------------------------------------------------------------------
  815.   def window_width
  816.     return 180
  817.   end
  818.   #--------------------------------------------------------------------------
  819.   # ● 更新窗口的位置
  820.   #--------------------------------------------------------------------------
  821.   def update_placement
  822.     self.x = (Graphics.width - width) / 2
  823.     self.y = (Graphics.height - height) / 2
  824.   end
  825.   #--------------------------------------------------------------------------
  826.   # ● 检查可用
  827.   #--------------------------------------------------------------------------
  828.   def haveitem
  829.     @havegem = false
  830.     @havefangb = false
  831.     @havefangj = false
  832.     for i in $强化哈希表["宝石效果"]
  833.         if $game_party.has_item?($data_items[i[1]])
  834.         @havegem = true
  835.       end
  836.     end
  837.     @havefangb = $game_party.has_item?($data_items[$强化哈希表["特殊物品"][0]])
  838.     @havefangj = $game_party.has_item?($data_items[$强化哈希表["特殊物品"][1]])
  839.   end
  840.   #--------------------------------------------------------------------------
  841.   # ● 生成指令列表
  842.   #--------------------------------------------------------------------------
  843.   def make_command_list
  844.     haveitem
  845.     add_command("宝石",     :gem, @havegem)
  846.     add_command(Equipplus.idgetitem($强化哈希表["特殊物品"][0]).name, :fangb, @havefangb)
  847.     add_command(Equipplus.idgetitem($强化哈希表["特殊物品"][1]).name, :fangj, @havefangj)
  848.     add_command("开始强化", :start)
  849.     add_command("取消强化", :cancel)
  850.   end
  851. end
  852. class Window_ItemList
  853.   #--------------------------------------------------------------------------
  854.   # ● 查询列表中是否含有此物品
  855.   #--------------------------------------------------------------------------
  856.   def include?(item)
  857.     case @category
  858.     when :item
  859.       item.is_a?(RPG::Item) && !item.key_item?
  860.     when :weapon
  861.       item.is_a?(RPG::Weapon)
  862.     when :armor
  863.       item.is_a?(RPG::Armor)
  864.     when :key_item
  865.       item.is_a?(RPG::Item) && item.key_item?
  866.     when :gem
  867.       itemid = item ? item.id : 0
  868.       itemid != 0 ? isgem(itemid) : false
  869.     else
  870.       false
  871.     end
  872.   end
  873.   
  874.   def isgem(itemid)
  875.     for i in $强化哈希表["宝石效果"]
  876.       return true if i[1] == itemid
  877.     end
  878.     false
  879.   end
  880. end
  881. #==============================================================================
  882. # ■ Window_Choosegem
  883. #------------------------------------------------------------------------------
  884. #  选择强化使用的宝石
  885. #==============================================================================

  886. class Window_Choosegem < Window_ItemList
  887.   #--------------------------------------------------------------------------
  888.   # ● 初始化对象
  889.   #--------------------------------------------------------------------------
  890.   def initialize()
  891.     super(0, 0, Graphics.width, fitting_height(2))
  892.     self.openness = 0
  893.     deactivate
  894.     @wufangwindow = nil
  895.     @qiangxz = nil
  896.     set_handler(:ok,     method(:on_ok))
  897.     set_handler(:cancel, method(:on_cancel))
  898.   end
  899.   
  900.   def wufangwindow=(wufangwindow)
  901.     @wufangwindow = wufangwindow
  902.   end
  903.   def qiangxz=(qiangxz)
  904.     @qiangxz = qiangxz
  905.   end
  906.   #--------------------------------------------------------------------------
  907.   # ● 开始输入的处理
  908.   #--------------------------------------------------------------------------
  909.   def start
  910.     self.category = :gem
  911.     self.y = (Graphics.height - height) / 2
  912.     refresh
  913.     select(0)
  914.     open
  915.     activate
  916.   end
  917.   #--------------------------------------------------------------------------
  918.   # ● 确定时的处理
  919.   #--------------------------------------------------------------------------
  920.   def on_ok
  921.     result = item ? item.id : 0
  922.     if result != 0
  923.      $usegem = true
  924.      $当前使用宝石id = result
  925.      for i in $强化哈希表["宝石效果"]
  926.        $当前使用宝石加成率 = i[0] if i[1] == $当前使用宝石id
  927.      end
  928.    else
  929.      $当前使用宝石加成率 = 0
  930.      $usegem = false
  931.     end
  932.     @wufangwindow.update_help
  933.     @qiangxz.activate
  934.     close
  935.   end
  936.   #--------------------------------------------------------------------------
  937.   # ● 查询此物品是否可用
  938.   #--------------------------------------------------------------------------
  939.   def enable?(item)
  940.     true
  941.   end
  942.   #--------------------------------------------------------------------------
  943.   # ● 取消时的处理
  944.   #--------------------------------------------------------------------------
  945.   def on_cancel
  946.     $当前使用宝石加成率 = 0
  947.     $usegem = false
  948.     @wufangwindow.update_help
  949.     @qiangxz.activate
  950.     close
  951.   end
  952. end
  953. #==============================================================================
  954. # ■ 强化系统DataManager
  955. #------------------------------------------------------------------------------
  956. #  将武器和防具数据保存入存档
  957. #==============================================================================
  958. module DataManager
  959.   #--------------------------------------------------------------------------
  960.   # ● 生成存档内容
  961.   #--------------------------------------------------------------------------
  962.   def self.make_save_contents
  963.     contents = {}
  964.     contents[:system]        = $game_system
  965.     contents[:timer]         = $game_timer
  966.     contents[:message]       = $game_message
  967.     contents[:switches]      = $game_switches
  968.     contents[:variables]     = $game_variables
  969.     contents[:self_switches] = $game_self_switches
  970.     contents[:actors]        = $game_actors
  971.     contents[:party]         = $game_party
  972.     contents[:troop]         = $game_troop
  973.     contents[:map]           = $game_map
  974.     contents[:player]        = $game_player
  975.     contents[:weapons]       = $data_weapons
  976.     contents[:armors]        = $data_armors
  977.     contents
  978.   end
  979.   #--------------------------------------------------------------------------
  980.   # ● 展开存档内容
  981.   #--------------------------------------------------------------------------
  982.   def self.extract_save_contents(contents)
  983.     $game_system        = contents[:system]
  984.     $game_timer         = contents[:timer]
  985.     $game_message       = contents[:message]
  986.     $game_switches      = contents[:switches]
  987.     $game_variables     = contents[:variables]
  988.     $game_self_switches = contents[:self_switches]
  989.     $game_actors        = contents[:actors]
  990.     $game_party         = contents[:party]
  991.     $game_troop         = contents[:troop]
  992.     $game_map           = contents[:map]
  993.     $game_player        = contents[:player]
  994.     $data_weapons       = contents[:weapons]
  995.     $data_armors        = contents[:armors]
  996.   end
  997. end
复制代码
请问,怎么让武器强化时的攻击力变成魔法攻击力?谢谢指点

点评

复制脚本使用报错,给个可以使用的简易工程嘛...  发表于 2015-6-30 16:57

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2015-6-30
帖子
11
2
 楼主| 发表于 2015-6-30 17:13:48 | 只看该作者
装备系统增强.rar (1.44 MB, 下载次数: 56)
这里面的强化武器,武器强化等级提升,增加的是攻击力,法杖强化也是攻击力,要怎么才能让法杖强化变成魔法攻击力呢?
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

聪仔

梦石
0
星屑
6187
在线时间
3077 小时
注册时间
2013-12-26
帖子
3145
3
发表于 2015-6-30 17:41:16 | 只看该作者
本帖最后由 正太君 于 2015-6-30 17:44 编辑

改好了...
凡是修改了的地方都有
# 聪聪增加...
的字样,可以通过查找功能找到修改过的地方...


RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ 装备强化系统 By wyongcan
  4. #==============================================================================
  5. module Equipplus
  6. #升到各级时装备颜色请在“颜色描绘”脚本中修改
  7. $maxlv = 12  #最高升到的级数
  8. $gailv = [100,80,70,60,50,30,20,10,5,5,5,5,1] #每级提升概率
  9. $gemlv = [[60,23],[10,28],[25,29],[40,30]] #使用宝石提高的几率  [提高几率,宝石ID]
  10. $uplv = [[12,24],[3,25],[6,26],[9,27]] #强化所需要的强化石 [最大强化到的等级,强化石ID]
  11. $xxlv = [0,0,5,10,15,20,25,30,30,40,40,45,60] #每级强化后失败物品消失的几率
  12. $jjlv = [0,10,15,20,30,45,55,65,70,70,75,80,100] #每级强化后失败物品降级的几率
  13. $tsnl = [10,14,18,22,26,30,34,38,42,46,50,54,65] #每级强化提升能力的百分比
  14. $tswp = [31,32] # 意思是:如果有31号物品则失败后物品不消失,如果有32号物品则失败后物品不降级
  15. #武器强化后的计算公式为: 原攻击 * (1 + 提升能力百分比) + (0到当前强化级数随机) * 5 + 当前强化级数
  16. $gemlv.sort!
  17. $uplv.sort!
  18. $当前使用宝石id = 0
  19. $当前使用宝石加成率 = 0
  20. $强化哈希表 = {
  21. "最高等级" => $maxlv ,
  22. "每级概率" => $gailv ,
  23. "宝石效果" => $gemlv ,
  24. "消失几率" => $xxlv  ,
  25. "降级几率" => $jjlv  ,
  26. "提升能力" => $tsnl  ,
  27. "特殊物品" => $tswp  ,
  28. "强化材料" => $uplv  }
  29. def self.idlostitem(id,amount = 1)
  30.   $game_party.lose_item(idgetitem(id),amount)
  31. end
  32.  
  33. def self.idlostequip(id,weapon = true,amount = 1)
  34.   weapon == true ? $game_party.lose_item($data_weapons[id],amount,true) : $game_party.lose_item($data_armors[id],amount,true)
  35. end
  36.  
  37. def self.idgainequip(id,weapon = true,amount = 1)
  38.   weapon == true ? $game_party.gain_item($data_weapons[id],amount,true) : $game_party.gain_item($data_armors[id],amount,true)
  39. end
  40.  
  41. def self.idgetitem(id)
  42.   $data_items[id]
  43. end
  44.  
  45. def self.equipable?(id,weapon = true)
  46.   weapon == true ? weaponupisnil(id) : armorupisnil(id)
  47.   weapon == true ? equip = $data_weapons[id].dup : equip = $data_armors[id].dup
  48.   price = equip.price
  49.   @needmoney = price * equip.up
  50.   if @needmoney == 0
  51.     @needmoney = price / 2
  52.   end
  53. #循环取出需要的强化材料
  54.   temp = false
  55.   for i in $强化哈希表["强化材料"]
  56.     if equip.up < i[0]
  57.       @lostitem = idgetitem i[1]
  58.       $game_party.has_item?(idgetitem(i[1])) ? temp = true : temp = false
  59.       break
  60.     end
  61.   end
  62.   $game_party.gold >= @needmoney && temp == true ? true : false
  63. end
  64.  
  65. def self.upweapon (id)
  66.   $message = ""
  67.   success = false
  68.   weaponupisnil(id)
  69.   weapon = $data_weapons[id].dup
  70.   gl = 0
  71.   fangb = false
  72.   fangj = false
  73.   return unless weapon.up < $强化哈希表["最高等级"] && weaponupable?(id)
  74.   loststh
  75.   $message += "本次强化,共消耗:" + Vocab::currency_unit + " " + @needmoney.to_s
  76.   $message += " " + @lostitem.name + "\n "
  77.   gl = $强化哈希表["每级概率"][weapon.up]
  78.   if $usegem == true
  79.     gl += $当前使用宝石加成率
  80.     idlostitem($当前使用宝石id)
  81.     $message += idgetitem($当前使用宝石id).name + " "
  82.   end
  83.   if $fangb == true
  84.     fangb = true
  85.     idlostitem $强化哈希表["特殊物品"][0]
  86.     $message += idgetitem($强化哈希表["特殊物品"][0]).name + " "
  87.   end
  88.   if $fangj == true
  89.     fangj = true
  90.     idlostitem $强化哈希表["特殊物品"][1]
  91.     $message += idgetitem($强化哈希表["特殊物品"][1]).name + " "
  92.   end
  93.   suiji = rand (100)
  94.   if suiji <= gl
  95.     success = true
  96.   end
  97.   $message += "\n强化结果:"
  98.   if success == true
  99.     $message += "强化成功"
  100.     idlostequip id
  101.     weapon.id = $data_weapons.size
  102.     params = weapon.params.dup
  103.     if params[2] > 0
  104.       params[2] *= 1 + $强化哈希表["提升能力"][weapon.up] / 100
  105.       params[2] += rand(weapon.up) * 5 + weapon.up
  106.       params[2] += 1 if params[2] == weapon.params[2]
  107.       $message += " 攻击力提升:" + (params[2] - weapon.params[2]).to_int.to_s
  108.     end
  109.     if params[4] > 0  # 聪聪增加...
  110.       params[4] *= 1 + $强化哈希表["提升能力"][weapon.up] / 100
  111.       params[4] += rand(weapon.up) * 5 + weapon.up
  112.       params[4] += 1 if params[2] == weapon.params[2]
  113.       $message += " 魔法力提升:" + (params[2] - weapon.params[2]).to_int.to_s
  114.     end
  115.     weapon.up += 1
  116.     $data_weapons.insert $data_weapons.size,weapon
  117.     $data_weapons[$data_weapons.size-1].params = params
  118.     idgainequip weapon.id
  119.   else
  120.     $message += "强化失败"
  121.     suiji = rand (100)
  122.     if suiji <= $强化哈希表["消失几率"][weapon.up]
  123.       if fangb != true
  124.       $message += ",道具消失"
  125.       idlostequip id
  126.       else
  127.       $message += ",由于" + idgetitem($强化哈希表["特殊物品"][0]).name + "的作用,道具未消失"
  128.       end
  129.     else
  130.       suiji = rand (100)
  131.       if suiji <= $强化哈希表["降级几率"][weapon.up]
  132.         if fangj == false && weapon.up != 0
  133.           $message += ",道具降级"
  134.           params = weapon.params.dup
  135.           params[2] -= weapon.up + rand(weapon.up) * 5
  136.           params[2] /= 1 + $强化哈希表["提升能力"][weapon.up] / 100
  137.           weapon.params = params
  138.           weapon.up -= 1
  139.           $data_weapons[id] = weapon
  140.         else
  141.           $message += ",由于" + idgetitem($强化哈希表["特殊物品"][1]).name + "的作用,道具未降级"
  142.         end
  143.       end
  144.     end
  145.   end
  146.    $usegem = false
  147.    $fangb = false
  148.    $fangj = false
  149. end
  150.  
  151. def self.weaponupisnil(id)
  152.    $data_weapons[id].up = 0 unless $data_weapons[id].up != nil
  153. end
  154.  
  155. def self.weaponupable?(id)
  156.   equipable?(id)
  157. end
  158.  
  159. def self.uparmor (id)
  160.   $message = ""
  161.   success = false
  162.   armorupisnil(id)
  163.   armor = $data_armors[id].dup
  164.   gl = 0
  165.   fangb = false
  166.   fangj = false
  167.   return unless armor.up < $强化哈希表["最高等级"] && armorupable?(id)
  168.   loststh
  169.   $message += "本次强化,共消耗:" + Vocab::currency_unit + " " + @needmoney.to_s
  170.   $message += " " + @lostitem.name + "\n "
  171.   gl = $强化哈希表["每级概率"][armor.up]
  172.   if $usegem == true
  173.     gl += $当前使用宝石加成率
  174.     idlostitem($当前使用宝石id)
  175.     $message += idgetitem($当前使用宝石id).name + " "
  176.   end
  177.   if $fangb == true
  178.     fangb = true
  179.     idlostitem $强化哈希表["特殊物品"][0]
  180.     $message += idgetitem($强化哈希表["特殊物品"][0]).name + " "
  181.   end
  182.   if $fangj == true
  183.     fangj = true
  184.     idlostitem $强化哈希表["特殊物品"][1]
  185.     $message += idgetitem($强化哈希表["特殊物品"][1]).name + " "
  186.   end
  187.   suiji = rand (100)
  188.   if suiji <= gl
  189.     success = true
  190.   end
  191.   $message += "\n强化结果:"
  192.   if success == true
  193.     $message += "强化成功"
  194.     idlostequip id,false
  195.     armor.id = $data_armors.size
  196.     params = armor.params.dup
  197.     params[3] *= 1 + $强化哈希表["提升能力"][armor.up] / 100
  198.     params[3] += rand(armor.up) * 5 + armor.up
  199.     params[3] += 1 if params[3] == armor.params[3]
  200.     $message += " 防御力提升:" + (params[3] - armor.params[3]).to_int.to_s
  201.     armor.up += 1
  202.     $data_armors.insert $data_armors.size,armor
  203.     $data_armors[$data_armors.size-1].params = params
  204.     idgainequip armor.id,false
  205.   else
  206.     $message += "强化失败"
  207.     suiji = rand (100)
  208.     if suiji <= $强化哈希表["消失几率"][armor.up]
  209.       if fangb != true
  210.       $message += ",道具消失"
  211.       idlostequip id,false
  212.       else
  213.       $message += ",由于" + idgetitem($强化哈希表["特殊物品"][0]).name + "的作用,道具未消失"
  214.       end
  215.     else
  216.       suiji = rand (100)
  217.       if suiji <= $强化哈希表["降级几率"][armor.up]
  218.         if fangj == false && armor.up != 0
  219.           $message += ",道具降级"
  220.           params = armor.params.dup
  221.           params[3] -= armor.up + rand(armor.up) * 5
  222.           params[3] /= 1 + $强化哈希表["提升能力"][armor.up] / 100
  223.           armor.params = params
  224.           armor.up -= 1
  225.           $data_armors[id] = armor
  226.         else
  227.           $message += ",由于" + idgetitem($强化哈希表["特殊物品"][1]).name + "的作用,道具未降级"
  228.         end
  229.       end
  230.     end
  231.   end
  232.    $usegem = false
  233.    $fangb = false
  234.    $fangj = false
  235. end
  236.  
  237. def self.armorupisnil(id)
  238.    $data_armors[id].up = 0 unless $data_armors[id].up != nil
  239. end
  240. def self.armorupable?(id)
  241.   equipable?(id,false)
  242. end
  243. def self.loststh()
  244.    $game_party.lose_item(@lostitem,1)
  245.    $game_party.lose_gold(@needmoney)
  246. end
  247. def self.needmoney
  248.    @needmoney
  249. end
  250. def self.lostitem
  251.    @lostitem
  252. end
  253. end
  254. #==============================================================================
  255. # ■ Scene_Qiang
  256. #------------------------------------------------------------------------------
  257. #  强化画面
  258. #==============================================================================
  259.  
  260. class Scene_Qiang < Scene_MenuBase
  261.   $wufang = true
  262.   $usegem = false
  263.   $fangb = false
  264.   $fangj = false
  265.   #--------------------------------------------------------------------------
  266.   # ● 开始处理
  267.   #--------------------------------------------------------------------------
  268.   def start
  269.     super
  270.     create_help_window
  271.     @help_window.hide
  272.     create_qianghelp_window
  273.     create_command_window
  274.     create_qiangxz_window
  275.     create_wu_window
  276.     create_fang_window
  277.     create_choosegem_window
  278.   end
  279.   #--------------------------------------------------------------------------
  280.   # ● 生成说明窗口
  281.   #--------------------------------------------------------------------------
  282.   def create_qianghelp_window
  283.     @qianghelp_window = Window_Qianghelp.new
  284.     @qianghelp_window.y = Graphics.height - @qianghelp_window.height
  285.     @qianghelp_window.viewport = @viewport
  286.     @qianghelp_window.hide
  287.   end
  288.   #--------------------------------------------------------------------------
  289.   # ● 生成选择宝石
  290.   #--------------------------------------------------------------------------
  291.   def create_choosegem_window
  292.     @choosegem_window = Window_Choosegem.new
  293.     @choosegem_window.y = Graphics.height - @choosegem_window.height
  294.     @choosegem_window.viewport = @viewport
  295.     @choosegem_window.z = 120
  296.   end
  297.   #--------------------------------------------------------------------------
  298.   # ● 生成选择窗口
  299.   #--------------------------------------------------------------------------
  300.   def create_qiangxz_window
  301.     @qiangxz_window = Window_Qiangxz.new
  302.     @qiangxz_window.y = @help_window.height + fitting_height(5) /2
  303.     @qiangxz_window.z = 110
  304.     @qiangxz_window.viewport = @viewport
  305.     @qiangxz_window.set_handler(:gem,    method(:qiangxz_gem))
  306.     @qiangxz_window.set_handler(:fangb,    method(:qiangxz_fangb))
  307.     @qiangxz_window.set_handler(:fangj,    method(:qiangxz_fangj))
  308.     @qiangxz_window.set_handler(:ok, method(:qiangxz_ok))
  309.     @qiangxz_window.set_handler(:cancel, method(:qiangxz_cancel))
  310.     @qiangxz_window.hide
  311.     @qiangxz_window.deactivate
  312.   end
  313.   #--------------------------------------------------------------------------
  314.   # ● 生成指令窗口
  315.   #--------------------------------------------------------------------------
  316.   def create_command_window
  317.     @command_window = Window_QiangCommand.new
  318.     @command_window.viewport = @viewport
  319.     @command_window.y = @help_window.height + fitting_height(3) /2
  320.     @command_window.set_handler(:qiangwu,    method(:qiangwu))
  321.     @command_window.set_handler(:qiangfang,   method(:qiangfang))
  322.     @command_window.set_handler(:cancel, method(:return_scene))
  323.   end
  324.   #--------------------------------------------------------------------------
  325.   # ● 生成武器强化窗口
  326.   #--------------------------------------------------------------------------
  327.   def create_wu_window
  328.     @wu_window = Window_Qiangwu.new(@qianghelp_window,@qiangxz_window)
  329.     @wu_window.viewport = @viewport
  330.     @wu_window.y += @help_window.height
  331.     @wu_window.hide
  332.     @wu_window.help_window= @help_window
  333.     @wu_window.set_handler(:cancel, method(:qiangwu_cancel))
  334.     @wu_window.set_handler(:ok,     method(:qiangwu_ok))
  335.   end
  336.   #--------------------------------------------------------------------------
  337.   # ● 生成防具强化窗口
  338.   #--------------------------------------------------------------------------
  339.   def create_fang_window
  340.     @fang_window = Window_Qiangfang.new(@qianghelp_window,@qiangxz_window)
  341.     @fang_window.viewport = @viewport
  342.     @fang_window.y += @help_window.height
  343.     @fang_window.hide
  344.     @fang_window.help_window= @help_window
  345.     @fang_window.set_handler(:cancel, method(:qiangfang_cancel))
  346.     @fang_window.set_handler(:ok,     method(:qiangfang_ok))
  347.   end
  348.   #--------------------------------------------------------------------------
  349.   # ● 计算窗口显示指定行数时的应用高度
  350.   #--------------------------------------------------------------------------
  351.   def fitting_height(line_number)
  352.     line_number * 24 + 12 * 2
  353.   end
  354.   #--------------------------------------------------------------------------
  355.   # ● 显示强化武器
  356.   #--------------------------------------------------------------------------
  357.   def qiangwu
  358.     @command_window.hide
  359.     @help_window.show
  360.     @wu_window.show
  361.     @wu_window.start
  362.     @qianghelp_window.show
  363.     @wu_window.activate
  364.     $wufang = true
  365.     @command_window.deactivate
  366.   end
  367.   #--------------------------------------------------------------------------
  368.   # ● 显示强化防具
  369.   #--------------------------------------------------------------------------
  370.   def qiangfang
  371.     @command_window.hide
  372.     @help_window.show
  373.     @fang_window.show
  374.     @fang_window.start
  375.     @qianghelp_window.show
  376.     @fang_window.activate
  377.     $wufang = false
  378.     @command_window.deactivate
  379.   end
  380.   #--------------------------------------------------------------------------
  381.   # ● 取消强化武器
  382.   #--------------------------------------------------------------------------
  383.   def qiangwu_cancel
  384.     @command_window.show
  385.     @help_window.hide
  386.     @wu_window.hide
  387.     @qianghelp_window.hide
  388.     @command_window.activate
  389.     @qianghelp_window.set_text("")
  390.     @help_window.set_text("")
  391.   end
  392.   #--------------------------------------------------------------------------
  393.   # ● 取消强化防具
  394.   #--------------------------------------------------------------------------
  395.   def qiangfang_cancel
  396.     @command_window.show
  397.     @help_window.hide
  398.     @fang_window.hide
  399.     @qianghelp_window.hide
  400.     @command_window.activate
  401.     @qianghelp_window.set_text("")
  402.     @help_window.set_text("")
  403.   end
  404.   #--------------------------------------------------------------------------
  405.   # ● 确定强化武器
  406.   #--------------------------------------------------------------------------
  407.   def qiangwu_ok
  408.     @help_window.hide
  409.     @wu_window.qiangwu_ok
  410.     @qiangxz_window.show
  411.     @qiangxz_window.activate
  412.   end
  413.   #--------------------------------------------------------------------------
  414.   # ● 确定强化防具
  415.   #--------------------------------------------------------------------------
  416.   def qiangfang_ok
  417.     @help_window.hide
  418.     @fang_window.qiangfang_ok
  419.     @qiangxz_window.show
  420.     @qiangxz_window.activate
  421.   end
  422.   #--------------------------------------------------------------------------
  423.   # ● 获取卖出价格
  424.   #--------------------------------------------------------------------------
  425.   def selling_price
  426.     @item.price / 2
  427.   end
  428.  
  429.   def qiangxz_gem
  430.     @choosegem_window.start
  431.     @qiangxz_window.deactivate
  432.     @choosegem_window.qiangxz= @qiangxz_window
  433.     if $wufang == true
  434.       @choosegem_window.wufangwindow= @wu_window
  435.     else
  436.       @choosegem_window.wufangwindow= @fang_window
  437.     end
  438.   end
  439.  
  440.   def qiangxz_fangb
  441.     $fangb = !$fangb
  442.     if $wufang == true
  443.       @wu_window.update_help
  444.     else
  445.       @fang_window.update_help
  446.     end
  447.     @qiangxz_window.activate
  448.   end
  449.  
  450.   def qiangxz_fangj
  451.     $fangj = !$fangj
  452.     if $wufang == true
  453.       @wu_window.update_help
  454.     else
  455.       @fang_window.update_help
  456.     end
  457.     @qiangxz_window.activate
  458.   end
  459.  
  460.   def qiangxz_ok
  461.     if $wufang == true
  462.       Equipplus.upweapon(@wu_window.itemid)
  463.       qianging
  464.       @qianghelp_window.set_text($message)
  465.       @qiangxz_window.hide
  466.       Graphics.wait(60)
  467.       @wu_window.activate
  468.       @qiangxz_window.deactivate
  469.       @help_window.hide
  470.       $当前使用宝石加成率 = 0
  471.       $usegem = false
  472.       @fang_window.update_help
  473.       @wu_window.refresh
  474.       @command_window.deactivate
  475.     else
  476.       Equipplus.uparmor(@fang_window.itemid)
  477.       qianging
  478.       @qianghelp_window.set_text($message)
  479.       @qiangxz_window.hide
  480.       Graphics.wait(60)
  481.       @fang_window.activate
  482.       @qiangxz_window.deactivate
  483.       @help_window.hide
  484.       $当前使用宝石加成率 = 0
  485.       $usegem = false
  486.       @fang_window.update_help
  487.       @fang_window.refresh
  488.       @command_window.deactivate
  489.     end
  490.   end
  491.  
  492.   def qiangxz_cancel
  493.     @help_window.refresh
  494.                 @help_window.show
  495.     @wu_window.show
  496.     @qiangxz_window.hide
  497.     @qiangxz_window.deactivate
  498.     if $wufang == true
  499.       @wu_window.activate
  500.     else
  501.       @fang_window.activate
  502.     end
  503.     $当前使用宝石加成率 = 0
  504.     $usegem = false
  505.     @command_window.deactivate
  506.   end
  507.  
  508.   def qianging
  509.     i = 0
  510.     while i < 20
  511.       i += 1
  512.       text = "\n"
  513.       text += "★" * i + "☆" * (20 - i)
  514.       text = text + "\n强化中,请等待。"
  515.       @qianghelp_window.set_text(text)
  516.       Graphics.wait(6)
  517.     end
  518.   end
  519. end
  520.  
  521. class RPG::EquipItem < RPG::BaseItem
  522.   alias old initialize
  523.   def initialize
  524.     old
  525.     @up = 0 #装备强化次数
  526.   end
  527.   attr_accessor :up
  528. end
  529. #==============================================================================
  530. # ■ Window_Qiangwu
  531. #------------------------------------------------------------------------------
  532. #  强化系统_武器强化窗口
  533. #==============================================================================
  534.  
  535. class Window_Qiangwu < Window_ItemList
  536.   #--------------------------------------------------------------------------
  537.   # ● 初始化对象
  538.   #--------------------------------------------------------------------------
  539.   def initialize(qianghelp,xuanze)
  540.     super(0, 0, Graphics.width, fitting_height(8))
  541.     self.openness = 0
  542.     deactivate
  543.     @qianghelp = qianghelp
  544.     @xuanze = xuanze
  545.   end
  546.   #--------------------------------------------------------------------------
  547.   # ● 开始输入的处理
  548.   #--------------------------------------------------------------------------
  549.   def start
  550.     self.category = :weapon
  551.     refresh
  552.     select(0)
  553.     open
  554.     activate
  555.   end
  556.   #--------------------------------------------------------------------------
  557.   # ● 查询此物品是否可用
  558.   #--------------------------------------------------------------------------
  559.   def enable?(item)
  560.     return false unless item != nil
  561.     Equipplus.weaponupable?(item.id)
  562.   end
  563.   #--------------------------------------------------------------------------
  564.   # ● 确定强化武器
  565.   #--------------------------------------------------------------------------
  566.   def qiangwu_ok
  567.     result = item ? item.id : 0
  568.   end
  569.   #--------------------------------------------------------------------------
  570.   # ● 更新帮助内容
  571.   #--------------------------------------------------------------------------
  572.   def update_help
  573.     return unless item != nil
  574.     @help_window.set_item(item)
  575.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil
  576.     needmoney = 0
  577.     Equipplus.weaponupable?(item.id)
  578.     qitemname = Equipplus.lostitem.name
  579.     if item.up >= $强化哈希表["最高等级"]
  580.       qitemname = "无法继续升级"
  581.     end
  582.     temp = []
  583.     $usegem == true ? temp.push("使用") : temp.push("未使用")
  584.     temp.push($data_items[$强化哈希表["特殊物品"][0]].name)
  585.     $fangb == true ? temp.push("使用") : temp.push("未使用")
  586.     temp.push($data_items[$强化哈希表["特殊物品"][1]].name)
  587.     $fangj == true ? temp.push("使用") : temp.push("未使用")
  588.     cgl = ($强化哈希表["每级概率"][item.up] + $当前使用宝石加成率).to_s
  589.     if item.up == 0
  590.       min = item.params[2] + 1
  591.       max = min + 5
  592.       min1 = item.params[4].to_int  # 聪聪增加...
  593.       max1 = min1 + 5  # 聪聪增加...
  594.     else
  595.       if item.up >= $强化哈希表["最高等级"]
  596.         min = item.params[2].to_int
  597.         max = min
  598.         min1 = item.params[4].to_int  # 聪聪增加...
  599.         max1 = min1  # 聪聪增加...
  600.       else
  601.         if item.params[2] > 0  # 聪聪增加...
  602.           min = (item.params[2] * (1 + $强化哈希表["提升能力"][item.up] / 100)).to_int + item.up
  603.           max = min + item.up * 5
  604.         end
  605.         if item.params[4] > 0  # 聪聪增加...
  606.           min1 = (item.params[4] * (1 + $强化哈希表["提升能力"][item.up] / 100)).to_int + item.up
  607.           max1 = min1 + item.up * 5
  608.         end
  609.       end
  610.     end
  611.     text = "装备名称:" + item.name + "\n强化所需" + Vocab::currency_unit + ":" + Equipplus.needmoney.to_s
  612.     text += "\n当前强化等级:" + item.up.to_s + "\n强化需要:" +  qitemname
  613.     text += "\n强化宝石:" + temp [0] + " " + temp[1] + ":" + temp[2]+ " " + temp[3] + ":" + temp[4]
  614.     text += "\n成功率:" + cgl + "% " + "\n强化后攻击力范围:" + min.to_s + "~" + max.to_s
  615.     text += "    强化后魔法力范围:" + min1.to_s + "~" + max1.to_s  # 聪聪增加...
  616.     @qianghelp.set_text(text)
  617.   end
  618.   #--------------------------------------------------------------------------
  619.   # ● 获取当前武器等级
  620.   #--------------------------------------------------------------------------
  621.   def getweaponup
  622.     Equipplus.weaponupisnil(item.id)
  623.     item.up
  624.   end
  625.  
  626.   def itemid
  627.     item.id
  628.   end
  629.   #--------------------------------------------------------------------------
  630.   # ● 选择项目
  631.   #--------------------------------------------------------------------------
  632.   def select(index)
  633.     self.index = index if index
  634.     update_help
  635.   end
  636. end
  637. #==============================================================================
  638. # ■ Window_Qiangfang
  639. #------------------------------------------------------------------------------
  640. #  强化系统_防具强化窗口
  641. #==============================================================================
  642.  
  643. class Window_Qiangfang < Window_ItemList
  644.   #--------------------------------------------------------------------------
  645.   # ● 初始化对象
  646.   #--------------------------------------------------------------------------
  647.   def initialize(qianghelp,xuanze)
  648.     super(0, 0, Graphics.width, fitting_height(8))
  649.     self.openness = 0
  650.     deactivate
  651.     @qianghelp = qianghelp
  652.     @xuanze = xuanze
  653.   end
  654.   #--------------------------------------------------------------------------
  655.   # ● 开始输入的处理
  656.   #--------------------------------------------------------------------------
  657.   def start
  658.     self.category = :armor
  659.     refresh
  660.     select(0)
  661.     open
  662.     activate
  663.   end
  664.   #--------------------------------------------------------------------------
  665.   # ● 查询此物品是否可用
  666.   #--------------------------------------------------------------------------
  667.   def enable?(item)
  668.     return false unless item != nil
  669.     Equipplus.armorupable?(item.id)
  670.   end
  671.   #--------------------------------------------------------------------------
  672.   # ● 确定强化防具
  673.   #--------------------------------------------------------------------------
  674.   def qiangfang_ok
  675.     result = item ? item.id : 0
  676.   end
  677.   #--------------------------------------------------------------------------
  678.   # ● 更新帮助内容
  679.   #--------------------------------------------------------------------------
  680.   def update_help
  681.     return unless item != nil
  682.     @help_window.set_item(item)
  683.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil
  684.     needmoney = 0
  685.     Equipplus.armorupable?(item.id)
  686.     qitemname = Equipplus.lostitem.name
  687.     if item.up >= $强化哈希表["最高等级"]
  688.       qitemname = "无法继续升级"
  689.     end
  690.     temp = []
  691.     $usegem == true ? temp.push("使用") : temp.push("未使用")
  692.     temp.push($data_items[$强化哈希表["特殊物品"][0]].name)
  693.     $fangb == true ? temp.push("使用") : temp.push("未使用")
  694.     temp.push($data_items[$强化哈希表["特殊物品"][1]].name)
  695.     $fangj == true ? temp.push("使用") : temp.push("未使用")
  696.     cgl = ($强化哈希表["每级概率"][item.up] + $当前使用宝石加成率).to_s
  697.     if item.up == 0
  698.       min = item.params[3] + 1
  699.       max = min + 5
  700.     else
  701.       if item.up >= $强化哈希表["最高等级"]
  702.         min = item.params[3].to_int
  703.         max = min
  704.       else
  705.     min = (item.params[3] * (1 + $强化哈希表["提升能力"][item.up] / 100)).to_int + item.up
  706.     max = min + item.up * 5
  707.     end
  708.   end
  709.     text = "装备名称:" + item.name + "\n强化所需" + Vocab::currency_unit + ":" + Equipplus.needmoney.to_s
  710.     text += "\n当前强化等级:" + item.up.to_s + "\n强化需要:" +  qitemname
  711.     text += "\n强化宝石:" + temp [0] + " " + temp[1] + ":" + temp[2]+ " " + temp[3] + ":" + temp[4]
  712.     text += "\n成功率:" + cgl + "% " + "\n强化后防御力范围:" + min.to_s + "~" + max.to_s
  713.     @qianghelp.set_text(text)
  714.   end
  715.   #--------------------------------------------------------------------------
  716.   # ● 获取当前防具等级
  717.   #--------------------------------------------------------------------------
  718.   def getarmorup
  719.     Equipplus.armorupisnil(item.id)
  720.     item.up
  721.   end
  722.  
  723.   def itemid
  724.     item.id
  725.   end
  726.   #--------------------------------------------------------------------------
  727.   # ● 选择项目
  728.   #--------------------------------------------------------------------------
  729.   def select(index)
  730.     self.index = index if index
  731.     update_help
  732.   end
  733. end
  734. #==============================================================================
  735. # ■ Window_QiangCommand
  736. #------------------------------------------------------------------------------
  737. #  强化系统中,处理命令选择的窗口。
  738. #==============================================================================
  739.  
  740. class Window_QiangCommand < Window_Command
  741.   #--------------------------------------------------------------------------
  742.   # ● 初始化对象
  743.   #--------------------------------------------------------------------------
  744.   def initialize
  745.     super(0, 0)
  746.     update_placement
  747.     self.openness = 0
  748.     open
  749.   end
  750.   #--------------------------------------------------------------------------
  751.   # ● 获取窗口的宽度
  752.   #--------------------------------------------------------------------------
  753.   def window_width
  754.     return 160
  755.   end
  756.   #--------------------------------------------------------------------------
  757.   # ● 更新窗口的位置
  758.   #--------------------------------------------------------------------------
  759.   def update_placement
  760.     self.x = (Graphics.width - width) / 2
  761.     self.y = (Graphics.height - height) / 2
  762.   end
  763.   #--------------------------------------------------------------------------
  764.   # ● 生成指令列表
  765.   #--------------------------------------------------------------------------
  766.   def make_command_list
  767.     add_command("强化武器",    :qiangwu)
  768.     add_command("强化防具",    :qiangfang)
  769.     add_command(Vocab::ShopCancel, :cancel)
  770.   end
  771. end
  772. #==============================================================================
  773. # ■ Window_Qianghelp
  774. #------------------------------------------------------------------------------
  775. #  显示说明
  776. #==============================================================================
  777.  
  778. class Window_Qianghelp < Window_Base
  779.   #--------------------------------------------------------------------------
  780.   # ● 初始化对象
  781.   #--------------------------------------------------------------------------
  782.   def initialize
  783.     super(0, 0, window_width, fitting_height(7) + 8)
  784.     refresh
  785.   end
  786.   #--------------------------------------------------------------------------
  787.   # ● 获取窗口的宽度
  788.   #--------------------------------------------------------------------------
  789.   def window_width
  790.     return 544
  791.   end
  792.   #--------------------------------------------------------------------------
  793.   # ● 获取持有金钱
  794.   #--------------------------------------------------------------------------
  795.   def value
  796.     $game_party.gold
  797.   end
  798.   #--------------------------------------------------------------------------
  799.   # ● 获取货币单位
  800.   #--------------------------------------------------------------------------
  801.   def currency_unit
  802.     Vocab::currency_unit
  803.   end
  804.   #--------------------------------------------------------------------------
  805.   # ● 设置内容
  806.   #--------------------------------------------------------------------------
  807.   def set_text(text)
  808.     if text != @text
  809.       @text = text
  810.       refresh
  811.     end
  812.   end
  813.   #--------------------------------------------------------------------------
  814.   # ● 清除
  815.   #--------------------------------------------------------------------------
  816.   def clear
  817.     set_text("")
  818.   end
  819.   #--------------------------------------------------------------------------
  820.   # ● 刷新
  821.   #--------------------------------------------------------------------------
  822.   def refresh
  823.     contents.clear
  824.     draw_text_ex(4, 0, @text)
  825.   end
  826. end
  827. #==============================================================================
  828. # ■ Window_Qiangxz
  829. #------------------------------------------------------------------------------
  830. #  强化系统中,选择强化方式的窗口。
  831. #==============================================================================
  832.  
  833. class Window_Qiangxz < Window_Command
  834.   @havegem = false
  835.   @havefangb = false
  836.   @havefangj = false
  837.   #--------------------------------------------------------------------------
  838.   # ● 初始化对象
  839.   #--------------------------------------------------------------------------
  840.   def initialize
  841.     super(0, 0)
  842.     index = 0
  843.     update_placement
  844.     self.openness = 0
  845.     open
  846.   end
  847.   #--------------------------------------------------------------------------
  848.   # ● 获取窗口的宽度
  849.   #--------------------------------------------------------------------------
  850.   def window_width
  851.     return 180
  852.   end
  853.   #--------------------------------------------------------------------------
  854.   # ● 更新窗口的位置
  855.   #--------------------------------------------------------------------------
  856.   def update_placement
  857.     self.x = (Graphics.width - width) / 2
  858.     self.y = (Graphics.height - height) / 2
  859.   end
  860.   #--------------------------------------------------------------------------
  861.   # ● 检查可用
  862.   #--------------------------------------------------------------------------
  863.   def haveitem
  864.     @havegem = false
  865.     @havefangb = false
  866.     @havefangj = false
  867.     for i in $强化哈希表["宝石效果"]
  868.         if $game_party.has_item?($data_items[i[1]])
  869.         @havegem = true
  870.       end
  871.     end
  872.     @havefangb = $game_party.has_item?($data_items[$强化哈希表["特殊物品"][0]])
  873.     @havefangj = $game_party.has_item?($data_items[$强化哈希表["特殊物品"][1]])
  874.   end
  875.   #--------------------------------------------------------------------------
  876.   # ● 生成指令列表
  877.   #--------------------------------------------------------------------------
  878.   def make_command_list
  879.     haveitem
  880.     add_command("宝石",     :gem, @havegem)
  881.     add_command(Equipplus.idgetitem($强化哈希表["特殊物品"][0]).name, :fangb, @havefangb)
  882.     add_command(Equipplus.idgetitem($强化哈希表["特殊物品"][1]).name, :fangj, @havefangj)
  883.     add_command("开始强化", :start)
  884.     add_command("取消强化", :cancel)
  885.   end
  886. end
  887. class Window_ItemList
  888.   #--------------------------------------------------------------------------
  889.   # ● 查询列表中是否含有此物品
  890.   #--------------------------------------------------------------------------
  891.   def include?(item)
  892.     case @category
  893.     when :item
  894.       item.is_a?(RPG::Item) && !item.key_item?
  895.     when :weapon
  896.       item.is_a?(RPG::Weapon)
  897.     when :armor
  898.       item.is_a?(RPG::Armor)
  899.     when :key_item
  900.       item.is_a?(RPG::Item) && item.key_item?
  901.     when :gem
  902.       itemid = item ? item.id : 0
  903.       itemid != 0 ? isgem(itemid) : false
  904.     else
  905.       false
  906.     end
  907.   end
  908.  
  909.   def isgem(itemid)
  910.     for i in $强化哈希表["宝石效果"]
  911.       return true if i[1] == itemid
  912.     end
  913.     false
  914.   end
  915. end
  916. #==============================================================================
  917. # ■ Window_Choosegem
  918. #------------------------------------------------------------------------------
  919. #  选择强化使用的宝石
  920. #==============================================================================
  921.  
  922. class Window_Choosegem < Window_ItemList
  923.   #--------------------------------------------------------------------------
  924.   # ● 初始化对象
  925.   #--------------------------------------------------------------------------
  926.   def initialize()
  927.     super(0, 0, Graphics.width, fitting_height(2))
  928.     self.openness = 0
  929.     deactivate
  930.     @wufangwindow = nil
  931.     @qiangxz = nil
  932.     set_handler(:ok,     method(:on_ok))
  933.     set_handler(:cancel, method(:on_cancel))
  934.   end
  935.  
  936.   def wufangwindow=(wufangwindow)
  937.     @wufangwindow = wufangwindow
  938.   end
  939.   def qiangxz=(qiangxz)
  940.     @qiangxz = qiangxz
  941.   end
  942.   #--------------------------------------------------------------------------
  943.   # ● 开始输入的处理
  944.   #--------------------------------------------------------------------------
  945.   def start
  946.     self.category = :gem
  947.     self.y = (Graphics.height - height) / 2
  948.     refresh
  949.     select(0)
  950.     open
  951.     activate
  952.   end
  953.   #--------------------------------------------------------------------------
  954.   # ● 确定时的处理
  955.   #--------------------------------------------------------------------------
  956.   def on_ok
  957.     result = item ? item.id : 0
  958.     if result != 0
  959.      $usegem = true
  960.      $当前使用宝石id = result
  961.      for i in $强化哈希表["宝石效果"]
  962.        $当前使用宝石加成率 = i[0] if i[1] == $当前使用宝石id
  963.      end
  964.    else
  965.      $当前使用宝石加成率 = 0
  966.      $usegem = false
  967.     end
  968.     @wufangwindow.update_help
  969.     @qiangxz.activate
  970.     close
  971.   end
  972.   #--------------------------------------------------------------------------
  973.   # ● 查询此物品是否可用
  974.   #--------------------------------------------------------------------------
  975.   def enable?(item)
  976.     true
  977.   end
  978.   #--------------------------------------------------------------------------
  979.   # ● 取消时的处理
  980.   #--------------------------------------------------------------------------
  981.   def on_cancel
  982.     $当前使用宝石加成率 = 0
  983.     $usegem = false
  984.     @wufangwindow.update_help
  985.     @qiangxz.activate
  986.     close
  987.   end
  988. end
  989. #==============================================================================
  990. # ■ 强化系统DataManager
  991. #------------------------------------------------------------------------------
  992. #  将武器和防具数据保存入存档
  993. #==============================================================================
  994. module DataManager
  995.   #--------------------------------------------------------------------------
  996.   # ● 生成存档内容
  997.   #--------------------------------------------------------------------------
  998.   def self.make_save_contents
  999.     contents = {}
  1000.     contents[:system]        = $game_system
  1001.     contents[:timer]         = $game_timer
  1002.     contents[:message]       = $game_message
  1003.     contents[:switches]      = $game_switches
  1004.     contents[:variables]     = $game_variables
  1005.     contents[:self_switches] = $game_self_switches
  1006.     contents[:actors]        = $game_actors
  1007.     contents[:party]         = $game_party
  1008.     contents[:troop]         = $game_troop
  1009.     contents[:map]           = $game_map
  1010.     contents[:player]        = $game_player
  1011.     contents[:weapons]       = $data_weapons
  1012.     contents[:armors]        = $data_armors
  1013.     contents
  1014.   end
  1015.   #--------------------------------------------------------------------------
  1016.   # ● 展开存档内容
  1017.   #--------------------------------------------------------------------------
  1018.   def self.extract_save_contents(contents)
  1019.     $game_system        = contents[:system]
  1020.     $game_timer         = contents[:timer]
  1021.     $game_message       = contents[:message]
  1022.     $game_switches      = contents[:switches]
  1023.     $game_variables     = contents[:variables]
  1024.     $game_self_switches = contents[:self_switches]
  1025.     $game_actors        = contents[:actors]
  1026.     $game_party         = contents[:party]
  1027.     $game_troop         = contents[:troop]
  1028.     $game_map           = contents[:map]
  1029.     $game_player        = contents[:player]
  1030.     $data_weapons       = contents[:weapons]
  1031.     $data_armors        = contents[:armors]
  1032.   end
  1033. end

点评

OK,我试试,谢谢啦~~  发表于 2015-6-30 22:36

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 我很赞同

查看全部评分

聪聪全国第三帅...
他们都叫我【人赢聪】
我的RM能力雷达图:

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 01:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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