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

Project1

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

[已经解决] 装备强化系统腳本出錯求救

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2111
在线时间
950 小时
注册时间
2015-7-16
帖子
767

开拓者

跳转到指定楼层
1
发表于 2016-1-27 21:26:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 duzine 于 2016-1-27 21:58 编辑

如題

執行時沒問題,打開道具強化功能時也沒問題,就是當主角擁有了裝備再進行強化時,問題就來了
腳本:
RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ 装备强化系统 By wyongcan
  4. #==============================================================================
  5. module Equipplus
  6. #升到各级时装备颜色请在“颜色描绘”脚本中修改
  7. $maxlv = 12  #最高升到的级数
  8. $gailv = [100,80,70,60,50,30,20,10,5,5,5,5,1] #每级提升概率
  9. $gemlv = [[60,23],[10,28],[25,29],[40,30]] #使用宝石提高的機率  [提高機率,宝石ID]
  10. $uplv = [[12,17]] #强化所需要的强化石 [最大强化到的等级,强化石ID]
  11. $xxlv = [0,0,5,10,15,20,25,30,30,40,40,45,60] #每级强化后失败物品消失的機率
  12. $jjlv = [0,10,15,20,30,45,55,65,70,70,75,80,100] #每级强化后失败物品降级的機率
  13. $tsnl = [10,14,18,22,26,30,34,38,42,46,50,54,65] #每级强化提升能力的百分比
  14. $tswp = [31,32] # 意思是:如果有31号物品则失败后物品不消失,如果有32号物品则失败后物品不降级
  15. #武器强化后的计算公式为: 原攻击 * (1 + 提升能力百分比) + (0到当前强化级数随机) * 5 + 当前强化级数
  16. $gemlv.sort!
  17. $uplv.sort!
  18. $当前使用宝石id = 0
  19. $当前使用宝石加成率 = 0
  20. $强化哈希表 = {
  21. "最高等级" => $maxlv ,
  22. "每级概率" => $gailv ,
  23. "宝石效果" => $gemlv ,
  24. "消失機率" => $xxlv  ,
  25. "降级機率" => $jjlv  ,
  26. "提升能力" => $tsnl  ,
  27. "特殊物品" => $tswp  ,
  28. "强化材料" => $uplv  }
  29. def self.idlostitem(id,amount = 1)
  30.   $game_party.lose_item(idgetitem(id),amount)
  31. end
  32.  
  33. def self.idlostequip(id,weapon = true,amount = 1)
  34.   weapon == true ? $game_party.lose_item($data_weapons[id],amount,true) : $game_party.lose_item($data_armors[id],amount,true)
  35. end
  36.  
  37. def self.idgainequip(id,weapon = true,amount = 1)
  38.   weapon == true ? $game_party.gain_item($data_weapons[id],amount,true) : $game_party.gain_item($data_armors[id],amount,true)
  39. end
  40.  
  41. def self.idgetitem(id)
  42.   $data_items[id]
  43. end
  44.  
  45. def self.equipable?(id,weapon = true)
  46.   weapon == true ? weaponupisnil(id) : armorupisnil(id)
  47.   weapon == true ? equip = $data_weapons[id].dup : equip = $data_armors[id].dup
  48.   price = equip.price
  49.   @needmoney = price * equip.up
  50.   if @needmoney == 0
  51.     @needmoney = price / 2
  52.   end
  53. #循环取出需要的强化材料
  54.   temp = false
  55.   for i in $强化哈希表["强化材料"]
  56.     if equip.up < i[0]
  57.       @lostitem = idgetitem i[1]
  58.       $game_party.has_item?(idgetitem(i[1])) ? temp = true : temp = false
  59.       break
  60.     end
  61.   end
  62.   $game_party.gold >= @needmoney && temp == true ? true : false
  63. end
  64.  
  65. def self.upweapon (id)
  66.   $message = ""
  67.   success = false
  68.   weaponupisnil(id)
  69.   weapon = $data_weapons[id].dup
  70.   gl = 0
  71.   fangb = false
  72.   fangj = false
  73.   return unless weapon.up < $强化哈希表["最高等级"] && weaponupable?(id)
  74.   loststh
  75.   $message += "本次强化,共消耗:" + Vocab::currency_unit + " " + @needmoney.to_s
  76.   $message += " " + @lostitem.name + "\n "
  77.   gl = $强化哈希表["每级概率"][weapon.up]
  78.   if $usegem == true
  79.     gl += $当前使用宝石加成率
  80.     idlostitem($当前使用宝石id)
  81.     $message += idgetitem($当前使用宝石id).name + " "
  82.   end
  83.   if $fangb == true
  84.     fangb = true
  85.     idlostitem $强化哈希表["特殊物品"][0]
  86.     $message += idgetitem($强化哈希表["特殊物品"][0]).name + " "
  87.   end
  88.   if $fangj == true
  89.     fangj = true
  90.     idlostitem $强化哈希表["特殊物品"][1]
  91.     $message += idgetitem($强化哈希表["特殊物品"][1]).name + " "
  92.   end
  93.   suiji = rand (100)
  94.   if suiji <= gl
  95.     success = true
  96.   end
  97.   $message += "\n强化结果:"
  98.   if success == true
  99.     $message += "强化成功"
  100.     idlostequip id
  101.     weapon.id = $data_weapons.size
  102.     params = weapon.params.dup
  103.     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.     weapon.up += 1
  108.     $data_weapons.insert $data_weapons.size,weapon
  109.     $data_weapons[$data_weapons.size-1].params = params
  110.     idgainequip weapon.id
  111.   else
  112.     $message += "强化失败"
  113.     suiji = rand (100)
  114.     if suiji <= $强化哈希表["消失機率"][weapon.up]
  115.       if fangb != true
  116.       $message += ",道具消失"
  117.       idlostequip id
  118.       else
  119.       $message += ",由于" + idgetitem($强化哈希表["特殊物品"][0]).name + "的作用,道具未消失"
  120.       end
  121.     else
  122.       suiji = rand (100)
  123.       if suiji <= $强化哈希表["降级機率"][weapon.up]
  124.         if fangj == false && weapon.up != 0
  125.           $message += ",道具降级"
  126.           params = weapon.params.dup
  127.           params[2] -= weapon.up + rand(weapon.up) * 5
  128.           params[2] /= 1 + $强化哈希表["提升能力"][weapon.up] / 100
  129.           weapon.params = params
  130.           weapon.up -= 1
  131.           $data_weapons[id] = weapon
  132.         else
  133.           $message += ",由于" + idgetitem($强化哈希表["特殊物品"][1]).name + "的作用,道具未降级"
  134.         end
  135.       end
  136.     end
  137.   end
  138.    $usegem = false
  139.    $fangb = false
  140.    $fangj = false
  141. end
  142.  
  143. def self.weaponupisnil(id)
  144.    $data_weapons[id].up = 0 unless $data_weapons[id].up != nil
  145. end
  146.  
  147. def self.weaponupable?(id)
  148.   equipable?(id)
  149. end
  150.  
  151. def self.uparmor (id)
  152.   $message = ""
  153.   success = false
  154.   armorupisnil(id)
  155.   armor = $data_armors[id].dup
  156.   gl = 0
  157.   fangb = false
  158.   fangj = false
  159.   return unless armor.up < $强化哈希表["最高等级"] && armorupable?(id)
  160.   loststh
  161.   $message += "本次强化,共消耗:" + Vocab::currency_unit + " " + @needmoney.to_s
  162.   $message += " " + @lostitem.name + "\n "
  163.   gl = $强化哈希表["每级概率"][armor.up]
  164.   if $usegem == true
  165.     gl += $当前使用宝石加成率
  166.     idlostitem($当前使用宝石id)
  167.     $message += idgetitem($当前使用宝石id).name + " "
  168.   end
  169.   if $fangb == true
  170.     fangb = true
  171.     idlostitem $强化哈希表["特殊物品"][0]
  172.     $message += idgetitem($强化哈希表["特殊物品"][0]).name + " "
  173.   end
  174.   if $fangj == true
  175.     fangj = true
  176.     idlostitem $强化哈希表["特殊物品"][1]
  177.     $message += idgetitem($强化哈希表["特殊物品"][1]).name + " "
  178.   end
  179.   suiji = rand (100)
  180.   if suiji <= gl
  181.     success = true
  182.   end
  183.   $message += "\n强化结果:"
  184.   if success == true
  185.     $message += "强化成功"
  186.     idlostequip id,false
  187.     armor.id = $data_armors.size
  188.     params = armor.params.dup
  189.     params[3] *= 1 + $强化哈希表["提升能力"][armor.up] / 100
  190.     params[3] += rand(armor.up) * 5 + armor.up
  191.     params[3] += 1 if params[3] == armor.params[3]
  192.     $message += " 防御力提升:" + (params[3] - armor.params[3]).to_int.to_s
  193.     armor.up += 1
  194.     $data_armors.insert $data_armors.size,armor
  195.     $data_armors[$data_armors.size-1].params = params
  196.     idgainequip armor.id,false
  197.   else
  198.     $message += "强化失败"
  199.     suiji = rand (100)
  200.     if suiji <= $强化哈希表["消失機率"][armor.up]
  201.       if fangb != true
  202.       $message += ",道具消失"
  203.       idlostequip id,false
  204.       else
  205.       $message += ",由于" + idgetitem($强化哈希表["特殊物品"][0]).name + "的作用,道具未消失"
  206.       end
  207.     else
  208.       suiji = rand (100)
  209.       if suiji <= $强化哈希表["降级機率"][armor.up]
  210.         if fangj == false && armor.up != 0
  211.           $message += ",道具降级"
  212.           params = armor.params.dup
  213.           params[3] -= armor.up + rand(armor.up) * 5
  214.           params[3] /= 1 + $强化哈希表["提升能力"][armor.up] / 100
  215.           armor.params = params
  216.           armor.up -= 1
  217.           $data_armors[id] = armor
  218.         else
  219.           $message += ",由于" + idgetitem($强化哈希表["特殊物品"][1]).name + "的作用,道具未降级"
  220.         end
  221.       end
  222.     end
  223.   end
  224.    $usegem = false
  225.    $fangb = false
  226.    $fangj = false
  227. end
  228.  
  229. def self.armorupisnil(id)
  230.    $data_armors[id].up = 0 unless $data_armors[id].up != nil
  231. end
  232. def self.armorupable?(id)
  233.   equipable?(id,false)
  234. end
  235. def self.loststh()
  236.    $game_party.lose_item(@lostitem,1)
  237.    $game_party.lose_gold(@needmoney)
  238. end
  239. def self.needmoney
  240.    @needmoney
  241. end
  242. def self.lostitem
  243.    @lostitem
  244. end
  245. end
  246. #==============================================================================
  247. # ■ Scene_Qiang
  248. #------------------------------------------------------------------------------
  249. #  强化画面
  250. #==============================================================================
  251.  
  252. class Scene_Qiang < Scene_MenuBase
  253.   $wufang = true
  254.   $usegem = false
  255.   $fangb = false
  256.   $fangj = false
  257.   #--------------------------------------------------------------------------
  258.   # ● 开始处理
  259.   #--------------------------------------------------------------------------
  260.   def start
  261.     super
  262.     create_help_window
  263.     @help_window.hide
  264.     create_qianghelp_window
  265.     create_command_window
  266.     create_qiangxz_window
  267.     create_wu_window
  268.     create_fang_window
  269.     create_choosegem_window
  270.   end
  271.   #--------------------------------------------------------------------------
  272.   # ● 生成说明窗口
  273.   #--------------------------------------------------------------------------
  274.   def create_qianghelp_window
  275.     @qianghelp_window = Window_Qianghelp.new
  276.     @qianghelp_window.y = Graphics.height - @qianghelp_window.height
  277.     @qianghelp_window.viewport = @viewport
  278.     @qianghelp_window.hide
  279.   end
  280.   #--------------------------------------------------------------------------
  281.   # ● 生成选择宝石
  282.   #--------------------------------------------------------------------------
  283.   def create_choosegem_window
  284.     @choosegem_window = Window_Choosegem.new
  285.     @choosegem_window.y = Graphics.height - @choosegem_window.height
  286.     @choosegem_window.viewport = @viewport
  287.     @choosegem_window.z = 120
  288.   end
  289.   #--------------------------------------------------------------------------
  290.   # ● 生成选择窗口
  291.   #--------------------------------------------------------------------------
  292.   def create_qiangxz_window
  293.     @qiangxz_window = Window_Qiangxz.new
  294.     @qiangxz_window.y = @help_window.height + fitting_height(5) /2
  295.     @qiangxz_window.z = 110
  296.     @qiangxz_window.viewport = @viewport
  297.     @qiangxz_window.set_handler(:gem,    method(:qiangxz_gem))
  298.     @qiangxz_window.set_handler(:fangb,    method(:qiangxz_fangb))
  299.     @qiangxz_window.set_handler(:fangj,    method(:qiangxz_fangj))
  300.     @qiangxz_window.set_handler(:ok, method(:qiangxz_ok))
  301.     @qiangxz_window.set_handler(:cancel, method(:qiangxz_cancel))
  302.     @qiangxz_window.hide
  303.     @qiangxz_window.deactivate
  304.   end
  305.   #--------------------------------------------------------------------------
  306.   # ● 生成指令窗口
  307.   #--------------------------------------------------------------------------
  308.   def create_command_window
  309.     @command_window = Window_QiangCommand.new
  310.     @command_window.viewport = @viewport
  311.     @command_window.y = @help_window.height + fitting_height(3) /2
  312.     @command_window.set_handler(:qiangwu,    method(:qiangwu))
  313.     @command_window.set_handler(:qiangfang,   method(:qiangfang))
  314.     @command_window.set_handler(:cancel, method(:return_scene))
  315.   end
  316.   #--------------------------------------------------------------------------
  317.   # ● 生成武器强化窗口
  318.   #--------------------------------------------------------------------------
  319.   def create_wu_window
  320.     @wu_window = Window_Qiangwu.new(@qianghelp_window,@qiangxz_window)
  321.     @wu_window.viewport = @viewport
  322.     @wu_window.y += @help_window.height
  323.     @wu_window.hide
  324.     @wu_window.help_window= @help_window
  325.     @wu_window.set_handler(:cancel, method(:qiangwu_cancel))
  326.     @wu_window.set_handler(:ok,     method(:qiangwu_ok))
  327.   end
  328.   #--------------------------------------------------------------------------
  329.   # ● 生成防具强化窗口
  330.   #--------------------------------------------------------------------------
  331.   def create_fang_window
  332.     @fang_window = Window_Qiangfang.new(@qianghelp_window,@qiangxz_window)
  333.     @fang_window.viewport = @viewport
  334.     @fang_window.y += @help_window.height
  335.     @fang_window.hide
  336.     @fang_window.help_window= @help_window
  337.     @fang_window.set_handler(:cancel, method(:qiangfang_cancel))
  338.     @fang_window.set_handler(:ok,     method(:qiangfang_ok))
  339.   end
  340.   #--------------------------------------------------------------------------
  341.   # ● 计算窗口显示指定行数时的应用高度
  342.   #--------------------------------------------------------------------------
  343.   def fitting_height(line_number)
  344.     line_number * 24 + 12 * 2
  345.   end
  346.   #--------------------------------------------------------------------------
  347.   # ● 显示强化武器
  348.   #--------------------------------------------------------------------------
  349.   def qiangwu
  350.     @command_window.hide
  351.     @help_window.show
  352.     @wu_window.show
  353.     @wu_window.start
  354.     @qianghelp_window.show
  355.     @wu_window.activate
  356.     $wufang = true
  357.     @command_window.deactivate
  358.   end
  359.   #--------------------------------------------------------------------------
  360.   # ● 显示强化防具
  361.   #--------------------------------------------------------------------------
  362.   def qiangfang
  363.     @command_window.hide
  364.     @help_window.show
  365.     @fang_window.show
  366.     @fang_window.start
  367.     @qianghelp_window.show
  368.     @fang_window.activate
  369.     $wufang = false
  370.     @command_window.deactivate
  371.   end
  372.   #--------------------------------------------------------------------------
  373.   # ● 取消强化武器
  374.   #--------------------------------------------------------------------------
  375.   def qiangwu_cancel
  376.     @command_window.show
  377.     @help_window.hide
  378.     @wu_window.hide
  379.     @qianghelp_window.hide
  380.     @command_window.activate
  381.     @qianghelp_window.set_text("")
  382.     @help_window.set_text("")
  383.   end
  384.   #--------------------------------------------------------------------------
  385.   # ● 取消强化防具
  386.   #--------------------------------------------------------------------------
  387.   def qiangfang_cancel
  388.     @command_window.show
  389.     @help_window.hide
  390.     @fang_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 qiangwu_ok
  400.     @help_window.hide
  401.     @wu_window.qiangwu_ok
  402.     @qiangxz_window.show
  403.     @qiangxz_window.activate
  404.   end
  405.   #--------------------------------------------------------------------------
  406.   # ● 确定强化防具
  407.   #--------------------------------------------------------------------------
  408.   def qiangfang_ok
  409.     @help_window.hide
  410.     @fang_window.qiangfang_ok
  411.     @qiangxz_window.show
  412.     @qiangxz_window.activate
  413.   end
  414.   #--------------------------------------------------------------------------
  415.   # ● 获取卖出价格
  416.   #--------------------------------------------------------------------------
  417.   def selling_price
  418.     @item.price / 2
  419.   end
  420.  
  421.   def qiangxz_gem
  422.     @choosegem_window.start
  423.     @qiangxz_window.deactivate
  424.     @choosegem_window.qiangxz= @qiangxz_window
  425.     if $wufang == true
  426.       @choosegem_window.wufangwindow= @wu_window
  427.     else
  428.       @choosegem_window.wufangwindow= @fang_window
  429.     end
  430.   end
  431.  
  432.   def qiangxz_fangb
  433.     $fangb = !$fangb
  434.     if $wufang == true
  435.       @wu_window.update_help
  436.     else
  437.       @fang_window.update_help
  438.     end
  439.     @qiangxz_window.activate
  440.   end
  441.  
  442.   def qiangxz_fangj
  443.     $fangj = !$fangj
  444.     if $wufang == true
  445.       @wu_window.update_help
  446.     else
  447.       @fang_window.update_help
  448.     end
  449.     @qiangxz_window.activate
  450.   end
  451.  
  452.   def qiangxz_ok
  453.     if $wufang == true
  454.       Equipplus.upweapon(@wu_window.itemid)
  455.       qianging
  456.       @qianghelp_window.set_text($message)
  457.       @qiangxz_window.hide
  458.       Graphics.wait(60)
  459.       @wu_window.activate
  460.       @qiangxz_window.deactivate
  461.       @help_window.hide
  462.       $当前使用宝石加成率 = 0
  463.       $usegem = false
  464.       @fang_window.update_help
  465.       @wu_window.refresh
  466.       @command_window.deactivate
  467.     else
  468.       Equipplus.uparmor(@fang_window.itemid)
  469.       qianging
  470.       @qianghelp_window.set_text($message)
  471.       @qiangxz_window.hide
  472.       Graphics.wait(60)
  473.       @fang_window.activate
  474.       @qiangxz_window.deactivate
  475.       @help_window.hide
  476.       $当前使用宝石加成率 = 0
  477.       $usegem = false
  478.       @fang_window.update_help
  479.       @fang_window.refresh
  480.       @command_window.deactivate
  481.     end
  482.   end
  483.  
  484.   def qiangxz_cancel
  485.     @help_window.refresh
  486.                 @help_window.show
  487.     @wu_window.show
  488.     @qiangxz_window.hide
  489.     @qiangxz_window.deactivate
  490.     if $wufang == true
  491.       @wu_window.activate
  492.     else
  493.       @fang_window.activate
  494.     end
  495.     $当前使用宝石加成率 = 0
  496.     $usegem = false
  497.     @command_window.deactivate
  498.   end
  499.  
  500.   def qianging
  501.     i = 0
  502.     while i < 20
  503.       i += 1
  504.       text = "\n"
  505.       text += "★" * i + "☆" * (20 - i)
  506.       text = text + "\n强化中,请等待。"
  507.       @qianghelp_window.set_text(text)
  508.       Graphics.wait(6)
  509.     end
  510.   end
  511. end
  512.  
  513. class RPG::EquipItem < RPG::BaseItem
  514.   alias old initialize
  515.   def initialize
  516.     old
  517.     @up = 0 #装备强化次数
  518.   end
  519.   attr_accessor :up
  520. end
  521. #==============================================================================
  522. # ■ Window_Qiangwu
  523. #------------------------------------------------------------------------------
  524. #  强化系统_武器强化窗口
  525. #==============================================================================
  526.  
  527. class Window_Qiangwu < Window_ItemList
  528.   #--------------------------------------------------------------------------
  529.   # ● 初始化对象
  530.   #--------------------------------------------------------------------------
  531.   def initialize(qianghelp,xuanze)
  532.     super(0, 0, Graphics.width, fitting_height(8))
  533.     self.openness = 0
  534.     deactivate
  535.     @qianghelp = qianghelp
  536.     @xuanze = xuanze
  537.   end
  538.   #--------------------------------------------------------------------------
  539.   # ● 开始输入的处理
  540.   #--------------------------------------------------------------------------
  541.   def start
  542.     self.category = :weapon
  543.     refresh
  544.     select(0)
  545.     open
  546.     activate
  547.   end
  548.   #--------------------------------------------------------------------------
  549.   # ● 查询此物品是否可用
  550.   #--------------------------------------------------------------------------
  551.   def enable?(item)
  552.     return false unless item != nil
  553.     Equipplus.weaponupable?(item.id)
  554.   end
  555.   #--------------------------------------------------------------------------
  556.   # ● 确定强化武器
  557.   #--------------------------------------------------------------------------
  558.   def qiangwu_ok
  559.     result = item ? item.id : 0
  560.   end
  561.   #--------------------------------------------------------------------------
  562.   # ● 更新帮助内容
  563.   #--------------------------------------------------------------------------
  564.   def update_help
  565.     return unless item != nil
  566.     @help_window.set_item(item)
  567.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil
  568.     needmoney = 0
  569.     Equipplus.weaponupable?(item.id)
  570.     qitemname = Equipplus.lostitem.name
  571.     if item.up >= $强化哈希表["最高等级"]
  572.       qitemname = "无法继续升级"
  573.     end
  574.     temp = []
  575.     $usegem == true ? temp.push("使用") : temp.push("未使用")
  576.     temp.push($data_items[$强化哈希表["特殊物品"][0]].name)
  577.     $fangb == true ? temp.push("使用") : temp.push("未使用")
  578.     temp.push($data_items[$强化哈希表["特殊物品"][1]].name)
  579.     $fangj == true ? temp.push("使用") : temp.push("未使用")
  580.     cgl = ($强化哈希表["每级概率"][item.up] + $当前使用宝石加成率).to_s
  581.     if item.up == 0
  582.       min = item.params[2] + 1
  583.       max = min + 5
  584.     else
  585.       if item.up >= $强化哈希表["最高等级"]
  586.         min = item.params[2].to_int
  587.         max = min
  588.       else
  589.     min = (item.params[2] * (1 + $强化哈希表["提升能力"][item.up] / 100)).to_int + item.up
  590.     max = min + item.up * 5
  591.     end
  592.   end
  593.     text = "装备名称:" + item.name + "\n强化所需" + Vocab::currency_unit + ":" + Equipplus.needmoney.to_s
  594.     text += "\n当前强化等级:" + item.up.to_s + "\n强化需要:" +  qitemname
  595.     text += "\n强化宝石:" + temp [0] + " " + temp[1] + ":" + temp[2]+ " " + temp[3] + ":" + temp[4]
  596.     text += "\n成功率:" + cgl + "% " + "\n强化后攻击力范围:" + min.to_s + "~" + max.to_s
  597.     @qianghelp.set_text(text)
  598.   end
  599.   #--------------------------------------------------------------------------
  600.   # ● 获取当前武器等级
  601.   #--------------------------------------------------------------------------
  602.   def getweaponup
  603.     Equipplus.weaponupisnil(item.id)
  604.     item.up
  605.   end
  606.  
  607.   def itemid
  608.     item.id
  609.   end
  610.   #--------------------------------------------------------------------------
  611.   # ● 选择项目
  612.   #--------------------------------------------------------------------------
  613.   def select(index)
  614.     self.index = index if index
  615.     update_help
  616.   end
  617. end
  618. #==============================================================================
  619. # ■ Window_Qiangfang
  620. #------------------------------------------------------------------------------
  621. #  强化系统_防具强化窗口
  622. #==============================================================================
  623.  
  624. class Window_Qiangfang < Window_ItemList
  625.   #--------------------------------------------------------------------------
  626.   # ● 初始化对象
  627.   #--------------------------------------------------------------------------
  628.   def initialize(qianghelp,xuanze)
  629.     super(0, 0, Graphics.width, fitting_height(8))
  630.     self.openness = 0
  631.     deactivate
  632.     @qianghelp = qianghelp
  633.     @xuanze = xuanze
  634.   end
  635.   #--------------------------------------------------------------------------
  636.   # ● 开始输入的处理
  637.   #--------------------------------------------------------------------------
  638.   def start
  639.     self.category = :armor
  640.     refresh
  641.     select(0)
  642.     open
  643.     activate
  644.   end
  645.   #--------------------------------------------------------------------------
  646.   # ● 查询此物品是否可用
  647.   #--------------------------------------------------------------------------
  648.   def enable?(item)
  649.     return false unless item != nil
  650.     Equipplus.armorupable?(item.id)
  651.   end
  652.   #--------------------------------------------------------------------------
  653.   # ● 确定强化防具
  654.   #--------------------------------------------------------------------------
  655.   def qiangfang_ok
  656.     result = item ? item.id : 0
  657.   end
  658.   #--------------------------------------------------------------------------
  659.   # ● 更新帮助内容
  660.   #--------------------------------------------------------------------------
  661.   def update_help
  662.     return unless item != nil
  663.     @help_window.set_item(item)
  664.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil
  665.     needmoney = 0
  666.     Equipplus.armorupable?(item.id)
  667.     qitemname = Equipplus.lostitem.name
  668.     if item.up >= $强化哈希表["最高等级"]
  669.       qitemname = "无法继续升级"
  670.     end
  671.     temp = []
  672.     $usegem == true ? temp.push("使用") : temp.push("未使用")
  673.     temp.push($data_items[$强化哈希表["特殊物品"][0]].name)
  674.     $fangb == true ? temp.push("使用") : temp.push("未使用")
  675.     temp.push($data_items[$强化哈希表["特殊物品"][1]].name)
  676.     $fangj == true ? temp.push("使用") : temp.push("未使用")
  677.     cgl = ($强化哈希表["每级概率"][item.up] + $当前使用宝石加成率).to_s
  678.     if item.up == 0
  679.       min = item.params[3] + 1
  680.       max = min + 5
  681.     else
  682.       if item.up >= $强化哈希表["最高等级"]
  683.         min = item.params[3].to_int
  684.         max = min
  685.       else
  686.     min = (item.params[3] * (1 + $强化哈希表["提升能力"][item.up] / 100)).to_int + item.up
  687.     max = min + item.up * 5
  688.     end
  689.   end
  690.     text = "装备名称:" + item.name + "\n强化所需" + Vocab::currency_unit + ":" + Equipplus.needmoney.to_s
  691.     text += "\n当前强化等级:" + item.up.to_s + "\n强化需要:" +  qitemname
  692.     text += "\n强化宝石:" + temp [0] + " " + temp[1] + ":" + temp[2]+ " " + temp[3] + ":" + temp[4]
  693.     text += "\n成功率:" + cgl + "% " + "\n强化后防御力范围:" + min.to_s + "~" + max.to_s
  694.     @qianghelp.set_text(text)
  695.   end
  696.   #--------------------------------------------------------------------------
  697.   # ● 获取当前防具等级
  698.   #--------------------------------------------------------------------------
  699.   def getarmorup
  700.     Equipplus.armorupisnil(item.id)
  701.     item.up
  702.   end
  703.  
  704.   def itemid
  705.     item.id
  706.   end
  707.   #--------------------------------------------------------------------------
  708.   # ● 选择项目
  709.   #--------------------------------------------------------------------------
  710.   def select(index)
  711.     self.index = index if index
  712.     update_help
  713.   end
  714. end
  715. #==============================================================================
  716. # ■ Window_QiangCommand
  717. #------------------------------------------------------------------------------
  718. #  强化系统中,处理命令选择的窗口。
  719. #==============================================================================
  720.  
  721. class Window_QiangCommand < Window_Command
  722.   #--------------------------------------------------------------------------
  723.   # ● 初始化对象
  724.   #--------------------------------------------------------------------------
  725.   def initialize
  726.     super(0, 0)
  727.     update_placement
  728.     self.openness = 0
  729.     open
  730.   end
  731.   #--------------------------------------------------------------------------
  732.   # ● 获取窗口的宽度
  733.   #--------------------------------------------------------------------------
  734.   def window_width
  735.     return 160
  736.   end
  737.   #--------------------------------------------------------------------------
  738.   # ● 更新窗口的位置
  739.   #--------------------------------------------------------------------------
  740.   def update_placement
  741.     self.x = (Graphics.width - width) / 2
  742.     self.y = (Graphics.height - height) / 2
  743.   end
  744.   #--------------------------------------------------------------------------
  745.   # ● 生成指令列表
  746.   #--------------------------------------------------------------------------
  747.   def make_command_list
  748.     add_command("强化武器",    :qiangwu)
  749.     add_command("强化防具",    :qiangfang)
  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
