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

Project1

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

[已经过期] 关于装备强化脚本的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
143
在线时间
347 小时
注册时间
2010-7-7
帖子
128
跳转到指定楼层
1
 楼主| 发表于 2013-2-26 12:46:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

Lv1.梦旅人

梦石
0
星屑
143
在线时间
347 小时
注册时间
2010-7-7
帖子
128
2
 楼主| 发表于 2013-2-26 16:17:08 | 只看该作者
坐等高手指点啊......
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
143
在线时间
347 小时
注册时间
2010-7-7
帖子
128
3
 楼主| 发表于 2013-2-27 09:23:51 | 只看该作者
求高手帮忙啊~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
143
在线时间
347 小时
注册时间
2010-7-7
帖子
128
4
 楼主| 发表于 2013-3-1 10:06:49 | 只看该作者
木有人帮帮我吗。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-2-23 03:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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