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

Project1

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

[已经解决] 装备强化系统怎么添加宝石数量?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
4656
在线时间
1117 小时
注册时间
2014-5-9
帖子
163
跳转到指定楼层
1
发表于 2014-12-6 14:08:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

点评

啊咧...不是升级宝石然后就升级武器那么简单而已嘛?不然你是要一个人用999个一级宝石去强化某样东西?  发表于 2014-12-6 14:24

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2014-12-6 14:30:45 | 只看该作者
给 idlostitem 传入第二个参数,并在 equipable? 的某一步判断中用数量而非是否拥有道具进行判断。

↑ 即使看不懂这句话也不要追问我。这个破脚本我绝对拒绝修改- -

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 这代码风格美如画 233

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4656
在线时间
1117 小时
注册时间
2014-5-9
帖子
163
3
 楼主| 发表于 2014-12-6 14:31:56 | 只看该作者
那一个强化石真的需求太少了啊。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
99
在线时间
900 小时
注册时间
2012-11-13
帖子
893
4
发表于 2014-12-6 20:55:20 | 只看该作者
3.所需物品方面
      本强化系统可以用多个物品强化一个装备,
      强化每一个装备所需的物品都可以自行设定
      (打个比方、比如说要强化一个红宝石做的项链、自然要用[红宝石]来强化它;
      但是一个绿宝石做的项链、却用[红宝石]来强化、就会觉得很怪、所以本人觉得
      强化每一个装备所需的物品都可以自行设定 更合理)

https://rpg.blue/thread-347992-1-1.html

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

废弃
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4656
在线时间
1117 小时
注册时间
2014-5-9
帖子
163
5
 楼主| 发表于 2014-12-9 14:28:29 | 只看该作者
结贴把
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 13:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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