[神性领域扩张:扩张神性领域]
说了等于没说.

Lv4.逐梦者

梦石
0
星屑
7589
在线时间
1227 小时
注册时间
2008-12-14
帖子
555
2
发表于 2016-1-27 22:58:09 | 只看该作者
你这个脚本不全,报错是显示没有定义uppos这个方法。你可以 shift+ctrl+f 全局搜索  def uppos
如果没有,就是少东西。
这个坛子最近两天多次讨论这个脚本,你翻一番,有人有范例。

点评

感謝阿! 我的確自己砍了一個腳本,我是抱持該作者有同樣的腳本我有使用才這樣  发表于 2016-1-27 23:07
http://rm.66rpg.com/thread-388726-1-1.html  发表于 2016-1-27 22:59
需要购买本人MV插件必须先加wx好友。加不上wx就是本人忙,没时间卖。原则上太久以前的插件也不想卖,因为我也忘了,维护上会不给力。wx名:alskyif    本人插件地址:
   LCK_SRPG梦幻模拟战、火焰纹章类系统
   究极立绘ADV系统

   究极换装统合系统
   究极! 回想与CG系统
   消息文字的距离调整  
   自动返回上一张地图
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2111
在线时间
950 小时
注册时间
2015-7-16
帖子
767

开拓者

