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

Project1

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

[已经解决] 關於裝備強化的腳本,如何限定某類型裝備無法被強化?

[复制链接]

Lv2.观梦者

梦石
0
星屑
552
在线时间
464 小时
注册时间
2009-10-11
帖子
407
跳转到指定楼层
1
发表于 2013-3-25 23:36:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
請問在這腳本中、該如何限定某個防具或武器ID不能被強化??
或是哪類型的武器防具不能被強化??

(我想要"防具強化"的項目只有衣服、鞋子可以被防具強化,其他戒指啦什麼的就禁止...)

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

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

2
发表于 2013-3-29 13:39:49 | 只看该作者
改这里
  1. def self.armorupable?(id)
  2.   equipable?(id,false) && ($data_armors[id].etype_id == 2 || $data_armors[id].etype_id == 3)
  3. end
复制代码
鞋子是指帽子?...

点评

哈哈!! 這麼多天終於有解答了~^_^ 我搞錯了好好笑...哪來的鞋子...哈 謝謝你SION大!  发表于 2013-3-29 18:00

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-20 16:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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