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

Project1

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

[已经过期] 强化脚本的问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2180
在线时间
1011 小时
注册时间
2015-10-17
帖子
1285
跳转到指定楼层
1
发表于 2016-6-13 21:32:13 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
下面的脚本武器强化后只加物理伤害,怎样使武器强化后加物理伤害和魔力



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

Lv1.梦旅人

梦石
0
星屑
50
在线时间
9 小时
注册时间
2016-6-14
帖子
9
4
发表于 2016-6-20 20:59:57 | 只看该作者
fjm 发表于 2016-6-20 17:22
图书馆有范例的,你下个范例看下就能明白了

我看过了 看不懂  我不知道用哪个方法 总是提示没有发现方法
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2180
在线时间
1011 小时
注册时间
2015-10-17
帖子
1285
3
 楼主| 发表于 2016-6-20 17:22:49 | 只看该作者
xgs987456 发表于 2016-6-20 12:30
能告诉我怎么调用这些脚本么?也就是怎么在事件中把这个脚本实现出来

图书馆有范例的,你下个范例看下就能明白了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
9 小时
注册时间
2016-6-14
帖子
9
2
发表于 2016-6-20 12:30:31 手机端发表。 | 只看该作者
能告诉我怎么调用这些脚本么?也就是怎么在事件中把这个脚本实现出来
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 16:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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