3
 楼主| 发表于 2016-1-27 23:16:52 | 只看该作者
可以請高手幫我單獨分離出定義uppos等的部分嗎?
這個腳本我已經有了原作者的新腳本了
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ 装备说明增强 By wyongcan
  4. #==============================================================================
  5. module Equipplus
  6.   CODE ={
  7.     11 => "属性抗性",
  8.     12 => "弱化抗性",
  9.     13 => "状态抗性",
  10.     14 => "状态免疫",
  11.     21 => "普通能力",
  12.     22 => "添加能力",
  13.     23 => "特殊能力",
  14.     31 => "攻击附带属性",
  15.     32 => "攻击附带状态",
  16.     33 => "修正攻击速度",
  17.     34 => "添加攻击次数",
  18.     41 => "添加技能类型",
  19.     42 => "禁用技能类型",
  20.     43 => "添加技能",
  21.     44 => "禁用技能",
  22.     51 => "可装备武器类型",
  23.     52 => "可装备护甲类型",
  24.     53 => "固定装备",
  25.     54 => "禁用装备",
  26.     55 => "装备风格",
  27.     61 => "添加行动次数",
  28.     62 => "特殊标志",
  29.     63 => "消失效果",
  30.     64 => "队伍能力"}
  31.   #特殊标志
  32.   FLAG ={
  33.                 0 => "自动战斗",
  34.                 1 => "擅长防御",
  35.                 2 => "保护弱者",
  36.                 3 => "特技专注"}
  37.   #普通能力
  38.         PARAM ={
  39.                 0 => "最大HP",
  40.                 1 => "最大MP",
  41.                 2 => "物理攻击",
  42.                 3 => "物理防御",
  43.                 4 => "魔法攻击",
  44.                 5 => "魔法防御",
  45.                 6 => "敏 捷 值",
  46.                 7 => "幸 运 值"}
  47.   #添加能力
  48.         XPARAM ={
  49.                 0 => "物理命中几率:",
  50.                 1 => "物理闪避几率:",
  51.                 2 => "必杀几率:",
  52.                 3 => "必杀闪避几率:",
  53.                 4 => "魔法闪避几率:",
  54.                 5 => "魔法反射几率:",
  55.                 6 => "物理反击几率:",
  56.                 7 => "体力值再生速度:",
  57.                 8 => "魔力值再生速度:",
  58.                 9 => "特技值再生速度:"}
  59.   #特殊能力
  60.         SPARAM ={
  61.                 0 => "受到攻击的几率",
  62.                 1 => "防御效果比率",
  63.                 2 => "恢复效果比率",
  64.                 3 => "药理知识",
  65.                 4 => "MP消费率",
  66.                 5 => "TP消耗率",
  67.                 6 => "物理伤害加成",
  68.                 7 => "魔法伤害加成",
  69.                 8 => "地形伤害加成",
  70.                 9 => "经验获得加成"}
  71.         @队伍能力 ={
  72.                 0 => "遇敌几率减半",
  73.                 1 => "随机遇敌无效",
  74.                 2 => "敌人偷袭无效",
  75.                 3 => "先制攻击几率上升",
  76.                 4 => "获得金钱数量双倍",
  77.                 5 => "物品掉落几率双倍"}
  78.   def self.equiphelpready
  79.     @状态 = {}
  80.     @武器类型 = {}
  81.     @防具类型 = {}
  82.     @属性 = {}
  83.     $data_states.each{|x| @状态[x.id] = x.name if x != nil}
  84.     elements = $data_system.elements
  85.     weapon_types = $data_system.weapon_types
  86.     armor_types = $data_system.armor_types
  87.     elements.each_with_index{|x,y| @属性[y] = x if x != ""}
  88.     weapon_types.each_with_index{|x,y| @武器类型[y] = x if x != ""}
  89.     armor_types.each_with_index{|x,y| @防具类型[y] = x if x != ""}
  90.   end
  91.   def self.getequiphelp(equip)
  92.     help = ""
  93.     param = []
  94.     equip.params.each_with_index{|x,y| param.push([PARAM[y],x])}
  95.     param = param.select{|x| x[1] != 0}
  96.     param.each{|x| help += x[0] + ":" + x[1].to_int.to_s + "\n"}
  97.     features = equip.features
  98.     features.select{|x| x.code == 55}.each{|x| help += CODE[x.code] + ":双持武器" + "\n"}
  99.     features.select{|x| x.code == 11}.each{|x| help += CODE[x.code] + ":" + @属性[x.data_id] + "*" + x.value.to_s + "\n"}
  100.     features.select{|x| x.code == 12}.each{|x| help += CODE[x.code] + ":" + PARAM[x.data_id] + "*" + x.value.to_s + "\n"}
  101.     features.select{|x| x.code == 13}.each{|x| help += CODE[x.code] + ":" + @状态[x.data_id] + "*" + x.value.to_s + "\n"}
  102.     features.select{|x| x.code == 14}.each{|x| help += CODE[x.code] + ":" + @状态[x.data_id] + "\n"}
  103.     features.select{|x| x.code == 31}.each{|x| help += CODE[x.code] + ":" + @属性[x.data_id] + "\n"}
  104.     features.select{|x| x.code == 32}.each{|x| help += CODE[x.code] + ":" + @状态[x.data_id] + "+" + x.value.to_s + "\n"}
  105.     features.select{|x| x.code == 33}.each{|x| help += CODE[x.code] + ":" + x.value.to_s + "\n"}
  106.     features.select{|x| x.code == 34}.each{|x| help += CODE[x.code] + ":" + x.value.to_s + "\n"}
  107.     features.select{|x| x.code == 41}.each{|x| help += CODE[x.code] + ":" + (x.data_id == 1 ? "特技" : "魔法")  + "\n"}
  108.     features.select{|x| x.code == 42}.each{|x| help += CODE[x.code] + ":" + (x.data_id == 1 ? "特技" : "魔法")  + "\n"}
  109.     features.select{|x| x.code == 43}.each{|x| help += CODE[x.code] + ":" + $data_skills[x.data_id].name  + "\n"}
  110.     features.select{|x| x.code == 44}.each{|x| help += CODE[x.code] + ":" + $data_skills[x.data_id].name  + "\n"}
  111.     features.select{|x| x.code == 51}.each{|x| help += CODE[x.code] + ":" + @武器类型[x.data_id]  + "\n"}
  112.     features.select{|x| x.code == 52}.each{|x| help += CODE[x.code] + ":" + @防具类型[x.data_id]  + "\n"}
  113.     features.select{|x| x.code == 61}.each{|x| help += CODE[x.code] + ":" + x.value.to_s  + "\n"}
  114.     features.select{|x| x.code == 62}.each{|x| help += CODE[x.code] + ":" + FLAG[x.data_id]  + "\n"}
  115.     features.select{|x| x.code == 64}.each{|x| help += CODE[x.code] + ":" + @队伍能力[x.data_id]  + "\n"}
  116.     featuresparam = []
  117.     featuresparam.push features.select{|x| x.code == 21}
  118.     featuresparam.push features.select{|x| x.code == 22}
  119.     featuresparam.push features.select{|x| x.code == 23}
  120.     featuresparam[0].each{|x| help += PARAM[x.data_id] + "*" + x.value.to_s + "\n"}
  121.     featuresparam[1].each{|x| help += XPARAM[x.data_id] + x.value.to_s + "\n"}
  122.     featuresparam[2].each{|x| help += SPARAM[x.data_id] + "*" + x.value.to_s + "\n"}
  123.     help
  124.   end
  125.   def self.getline(text,maxtext)
  126.     xtext = []
  127.     line = 0
  128.     text.each_line{|x| xtext.push x.sub(/\n/){}}
  129.     xtext.each{|x| x.size % maxtext != 0 ? line += x.size / maxtext + 1 : line += x.size / maxtext}
  130.     line
  131.   end
  132. end
  133. #==============================================================================
  134. # ■ Window_Help
  135. #------------------------------------------------------------------------------
  136. #  显示特技和物品等的说明、以及角色状态的窗口
  137. #==============================================================================

  138. class Window_Help2 < Window_Base
  139.   #--------------------------------------------------------------------------
  140.   # ● 初始化对象
  141.   #--------------------------------------------------------------------------
  142.   def initialize(line_number = 0)
  143.     super(0, 0, 210, 0)
  144.     self.z = 150
  145.     contents.font.size = 14
  146.     hide
  147.   end
  148.   #--------------------------------------------------------------------------
  149.   # ● 设置内容
  150.   #--------------------------------------------------------------------------
  151.   def set_text(text)
  152.       @text = text
  153.       refresh
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # ● 清除
  157.   #--------------------------------------------------------------------------
  158.   def clear
  159.     set_text("")
  160.   end
  161.   #--------------------------------------------------------------------------
  162.   # ● 更新帮助位置
  163.   #--------------------------------------------------------------------------
  164.   def uppos(index,rect,window)
  165.     self.height = fitting_height2(Equipplus.getline(@xtext,13))
  166.     create_contents
  167.     contents.font.size = 14
  168.     rect.x -= window.ox
  169.     rect.y -= window.oy
  170.     ax = rect.x + rect.width + 10
  171.     ax = rect.x - self.width + 10 if ax + self.width > window.width + 10
  172.     ax += window.x
  173.     ax = 0 if ax < 0
  174.     ay = rect.y + rect.height
  175.     ay = rect.y - self.height if ay + self.height > window.height
  176.     ay += window.y
  177.     ay = 0 if ay < 0
  178.     self.x = ax
  179.     self.y = ay
  180.     set_text(@xtext)
  181.     show
  182.   end
  183.   #--------------------------------------------------------------------------
  184.   # ● 设置物品
  185.   #     item : 技能、物品等
  186.   #--------------------------------------------------------------------------
  187.   def set_item(item)
  188.     if item == nil
  189.       set_text("")
  190.       return
  191.     end
  192.     @xtext = ""
  193.     @xtext = "名称:" + item.name + "\n"
  194.     @xtext += "介绍:" + item.description + "\n"
  195.     @xtext += "价格:" + item.price.to_s + "\n" if item.is_a?(RPG::EquipItem) || item.is_a?(RPG::Item)
  196.     @xtext += Equipplus.getequiphelp(item) if item.is_a?(RPG::EquipItem)
  197.     @xtext = @xtext[0,@text.size - 2] if @xtext[@xtext.size - 2,2] == "\n"
  198.   end
  199.   #--------------------------------------------------------------------------
  200.   # ● 刷新
  201.   #--------------------------------------------------------------------------
  202.   def refresh
  203.     contents.clear
  204.     hide if @text == ""
  205.     draw_text_ex(4, 0, @text,width,40,false)
  206.   end
  207. end
  208. class Window_Base < Window
  209.   #--------------------------------------------------------------------------
  210.   # ● 计算窗口显示指定行数时的应用高度2*************************
  211.   #--------------------------------------------------------------------------
  212.   def fitting_height2(line_number)
  213.     line_number * contents.font.size + standard_padding * 2
  214.   end
  215. #~ draw_text_ex的增强,使其可以自动换行  原作者:叶子 修改:wyongcan
  216.   #--------------------------------------------------------------------------
  217.   # ● 绘制带有控制符的文本内容
  218.   #   如果传递了width参数的话,会自动换行
  219.   #--------------------------------------------------------------------------
  220.   def draw_text_ex(x, y, text, width = nil,textwidth = nil,normalfont = true)
  221.     reset_font_settings if normalfont == true
  222.     text = convert_escape_characters(text)
  223.     pos = {:x => x, :y => y, :new_x => x, :height => calc_line_height(text)}
  224.     if width != nil
  225.       pos[:height] = contents.font.size
  226.       pos[:width] = width
  227.       pos[:textwidth] = textwidth
  228.     end
  229.     process_character(text.slice!(0, 1), text, pos) until text.empty?
  230.   end
  231.   #--------------------------------------------------------------------------
  232.   # ● 文字的处理
  233.   #     c    : 文字
  234.   #     text : 绘制处理中的字符串缓存(字符串可能会被修改)
  235.   #     pos  : 绘制位置 {:x, :y, :new_x, :height}
  236.   #--------------------------------------------------------------------------
  237.   def process_character(c, text, pos)
  238.     case c
  239.     when "\r"   # 回车
  240.       return
  241.     when "\n"   # 换行
  242.       process_new_line(text, pos)
  243.     when "\f"   # 翻页
  244.       process_new_page(text, pos)
  245.     when "\e"   # 控制符
  246.       process_escape_character(obtain_escape_code(text), text, pos)
  247.     else        # 普通文字
  248.       pos[:textwidth] == nil ? text_width = text_size(c).width : text_width = pos[:textwidth]
  249.       if pos[:width] != nil && pos[:x] - pos[:new_x] + text_width > pos[:width]
  250.         process_new_line(text, pos)
  251.       end
  252.       process_normal_character(c, pos)
  253.     end
  254.   end
  255. end

  256. class Window_ItemList < Window_Selectable
  257.   #--------------------------------------------------------------------------
  258.   # ● 更新帮助内容
  259.   #--------------------------------------------------------------------------
  260.   def update_help
  261.     @help_window.set_item(item)
  262.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil
  263.   end
  264. end

  265. class Window_SkillList < Window_Selectable
  266.   #--------------------------------------------------------------------------
  267.   # ● 更新帮助内容
  268.   #--------------------------------------------------------------------------
  269.   def update_help
  270.     @help_window.set_item(item)
  271.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil
  272.   end
  273. end

  274. class Window_ShopBuy < Window_Selectable
  275.   #--------------------------------------------------------------------------
  276.   # ● 更新帮助内容
  277.   #--------------------------------------------------------------------------
  278.   def update_help
  279.     @help_window.set_item(item) if @help_window
  280.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil && @help_window
  281.     @status_window.item = item if @status_window
  282.   end
  283. end

  284. class Window_EquipSlot < Window_Selectable
  285.   #--------------------------------------------------------------------------
  286.   # ● 更新帮助内容
  287.   #--------------------------------------------------------------------------
  288.   def update_help
  289.     super
  290.     @help_window.set_item(item) if @help_window
  291.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil && @help_window
  292.     @status_window.set_temp_actor(nil) if @status_window
  293.   end
  294. end

  295. class Scene_Shop < Scene_MenuBase
  296.         alias on_sell_ok_old on_sell_ok
  297.         def on_sell_ok
  298.                 on_sell_ok_old
  299.                 @help_window.hide
  300.         end
  301.         alias on_buy_ok_old on_buy_ok
  302.         def on_buy_ok
  303.                 on_buy_ok_old
  304.                 @help_window.hide
  305.         end
  306.         alias on_number_ok_old on_number_ok
  307.         def on_number_ok
  308.                 on_number_ok_old
  309.     @help_window.refresh
  310.                 @help_window.show
  311.         end
  312.         alias on_number_cancel_old on_number_cancel
  313.         def on_number_cancel
  314.                 on_number_cancel_old
  315.     @help_window.refresh
  316.                 @help_window.show
  317.         end
  318. end

  319. class Scene_Title < Scene_Base
  320.   alias start_old start
  321.   def start
  322.     start_old
  323.     Equipplus.equiphelpready
  324.   end
  325. end

  326. class Scene_ItemBase < Scene_MenuBase
  327.         alias old_on_actor_cancel on_actor_cancel
  328.   def on_actor_cancel
  329.     old_on_actor_cancel
  330.         @help_window.refresh
  331.   end
  332.         alias old_on_actor_ok on_actor_ok
  333.   def on_actor_ok
  334.     old_on_actor_ok
  335.         @help_window.refresh
  336.   end
  337. end

  338. class Window_Base < Window
  339.         alias old_process_new_line process_new_line
  340.         def process_new_line(text, pos)
  341.     old_process_new_line(text, pos)
  342.                 pos[:height] = contents.font.size if pos[:width] != nil
  343.         end
  344. end

  345. class Scene_MenuBase < Scene_Base
  346.   def create_help_window
  347.     @help_window = Window_Help2.new
  348.     @help_window.viewport = @viewport
  349.   end
  350. end
