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

Project1

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

[RMVA发布] 装备强化脚本再改进!

[复制链接]

Lv1.梦旅人

梦石
0
星屑
243
在线时间
341 小时
注册时间
2010-9-5
帖子
70
跳转到指定楼层
1
发表于 2013-10-18 19:37:36 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 令狐林 于 2013-10-18 23:52 编辑

使用的是wyongcan制作、62505139改进的装备强化脚本,具体更新如下:
#1.增加武器的魔法攻击强化提升效果,与物理攻击提升原理相同,但数值不同;
#2.增加防具的魔法防御强化提升效果,与物理魔法提升原理相同,但数值不同;
#3.优化升级成功概率及提高概率宝石,使之符合我自己的游戏--!;
#4.再次降低强化后的数值,一是提升百分比降低,二是基数5降低为3;
#5.把to_int显示改为floor,似乎更能和系统的显示数值相匹配;
#6.优化装备帮助增强脚本,使之不再显示小数点;
#7.增加强化成功、强化失败音效,在Audio/SE/中放入以此为名字的音效文件;
#8.优化部分说明文字。

用了一下午时间修改的,现在连晚饭都没吃…………

帮助增强脚本:
RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ 装备说明增强
  4. #------------------------------------------------------------------------------
  5. #  修改了说明窗口,增强了装备的说明 作者:wyongcan  发布于66RPG   转载请注明
  6. #==============================================================================
  7. module Help
  8.   CODE ={
  9.     11 => "属性抗性",
  10.     12 => "弱化抗性",
  11.     13 => "状态抗性",
  12.     14 => "状态免疫",
  13.     21 => "普通能力",
  14.     22 => "添加能力",
  15.     23 => "特殊能力",
  16.     31 => "攻击附带属性",
  17.     32 => "攻击附带状态",
  18.     33 => "修正攻击速度",
  19.     34 => "添加攻击次数",
  20.     41 => "添加技能类型",
  21.     42 => "禁用技能类型",
  22.     43 => "添加技能",
  23.     44 => "禁用技能",
  24.     51 => "可装备武器类型",
  25.     52 => "可装备护甲类型",
  26.     53 => "固定装备",
  27.     54 => "禁用装备",
  28.     55 => "装备风格",
  29.     61 => "添加行动次数",
  30.     62 => "特殊标志",
  31.     63 => "消失效果",
  32.     64 => "队伍能力"}
  33.   #特殊标志
  34.   FLAG ={
  35.                 0 => "自动战斗",
  36.                 1 => "擅长防御",
  37.                 2 => "保护弱者",
  38.                 3 => "特技专注"}
  39.   #普通能力
  40.         PARAM ={
  41.                 0 => "最大HP",
  42.                 1 => "最大MP",
  43.                 2 => "物理攻击",
  44.                 3 => "物理防御",
  45.                 4 => "魔法攻击",
  46.                 5 => "魔法防御",
  47.                 6 => "敏 捷 值",
  48.                 7 => "幸 运 值"}
  49.   #添加能力
  50.         XPARAM ={
  51.                 0 => "物理命中几率:",
  52.                 1 => "物理闪避几率:",
  53.                 2 => "必杀几率:",
  54.                 3 => "必杀闪避几率:",
  55.                 4 => "魔法闪避几率:",
  56.                 5 => "魔法反射几率:",
  57.                 6 => "物理反击几率:",
  58.                 7 => "体力值再生速度:",
  59.                 8 => "魔力值再生速度:",
  60.                 9 => "特技值再生速度:"}
  61.   #特殊能力
  62.         SPARAM ={
  63.                 0 => "受到攻击的几率",
  64.                 1 => "防御效果比率",
  65.                 2 => "恢复效果比率",
  66.                 3 => "药理知识",
  67.                 4 => "MP消费率",
  68.                 5 => "TP消耗率",
  69.                 6 => "物理伤害加成",
  70.                 7 => "魔法伤害加成",
  71.                 8 => "地形伤害加成",
  72.                 9 => "经验获得加成"}
  73. #~   #效果范围
  74. #~         SCOPE ={
  75. #~                 0 => "特殊",
  76. #~                 1 => "单个敌人",
  77. #~                 2 => "全体敌人" ,
  78. #~                 3 => "一个随机敌人",
  79. #~                 4 => "两个随机敌人",
  80. #~                 5 => "三个随机敌人",
  81. #~                 6 => "四个随机敌人",
  82. #~                 7 => "单个队友",
  83. #~                 8 => "全体队友",
  84. #~                 9 => "单个队友(无法战斗)",
  85. #~                 10 => "全体队友(无法战斗)",
  86. #~                 11 => "使用者"}
  87.         @队伍能力 ={
  88.                 0 => "遇敌几率减半",
  89.                 1 => "随机遇敌无效",
  90.                 2 => "敌人偷袭无效",
  91.                 3 => "先制攻击几率上升",
  92.                 4 => "获得金钱数量双倍",
  93.                 5 => "物品掉落几率双倍"}
  94.   def self.ready
  95.     @状态 = {}
  96.     @武器类型 = {}
  97.     @防具类型 = {}
  98.     @属性 = {}
  99.     $data_states.each{|x| @状态[x.id] = x.name if x != nil}
  100.     elements = $data_system.elements
  101.     weapon_types = $data_system.weapon_types
  102.     armor_types = $data_system.armor_types
  103.     elements.each_with_index{|x,y| @属性[y] = x if x != ""}
  104.     weapon_types.each_with_index{|x,y| @武器类型[y] = x if x != ""}
  105.     armor_types.each_with_index{|x,y| @防具类型[y] = x if x != ""}
  106.   end
  107.   def self.getequiphelp(equip)
  108.     help = ""
  109.     param = []
  110.     equip.params.each_with_index{|x,y| param.push([PARAM[y],x])}
  111.     param = param.select{|x| x[1] != 0}
  112.     param.each{|x| help += x[0] + ":" + x[1].floor.to_s + "\n"}
  113.     features = equip.features
  114.     features.select{|x| x.code == 55}.each{|x| help += CODE[x.code] + ":双持武器" + "\n"}
  115. #    features.select{|x| x.code == 11}.each{|x| help += CODE[x.code] + ":" + @属性[x.data_id] + "*" + x.value.floor.to_s + "\n"}
  116.     features.select{|x| x.code == 12}.each{|x| help += CODE[x.code] + ":" + PARAM[x.data_id] + "*" + x.value.floor.floor.to_s + "\n"}
  117.     features.select{|x| x.code == 13}.each{|x| help += CODE[x.code] + ":" + @状态[x.data_id] + "*" + x.value.floor.to_s + "\n"}
  118. #    features.select{|x| x.code == 14}.each{|x| help += CODE[x.code] + ":" + @状态[x.data_id] + "\n"}
  119. #    features.select{|x| x.code == 31}.each{|x| help += CODE[x.code] + ":" + @属性[x.data_id] + "\n"}
  120. #    features.select{|x| x.code == 32}.each{|x| help += CODE[x.code] + ":" + @状态[x.data_id] + "+" + x.value.floor.to_s + "\n"}
  121.     features.select{|x| x.code == 33}.each{|x| help += CODE[x.code] + ":" + x.value.floor.to_s + "\n"}
  122.     features.select{|x| x.code == 34}.each{|x| help += CODE[x.code] + ":" + x.value.floor.to_s + "\n"}
  123.     features.select{|x| x.code == 41}.each{|x| help += CODE[x.code] + ":" + (x.data_id == 1 ? "特技" : "魔法")  + "\n"}
  124.     features.select{|x| x.code == 42}.each{|x| help += CODE[x.code] + ":" + (x.data_id == 1 ? "特技" : "魔法")  + "\n"}
  125.     features.select{|x| x.code == 43}.each{|x| help += CODE[x.code] + ":" + $data_skills[x.data_id].name  + "\n"}
  126.     features.select{|x| x.code == 44}.each{|x| help += CODE[x.code] + ":" + $data_skills[x.data_id].name  + "\n"}
  127.     features.select{|x| x.code == 51}.each{|x| help += CODE[x.code] + ":" + @武器类型[x.data_id]  + "\n"}
  128.     features.select{|x| x.code == 52}.each{|x| help += CODE[x.code] + ":" + @防具类型[x.data_id]  + "\n"}
  129.     features.select{|x| x.code == 61}.each{|x| help += CODE[x.code] + ":" + x.value.floor.to_s  + "\n"}
  130.     features.select{|x| x.code == 62}.each{|x| help += CODE[x.code] + ":" + FLAG[x.data_id]  + "\n"}
  131.     features.select{|x| x.code == 64}.each{|x| help += CODE[x.code] + ":" + @队伍能力[x.data_id]  + "\n"}
  132.     featuresparam = []
  133.     featuresparam.push features.select{|x| x.code == 21}
  134.     featuresparam.push features.select{|x| x.code == 22}
  135.     featuresparam.push features.select{|x| x.code == 23}
  136.     featuresparam[0].each{|x| help += PARAM[x.data_id] + "*" + x.value.to_s + "\n"}
  137.     featuresparam[1].each{|x| help += XPARAM[x.data_id] + x.value.to_s + "\n"}
  138.     featuresparam[2].each{|x| help += SPARAM[x.data_id] + "*" + x.value.to_s + "\n"}
  139.     help
  140.   end
  141.   def self.getline(text,maxtext)
  142.     xtext = []
  143.     line = 0
  144.     text.each_line{|x| xtext.push x.sub(/\n/){}}
  145.     xtext.each{|x| x.size % maxtext != 0 ? line += x.size / maxtext + 1 : line += x.size / maxtext}
  146.     line
  147.   end
  148. end
  149. #==============================================================================
  150. # ■ Window_Help
  151. #------------------------------------------------------------------------------
  152. #  显示特技和物品等的说明、以及角色状态的窗口
  153. #==============================================================================
  154.  
  155. class Window_Help < Window_Base
  156.   #--------------------------------------------------------------------------
  157.   # ● 初始化对象
  158.   #--------------------------------------------------------------------------
  159.   def initialize(line_number = 0)
  160.     super(0, 0, 210, fitting_height(line_number))
  161.     self.z = 150
  162.     contents.font.size = 14
  163.     hide
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ● 设置内容
  167.   #--------------------------------------------------------------------------
  168.   def set_text(text)
  169.     if text != @text
  170.       @text = text
  171.       refresh
  172.     end
  173.   end
  174.   #--------------------------------------------------------------------------
  175.   # ● 清除
  176.   #--------------------------------------------------------------------------
  177.   def clear
  178.     set_text("")
  179.   end
  180.   #--------------------------------------------------------------------------
  181.   # ● 更新帮助位置
  182.   #--------------------------------------------------------------------------
  183.   def uppos(index,rect,window)
  184.     self.height = fitting_height2(Help.getline(@xtext,13))
  185.     create_contents
  186.     contents.font.size = 14
  187.     rect.x -= window.ox
  188.     rect.y -= window.oy
  189.     ax = rect.x + rect.width + 10
  190.     ax = rect.x - self.width + 10 if ax + self.width > window.width + 10
  191.     ax += window.x
  192.     ax = 0 if ax < 0
  193.     ay = rect.y + rect.height
  194.     ay = rect.y - self.height if ay + self.height > window.height
  195.     ay += window.y
  196.     ay = 0 if ay < 0
  197.     self.x = ax
  198.     self.y = ay
  199.     set_text(@xtext)
  200.     show
  201.   end
  202.   #--------------------------------------------------------------------------
  203.   # ● 设置物品
  204.   #     item : 技能、物品等
  205.   #--------------------------------------------------------------------------
  206.   def set_item(item)
  207.     if item == nil
  208.       set_text("")
  209.       return
  210.     end
  211.     @xtext = ""
  212.     @xtext = "名称:" + item.name + "\n"
  213.     @xtext += "介绍:" + item.description + "\n"
  214.     @xtext += "价格:" + item.price.floor.to_s + "\n" if item.is_a?(RPG::EquipItem) || item.is_a?(RPG::Item)
  215.     @xtext += Help.getequiphelp(item) if item.is_a?(RPG::EquipItem)
  216.     @xtext = @xtext[0,@text.size - 2] if @xtext[@xtext.size - 2,2] == "\n"
  217.   end
  218.   #--------------------------------------------------------------------------
  219.   # ● 刷新
  220.   #--------------------------------------------------------------------------
  221.   def refresh
  222.     contents.clear
  223.     hide if @text == ""
  224.     draw_text_ex(4, 0, @text,width,40,false)
  225.   end
  226. end
  227.  
  228. class Window_Base < Window
  229.   #--------------------------------------------------------------------------
  230.   # ● 计算窗口显示指定行数时的应用高度2*************************
  231.   #--------------------------------------------------------------------------
  232.   def fitting_height2(line_number)
  233.     line_number * contents.font.size + standard_padding * 2
  234.   end
  235. #~ draw_text_ex的增强,使其可以自动换行  原作者:叶子 修改:wyongcan
  236.   #--------------------------------------------------------------------------
  237.   # ● 绘制带有控制符的文本内容
  238.   #   如果传递了width参数的话,会自动换行
  239.   #--------------------------------------------------------------------------
  240.   def draw_text_ex(x, y, text, width = nil,textwidth = nil,normalfont = true)
  241.     reset_font_settings if normalfont == true
  242.     text = convert_escape_characters(text)
  243.     pos = {:x => x, :y => y, :new_x => x, :height => calc_line_height(text)}
  244.     if width != nil
  245.       pos[:height] = contents.font.size
  246.       pos[:width] = width
  247.       pos[:textwidth] = textwidth
  248.     end
  249.     process_character(text.slice!(0, 1), text, pos) until text.empty?
  250.   end
  251.   #--------------------------------------------------------------------------
  252.   # ● 文字的处理
  253.   #     c    : 文字
  254.   #     text : 绘制处理中的字符串缓存(字符串可能会被修改)
  255.   #     pos  : 绘制位置 {:x, :y, :new_x, :height}
  256.   #--------------------------------------------------------------------------
  257.   def process_character(c, text, pos)
  258.     case c
  259.     when "\r"   # 回车
  260.       return
  261.     when "\n"   # 换行
  262.       process_new_line(text, pos)
  263.     when "\f"   # 翻页
  264.       process_new_page(text, pos)
  265.     when "\e"   # 控制符
  266.       process_escape_character(obtain_escape_code(text), text, pos)
  267.     else        # 普通文字
  268.       pos[:textwidth] == nil ? text_width = text_size(c).width : text_width = pos[:textwidth]
  269.       if pos[:width] != nil && pos[:x] - pos[:new_x] + text_width > pos[:width]
  270.         process_new_line(text, pos)
  271.       end
  272.       process_normal_character(c, pos)
  273.     end
  274.   end
  275. end
  276.  
  277. class Window_ItemList < Window_Selectable
  278.   #--------------------------------------------------------------------------
  279.   # ● 更新帮助内容
  280.   #--------------------------------------------------------------------------
  281.   def update_help
  282.     @help_window.set_item(item)
  283.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil
  284.   end
  285. end
  286.  
  287. class Window_SkillList < Window_Selectable
  288.   #--------------------------------------------------------------------------
  289.   # ● 更新帮助内容
  290.   #--------------------------------------------------------------------------
  291.   def update_help
  292.     @help_window.set_item(item)
  293.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil
  294.   end
  295. end
  296.  
  297. class Window_ShopBuy < Window_Selectable
  298.   #--------------------------------------------------------------------------
  299.   # ● 更新帮助内容
  300.   #--------------------------------------------------------------------------
  301.   def update_help
  302.     @help_window.set_item(item) if @help_window
  303.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil && @help_window
  304.     @status_window.item = item if @status_window
  305.   end
  306. end
  307.  
  308. class Window_EquipSlot < Window_Selectable
  309.   #--------------------------------------------------------------------------
  310.   # ● 更新帮助内容
  311.   #--------------------------------------------------------------------------
  312.   def update_help
  313.     super
  314.     @help_window.set_item(item) if @help_window
  315.     @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil && @help_window
  316.     @status_window.set_temp_actor(nil) if @status_window
  317.   end
  318. end
  319.  
  320. class Scene_Shop < Scene_MenuBase
  321.         alias on_sell_ok_old on_sell_ok
  322.         def on_sell_ok
  323.                 on_sell_ok_old
  324.                 @help_window.hide
  325.         end
  326.         alias on_buy_ok_old on_buy_ok
  327.         def on_buy_ok
  328.                 on_buy_ok_old
  329.                 @help_window.hide
  330.         end
  331.         alias on_number_ok_old on_number_ok
  332.         def on_number_ok
  333.                 on_number_ok_old
  334.     @help_window.refresh
  335.                 @help_window.show
  336.         end
  337.         alias on_number_cancel_old on_number_cancel
  338.         def on_number_cancel
  339.                 on_number_cancel_old
  340.     @help_window.refresh
  341.                 @help_window.show
  342.         end
  343. end
  344.  
  345. class Scene_Title < Scene_Base
  346.   alias start_old start
  347.   def start
  348.     start_old
  349.     Help.ready
  350.   end
  351. end
  352. class Window_Base < Window
  353.         alias old_process_new_line process_new_line
  354.         def process_new_line(text, pos)
  355.     old_process_new_line(text, pos)
  356.                 pos[:height] = contents.font.size if pos[:width] != nil
  357.         end
  358. end
  359. class Scene_ItemBase < Scene_MenuBase
  360.         alias old_on_actor_cancel on_actor_cancel
  361.   def on_actor_cancel
  362.     old_on_actor_cancel
  363.         @help_window.refresh
  364.   end
  365.         alias old_on_actor_ok on_actor_ok
  366.   def on_actor_ok
  367.     old_on_actor_ok
  368.         @help_window.refresh
  369.   end
  370. end
  371.  
  372. class Scene_Battle < Scene_Base
  373.   def create_help_window
  374.     @help_window = Window_Help2.new
  375.     @help_window.visible = false
  376.   end
  377. end


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