复制代码

点评

铲屎版? 不是很懂意思,那我現在該怎麼做呢?  发表于 2016-1-28 00:21
v大不是那个铲屎版,自带uppos吗。。。我给你那个链接  发表于 2016-1-28 00:17
其實就是修改一些內容提高兼容性,VIP大改的  发表于 2016-1-28 00:13
新版本有什么新功能啊?没有就别更新了。  发表于 2016-1-27 23:46
不是说了吗?用ctrl+shift+f 全局搜索,搜调用就这样搜 .uppos  发表于 2016-1-27 23:45
[神性领域扩张:扩张神性领域]
说了等于没说.
回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

4
发表于 2016-1-27 23:44:05 | 只看该作者
好乱……建议整理整理一个新工程,然后再现一下弹错的地方,发出来,
这样一下子贴出两篇(貌似还有新旧区别的?)长代码处理起来好麻烦……
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2111
在线时间
950 小时
注册时间
2015-7-16
帖子
767

开拓者

5
 楼主| 发表于 2016-1-28 00:11:17 | 只看该作者
本帖最后由 duzine 于 2016-1-28 00:18 编辑


於是照著找uppos的方法,出錯了...
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 更新帮助位置
  3.   #--------------------------------------------------------------------------
  4.   def uppos(index,rect,window)
  5.     self.height = fitting_height2(Equipplus.getline(@xtext,13))
  6.     create_contents
  7.     contents.font.size = 14
  8.     rect.x -= window.ox
  9.     rect.y -= window.oy
  10.     ax = rect.x + rect.width + 10
  11.     ax = rect.x - self.width + 10 if ax + self.width > window.width + 10
  12.     ax += window.x
  13.     ax = 0 if ax < 0
  14.     ay = rect.y + rect.height
  15.     ay = rect.y - self.height if ay + self.height > window.height
  16.     ay += window.y
  17.     ay = 0 if ay < 0
  18.     self.x = ax
  19.     self.y = ay
  20.     set_text(@xtext)
  21.     show
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 更新帮助内容
  25.   #--------------------------------------------------------------------------
  26.   def update_help
  27.     @help_window.set_item(item)
  28.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil
  29.   end
  30. end
  31.  
  32. class Window_SkillList < Window_Selectable
  33.   #--------------------------------------------------------------------------
  34.   # ● 更新帮助内容
  35.   #--------------------------------------------------------------------------
  36.   def update_help
  37.     @help_window.set_item(item)
  38.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil
  39.   end
  40. end
  41.  
  42. class Window_ShopBuy < Window_Selectable
  43.   #--------------------------------------------------------------------------
  44.   # ● 更新帮助内容
  45.   #--------------------------------------------------------------------------
  46.   def update_help
  47.     @help_window.set_item(item) if @help_window
  48.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil && @help_window
  49.     @status_window.item = item if @status_window
  50.   end
  51. end
  52.  
  53. class Window_EquipSlot < Window_Selectable
  54.   #--------------------------------------------------------------------------
  55.   # ● 更新帮助内容
  56.   #--------------------------------------------------------------------------
  57.   def update_help
  58.     super
  59.     @help_window.set_item(item) if @help_window
  60.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil && @help_window
  61.     @status_window.set_temp_actor(nil) if @status_window
  62.   end
  63. end

点评

你这里错是因为,def前面直到class help什么的都要考,加到第一行前面。等于class下面有个方法,你要把整个class都考了。  发表于 2016-1-28 00:24
粘贴错了,少粘或多留了个end。 这样做本身就苦,呵呵。  发表于 2016-1-28 00:16
[神性领域扩张:扩张神性领域]
说了等于没说.
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7589
在线时间
1227 小时
注册时间
2008-12-14
帖子
555
6
发表于 2016-1-28 00:29:02 | 只看该作者
强烈建议你用 vip大那个铲屎版本,就我发给你那个链接,
https://rpg.blue/thread-388726-1-1.html
你可以把一楼那个范例也下载。然后只要那个范例里面物品修改的4个脚本,
然后2楼,有vip大发的铲屎版
你直接拷贝替换范例里面的其中一个

我实在不愿意贴别人代码,你自己下去。

点评

别耽误工夫了,我想办法发给你吧。范例。你把邮箱发我  发表于 2016-1-28 00:36
哦,我不是用的那个范例,我是用的论坛下的1.0版本的范例,在那个基础上改的  发表于 2016-1-28 00:35
你的試試看能不能調用裝備增強這個功能? 我的腳本最一開始是錯在這部分,不然開啟是沒問題的  发表于 2016-1-28 00:35
但我昨天就试过了,没有任何问题  发表于 2016-1-28 00:33
確認(铲屎版)是在裝備腳本的上方,這樣應該是不會出錯的,那我也不知道能怎麼辦了  发表于 2016-1-28 00:33
需要购买本人MV插件必须先加wx好友。加不上wx就是本人忙,没时间卖。原则上太久以前的插件也不想卖,因为我也忘了,维护上会不给力。wx名:alskyif    本人插件地址:
   LCK_SRPG梦幻模拟战、火焰纹章类系统
   究极立绘ADV系统

   究极换装统合系统
   究极! 回想与CG系统
   消息文字的距离调整  
   自动返回上一张地图
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7589
在线时间
1227 小时
注册时间
2008-12-14
帖子
555
7
发表于 2016-1-28 00:39:10 | 只看该作者
发这吧,运行前保存下