本人也是初接触Ruby语言,只会简单修改一下下~~
特别说明,强化成功显示的数值,以及装备上显示的数值,还有装备后的实际效果数值,这之间会有微小差异,由于小数点后面的小数导致,目前不知道怎么解决
附图片:

范例工程.zip

1.73 MB, 下载次数: 492

售价: 1 星屑  [记录]

范例

评分

参与人数 1星屑 +60 收起 理由
acn00269 + 60 辛苦了, 塞糖

查看全部评分

点击即可领养:

Lv1.梦旅人

梦石
0
星屑
50
在线时间
5 小时
注册时间
2017-8-8
帖子
3
21
发表于 2017-8-18 20:07:38 | 只看该作者
LZ...能不能帮帮我,我使用了你的脚本,如果不把装备帮助强化脚本删除,战斗的时候就会显示脚本错误,但是删除了这个脚本就没事。还有一个问题就是,我使用了你的脚本,强化很方便也很好用,但是强化满级后退出强化系统重新进入就会脚本错误。是不是和我之前自己加的脚本矛盾勒?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
5 小时
注册时间
2017-8-8
帖子
3
20
发表于 2017-8-16 17:14:01 | 只看该作者
LZ我买了范例,虽然没有问题,额.....但是有一个问题就是,我明明选择的是强化保护卷(保护装备强化失败时不消失)效果是一样的,但是下面需要的材料框却显示的是等级保护卷(失败时等级不降级)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
70
在线时间
175 小时
注册时间
2014-11-15
帖子
69
19
发表于 2015-9-19 19:48:32 | 只看该作者
物品的颜色描绘显示不出来。。。只有武器的有颜色。。楼楼还能看到么。有木有办法解决一下。。很需要。蟹蟹!T  T。。