装备系统增强.rar

321.27 KB, 下载次数: 99

点评

==,我中午就看看  发表于 2016-1-28 11:17
首先你跟左邊的NPC對話要武器,再跟右邊的問要強化武器,你就懂了  发表于 2016-1-28 10:56
測試完了,依然出錯.... 你的工程也出了同樣的錯  发表于 2016-1-28 10:55
你记得以后先把一个脚本放在范例里,测试没问题了,再往自己大工程里加啊。。。我先吐下血,也睡了。晚安。  发表于 2016-1-28 00:47
抱歉我太早下定論了,腳本長度不太一樣,那我明早測試再看結果,先睡囉,晚安  发表于 2016-1-28 00:45

评分

参与人数 2星屑 +210 收起 理由
VIPArcher + 200 认可答案
duzine + 10 我很赞同

查看全部评分

需要购买本人MV插件必须先加wx好友。加不上wx就是本人忙,没时间卖。原则上太久以前的插件也不想卖,因为我也忘了,维护上会不给力。wx名:alskyif    本人插件地址:
   LCK_SRPG梦幻模拟战、火焰纹章类系统
   究极立绘ADV系统

   究极换装统合系统
   究极! 回想与CG系统
   消息文字的距离调整  
   自动返回上一张地图
回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

8
发表于 2016-1-28 11:44:50 | 只看该作者
是没有生成强化的Help窗口并且对应过去……
修改了两处,搜索三个(及以上)的“#”检查顶格的那两句。
├─装备强化系统─┤