点评

不用了。。已经解决了!!。。蟹蟹楼主的修改!!  发表于 2015-9-19 21:35
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
341
在线时间
453 小时
注册时间
2009-10-2
帖子
125
18
发表于 2015-8-22 19:11:32 | 只看该作者
这个是什么原因

360截图20150822191034787.jpg (21.82 KB, 下载次数: 31)

360截图20150822191034787.jpg
...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
686
在线时间
1 小时
注册时间
2015-8-5
帖子
2
17
发表于 2015-8-6 20:39:00 | 只看该作者
你弄的感觉看不懂~~~我弄的装备强化真的很简单~~就是在数据库里面弄2个装备名字设置一下就好了
强化是百分百成功的只是会花掉一些钱
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
641 小时
注册时间
2015-7-29
帖子
211
16
发表于 2015-8-2 21:09:23 | 只看该作者
一进战斗就出错。。Window_help   14行   求解决        我就拿了那个物品显示的脚本 - -   就是那个物品显示的有错误
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
243
在线时间
341 小时
注册时间
2010-9-5
帖子
70
15
 楼主| 发表于 2015-3-31 15:37:52 | 只看该作者
银仔z 发表于 2015-3-28 21:00
我使用了楼主的脚本结果强化时。。。。

这是缺少强化音效文件,自己找个音效放进去,改名为强化成功即可
点击即可领养:
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2015-3-30
帖子
12
14
发表于 2015-3-30 23:30:57 | 只看该作者
物品增减脚本
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
1015
在线时间
9 小时
注册时间
2015-3-27
帖子
1
13
发表于 2015-3-28 21:00:23 | 只看该作者
我使用了楼主的脚本结果强化时。。。。

QQ截图20150328205913.png (35.53 KB, 下载次数: 32)

QQ截图20150328205913.png

点评

看起来,你像是没有把范例里面 强化成功的ogg格式的文件给复制过去。  发表于 2015-6-24 21:06
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-18 16:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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