点评

折叠框的话,回帖高级模式里面,上面有个Toggl按钮,把代码(带代码框字符的)放进去点确定就好了。  发表于 2016-1-28 21:24
也要順便請教一下,貼代碼怎麼展開收合? 你們載入時應該也很痛苦,我順便學一個  发表于 2016-1-28 12:59
只是一直没关闭那个help的window而已。不是进防具显示武器  发表于 2016-1-28 12:45
這個我倒是還沒發現,不過現在有個問題,最下方的說明窗口會被上方的擋住,沒意外等等又要發文求救了...  发表于 2016-1-28 12:39
其实还有一些小问题,比如返回的时候那个说明窗口不会消失,选择了武器强化后如果没有防具,进入防具强化的话说明窗口是刚才的武器……  发表于 2016-1-28 12:37

评分

参与人数 2星屑 +210 收起 理由
VIPArcher + 200 认可答案
duzine + 10 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7589
在线时间
1227 小时
注册时间
2008-12-14
帖子
555
9
发表于 2016-1-28 12:40:39 | 只看该作者
总之,这个问题真折腾。原来是help那个类它继承到不同的类去了,原来的是winbase的类,后来改到继承help类了。所以不同类下面的,uppos,程序就说找不到。
解决方法就是重写创建类的语句,让他用新的那个类。
这个不好意思,昨晚没看强化,都是只看了物品注释那里,没管右边那个npc里的东西。因为我没准备要那些功能。
所以没发现问题。

点评

話說最下方那個說明窗口怎麼關,或者把Z值高於中間的道具窗口也可以?  发表于 2016-1-28 12:57
需要购买本人MV插件必须先加wx好友。加不上wx就是本人忙,没时间卖。原则上太久以前的插件也不想卖,因为我也忘了,维护上会不给力。wx名:alskyif    本人插件地址:
   LCK_SRPG梦幻模拟战、火焰纹章类系统
   究极立绘ADV系统

   究极换装统合系统
   究极! 回想与CG系统
   消息文字的距离调整  
   自动返回上一张地图
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7589
在线时间
1227 小时
注册时间
2008-12-14
帖子
555
10
发表于 2016-1-28 13:01:38 | 只看该作者
我先回答上面那个不能关的解决方法:
解决
├─装备强化系统─┤382加 一句 clean;

然后 11├─装备帮助增强─┤723行

scene_Base里面加个
def clean
    @help_ex_window.hide if @help_ex_window
  end

点评

真的要去吃饭了。。。饿傻了。我这解决方法也挺粗暴的,太饿。。。  发表于 2016-1-28 13:02
需要购买本人MV插件必须先加wx好友。加不上wx就是本人忙,没时间卖。原则上太久以前的插件也不想卖,因为我也忘了,维护上会不给力。wx名:alskyif    本人插件地址:
   LCK_SRPG梦幻模拟战、火焰纹章类系统
   究极立绘ADV系统

   究极换装统合系统
   究极! 回想与CG系统
   消息文字的距离调整  
   自动返回上一张地图
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-8 05:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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