查看: 11658|回复: 20

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

[复制链接]
梦石
0
星屑
240
在线时间
341 小时
注册时间
2010-9-5
回帖
66
发表于 2013-10-18 19:37:36 | 显示全部楼层 |阅读模式

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

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

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

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

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

帮助增强脚本:
[pre lang="ruby" line="1"]#encoding:utf-8
#==============================================================================
# ■ 装备说明增强
#------------------------------------------------------------------------------
#  修改了说明窗口,增强了装备的说明 作者:wyongcan  发布于66RPG   转载请注明
#==============================================================================
module Help
  CODE ={
    11 => "属性抗性",
    12 => "弱化抗性",
    13 => "状态抗性",
    14 => "状态免疫",
    21 => "普通能力",
    22 => "添加能力",
    23 => "特殊能力",
    31 => "攻击附带属性",
    32 => "攻击附带状态",
    33 => "修正攻击速度",
    34 => "添加攻击次数",
    41 => "添加技能类型",
    42 => "禁用技能类型",
    43 => "添加技能",
    44 => "禁用技能",
    51 => "可装备武器类型",
    52 => "可装备护甲类型",
    53 => "固定装备",
    54 => "禁用装备",
    55 => "装备风格",
    61 => "添加行动次数",
    62 => "特殊标志",
    63 => "消失效果",
    64 => "队伍能力"}
  #特殊标志
  FLAG ={
                0 => "自动战斗",
                1 => "擅长防御",
                2 => "保护弱者",
                3 => "特技专注"}
  #普通能力
        PARAM ={
                0 => "最大HP",
                1 => "最大MP",
                2 => "物理攻击",
                3 => "物理防御",
                4 => "魔法攻击",
                5 => "魔法防御",
                6 => "敏 捷 值",
                7 => "幸 运 值"}
  #添加能力
        XPARAM ={
                0 => "物理命中几率:",
                1 => "物理闪避几率:",
                2 => "必杀几率:",
                3 => "必杀闪避几率:",
                4 => "魔法闪避几率:",
                5 => "魔法反射几率:",
                6 => "物理反击几率:",
                7 => "体力值再生速度:",
                8 => "魔力值再生速度:",
                9 => "特技值再生速度:"}
  #特殊能力
        SPARAM ={
                0 => "受到攻击的几率",
                1 => "防御效果比率",
                2 => "恢复效果比率",
                3 => "药理知识",
                4 => "MP消费率",
                5 => "TP消耗率",
                6 => "物理伤害加成",
                7 => "魔法伤害加成",
                8 => "地形伤害加成",
                9 => "经验获得加成"}
#~   #效果范围
#~         SCOPE ={
#~                 0 => "特殊",
#~                 1 => "单个敌人",
#~                 2 => "全体敌人" ,
#~                 3 => "一个随机敌人",
#~                 4 => "两个随机敌人",
#~                 5 => "三个随机敌人",
#~                 6 => "四个随机敌人",
#~                 7 => "单个队友",
#~                 8 => "全体队友",
#~                 9 => "单个队友(无法战斗)",
#~                 10 => "全体队友(无法战斗)",
#~                 11 => "使用者"}
        @队伍能力 ={
                0 => "遇敌几率减半",
                1 => "随机遇敌无效",
                2 => "敌人偷袭无效",
                3 => "先制攻击几率上升",
                4 => "获得金钱数量双倍",
                5 => "物品掉落几率双倍"}
  def self.ready
    @状态 = {}
    @武器类型 = {}
    @防具类型 = {}
    @属性 = {}
    $data_states.each{|x| @状态[x.id] = x.name if x != nil}
    elements = $data_system.elements
    weapon_types = $data_system.weapon_types
    armor_types = $data_system.armor_types
    elements.each_with_index{|x,y| @属性[y] = x if x != ""}
    weapon_types.each_with_index{|x,y| @武器类型[y] = x if x != ""}
    armor_types.each_with_index{|x,y| @防具类型[y] = x if x != ""}
  end
  def self.getequiphelp(equip)
    help = ""
    param = []
    equip.params.each_with_index{|x,y| param.push([PARAM[y],x])}
    param = param.select{|x| x[1] != 0}
    param.each{|x| help += x[0] + ":" + x[1].floor.to_s + "\n"}
    features = equip.features
    features.select{|x| x.code == 55}.each{|x| help += CODE[x.code] + ":双持武器" + "\n"}
#    features.select{|x| x.code == 11}.each{|x| help += CODE[x.code] + ":" + @属性[x.data_id] + "*" + x.value.floor.to_s + "\n"}
    features.select{|x| x.code == 12}.each{|x| help += CODE[x.code] + ":" + PARAM[x.data_id] + "*" + x.value.floor.floor.to_s + "\n"}
    features.select{|x| x.code == 13}.each{|x| help += CODE[x.code] + ":" + @状态[x.data_id] + "*" + x.value.floor.to_s + "\n"}
#    features.select{|x| x.code == 14}.each{|x| help += CODE[x.code] + ":" + @状态[x.data_id] + "\n"}
#    features.select{|x| x.code == 31}.each{|x| help += CODE[x.code] + ":" + @属性[x.data_id] + "\n"}
#    features.select{|x| x.code == 32}.each{|x| help += CODE[x.code] + ":" + @状态[x.data_id] + "+" + x.value.floor.to_s + "\n"}
    features.select{|x| x.code == 33}.each{|x| help += CODE[x.code] + ":" + x.value.floor.to_s + "\n"}
    features.select{|x| x.code == 34}.each{|x| help += CODE[x.code] + ":" + x.value.floor.to_s + "\n"}
    features.select{|x| x.code == 41}.each{|x| help += CODE[x.code] + ":" + (x.data_id == 1 ? "特技" : "魔法")  + "\n"}
    features.select{|x| x.code == 42}.each{|x| help += CODE[x.code] + ":" + (x.data_id == 1 ? "特技" : "魔法")  + "\n"}
    features.select{|x| x.code == 43}.each{|x| help += CODE[x.code] + ":" + $data_skills[x.data_id].name  + "\n"}
    features.select{|x| x.code == 44}.each{|x| help += CODE[x.code] + ":" + $data_skills[x.data_id].name  + "\n"}
    features.select{|x| x.code == 51}.each{|x| help += CODE[x.code] + ":" + @武器类型[x.data_id]  + "\n"}
    features.select{|x| x.code == 52}.each{|x| help += CODE[x.code] + ":" + @防具类型[x.data_id]  + "\n"}
    features.select{|x| x.code == 61}.each{|x| help += CODE[x.code] + ":" + x.value.floor.to_s  + "\n"}
    features.select{|x| x.code == 62}.each{|x| help += CODE[x.code] + ":" + FLAG[x.data_id]  + "\n"}
    features.select{|x| x.code == 64}.each{|x| help += CODE[x.code] + ":" + @队伍能力[x.data_id]  + "\n"}
    featuresparam = []
    featuresparam.push features.select{|x| x.code == 21}
    featuresparam.push features.select{|x| x.code == 22}
    featuresparam.push features.select{|x| x.code == 23}
    featuresparam[0].each{|x| help += PARAM[x.data_id] + "*" + x.value.to_s + "\n"}
    featuresparam[1].each{|x| help += XPARAM[x.data_id] + x.value.to_s + "\n"}
    featuresparam[2].each{|x| help += SPARAM[x.data_id] + "*" + x.value.to_s + "\n"}
    help
  end
  def self.getline(text,maxtext)
    xtext = []
    line = 0
    text.each_line{|x| xtext.push x.sub(/\n/){}}
    xtext.each{|x| x.size % maxtext != 0 ? line += x.size / maxtext + 1 : line += x.size / maxtext}
    line
  end
end
#==============================================================================
# ■ Window_Help
#------------------------------------------------------------------------------
#  显示特技和物品等的说明、以及角色状态的窗口
#==============================================================================

class Window_Help < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize(line_number = 0)
    super(0, 0, 210, fitting_height(line_number))
    self.z = 150
    contents.font.size = 14
    hide
  end
  #--------------------------------------------------------------------------
  # ● 设置内容
  #--------------------------------------------------------------------------
  def set_text(text)
    if text != @text
      @text = text
      refresh
    end
  end
  #--------------------------------------------------------------------------
  # ● 清除
  #--------------------------------------------------------------------------
  def clear
    set_text("")
  end
  #--------------------------------------------------------------------------
  # ● 更新帮助位置
  #--------------------------------------------------------------------------
  def uppos(index,rect,window)
    self.height = fitting_height2(Help.getline(@xtext,13))
    create_contents
    contents.font.size = 14
    rect.x -= window.ox
    rect.y -= window.oy
    ax = rect.x + rect.width + 10
    ax = rect.x - self.width + 10 if ax + self.width > window.width + 10
    ax += window.x
    ax = 0 if ax < 0
    ay = rect.y + rect.height
    ay = rect.y - self.height if ay + self.height > window.height
    ay += window.y
    ay = 0 if ay < 0
    self.x = ax
    self.y = ay
    set_text(@xtext)
    show
  end
  #--------------------------------------------------------------------------
  # ● 设置物品
  #     item : 技能、物品等
  #--------------------------------------------------------------------------
  def set_item(item)
    if item == nil
      set_text("")
      return
    end
    @xtext = ""
    @xtext = "名称:" + item.name + "\n"
    @xtext += "介绍:" + item.description + "\n"
    @xtext += "价格:" + item.price.floor.to_s + "\n" if item.is_a?(RPG::EquipItem) || item.is_a?(RPG::Item)
    @xtext += Help.getequiphelp(item) if item.is_a?(RPG::EquipItem)
    @xtext = @xtext[0,@text.size - 2] if @xtext[@xtext.size - 2,2] == "\n"
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    hide if @text == ""
    draw_text_ex(4, 0, @text,width,40,false)
  end
end

class Window_Base < Window
  #--------------------------------------------------------------------------
  # ● 计算窗口显示指定行数时的应用高度2*************************
  #--------------------------------------------------------------------------
  def fitting_height2(line_number)
    line_number * contents.font.size + standard_padding * 2
  end
#~ draw_text_ex的增强,使其可以自动换行  原作者:叶子 修改:wyongcan
  #--------------------------------------------------------------------------
  # ● 绘制带有控制符的文本内容
  #   如果传递了width参数的话,会自动换行
  #--------------------------------------------------------------------------
  def draw_text_ex(x, y, text, width = nil,textwidth = nil,normalfont = true)
    reset_font_settings if normalfont == true
    text = convert_escape_characters(text)
    pos = {:x => x, :y => y, :new_x => x, :height => calc_line_height(text)}
    if width != nil
      pos[:height] = contents.font.size
      pos[:width] = width
      pos[:textwidth] = textwidth
    end
    process_character(text.slice!(0, 1), text, pos) until text.empty?
  end
  #--------------------------------------------------------------------------
  # ● 文字的处理
  #     c    : 文字
  #     text : 绘制处理中的字符串缓存(字符串可能会被修改)
  #     pos  : 绘制位置 {:x, :y, :new_x, :height}
  #--------------------------------------------------------------------------
  def process_character(c, text, pos)
    case c
    when "\r"   # 回车
      return
    when "\n"   # 换行
      process_new_line(text, pos)
    when "\f"   # 翻页
      process_new_page(text, pos)
    when "\e"   # 控制符
      process_escape_character(obtain_escape_code(text), text, pos)
    else        # 普通文字
      pos[:textwidth] == nil ? text_width = text_size(c).width : text_width = pos[:textwidth]
      if pos[:width] != nil && pos[:x] - pos[:new_x] + text_width > pos[:width]
        process_new_line(text, pos)
      end
      process_normal_character(c, pos)
    end
  end
end

class Window_ItemList < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 更新帮助内容
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_item(item)
    @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil
  end
end

class Window_SkillList < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 更新帮助内容
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_item(item)
    @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil
  end
end

class Window_ShopBuy < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 更新帮助内容
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_item(item) if @help_window
    @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil && @help_window
    @status_window.item = item if @status_window
  end
end

class Window_EquipSlot < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 更新帮助内容
  #--------------------------------------------------------------------------
  def update_help
    super
    @help_window.set_item(item) if @help_window
    @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil && @help_window
    @status_window.set_temp_actor(nil) if @status_window
  end
end

class Scene_Shop < Scene_MenuBase
        alias on_sell_ok_old on_sell_ok
        def on_sell_ok
                on_sell_ok_old
                @help_window.hide
        end
        alias on_buy_ok_old on_buy_ok
        def on_buy_ok
                on_buy_ok_old
                @help_window.hide
        end
        alias on_number_ok_old on_number_ok
        def on_number_ok
                on_number_ok_old
    @help_window.refresh
                @help_window.show
        end
        alias on_number_cancel_old on_number_cancel
        def on_number_cancel
                on_number_cancel_old
    @help_window.refresh
                @help_window.show
        end
end

class Scene_Title < Scene_Base
  alias start_old start
  def start
    start_old
    Help.ready
  end
end
class Window_Base < Window
        alias old_process_new_line process_new_line
        def process_new_line(text, pos)
    old_process_new_line(text, pos)
                pos[:height] = contents.font.size if pos[:width] != nil
        end
end
class Scene_ItemBase < Scene_MenuBase
        alias old_on_actor_cancel on_actor_cancel
  def on_actor_cancel
    old_on_actor_cancel
        @help_window.refresh
  end
        alias old_on_actor_ok on_actor_ok
  def on_actor_ok
    old_on_actor_ok
        @help_window.refresh
  end
end

class Scene_Battle < Scene_Base
  def create_help_window
    @help_window = Window_Help2.new
    @help_window.visible = false
  end
end
[/pre]

装备强化(带装备颜色)代码:
[pre lang="ruby" line="1"]#==============================================================================
#==============================================================================
#再次改进:令狐林
#------------------------------------------------------------------------------
#更新内容:
#1.增加武器的魔法攻击强化提升效果,与物理攻击提升原理相同,但数值不同;
#2.增加防具的魔法防御强化提升效果,与物理魔法提升原理相同,但数值不同;
#3.优化升级成功概率及提高概率宝石,使之符合我自己的游戏--!;
#4.再次降低强化后的数值,一是提升百分比降低,二是基数5降低为3;
#5.把to_int显示改为floor,似乎更能和系统的显示数值相匹配;
#6.优化装备帮助增强脚本,使之不再显示小数点;
#7.增加强化中、强化成功、强化失败音效,在Audio/SE/中放入以此为名字的音效文件;
#8.优化部分说明文字。
#==============================================================================
#==============================================================================
# ■ 强化系统 增强版
#------------------------------------------------------------------------------
#  原强化系统  wyongcan制作
#  
#  改进: 62505139
#  增强版更新内容:
#  1. 与颜色脚本合并,
#  2.(重大修正!)修正了装备强化不提升原属性的百分比而只提升随机数的错误
#  2. 极大的修正了绝大部分数值,调节了游戏平衡
#  3. 修正了强化时的说明与实际数值不符的错误
#  4.(细节) 修正了说明语言
#==============================================================================

module Qiang
$maxlv = 8  #最高升到的级数
$gailv = [100,90,80,70,55,40,25,10,5] #每级提升概率
$gemlv = [[60,27],[10,28],[20,29],[30,30]] #使用宝石提高的几率  [提高几率,宝石ID]
$uplv = [[2,34],[4,35],[6,36],[8,33]] #强化所需要的强化石 [最大强化到的等级,强化石ID]
$xxlv = [0,7,14,20,25,33,40,44,50] #每级强化后失败物品消失的几率
$jjlv = [0,20,40,65,80,100,100,100,100] #每级强化后失败物品降级的几率
$tsnl = [1,1,1,2,2,2,3,3,3] #每级强化提升能力的百分比
$tswp = [31,32] # 意思是:如果有31号物品则失败后物品不消失,如果有32号物品则失败后物品不降级
#武器强化后的计算公式为: 原攻击 * (1 + 提升能力百分比) + (0到当前强化级数随机) * 5(已改为3) + 当前强化级数
$gemlv.sort!
$uplv.sort!
$当前使用宝石id = 0
$当前使用宝石加成率 = 0
$强化哈希表 = {
"最高等级" => $maxlv ,
"每级概率" => $gailv ,
"宝石效果" => $gemlv ,
"消失几率" => $xxlv  ,
"降级几率" => $jjlv  ,
"提升能力" => $tsnl  ,
"特殊物品" => $tswp  ,
"强化材料" => $uplv  }
def self.idlostitem(id,amount = 1)
  $game_party.lose_item(idgetitem(id),amount)
end

def self.idlostequip(id,weapon = true,amount = 1)
  weapon == true ? $game_party.lose_item($data_weapons[id],amount,true) : $game_party.lose_item($data_armors[id],amount,true)
end

def self.idgainequip(id,weapon = true,amount = 1)
  weapon == true ? $game_party.gain_item($data_weapons[id],amount,true) : $game_party.gain_item($data_armors[id],amount,true)
end

def self.idgetitem(id)
  $data_items[id]
end

def self.equipable?(id,weapon = true)
  weapon == true ? weaponupisnil(id) : armorupisnil(id)
  weapon == true ? equip = $data_weapons[id].dup : equip = $data_armors[id].dup
  price = equip.price
  @needmoney = price * equip.up
  if @needmoney == 0
    @needmoney = price / 2
  end
#循环取出需要的强化材料
  temp = false
  for i in $强化哈希表["强化材料"]
    if equip.up < i[0]
      @lostitem = idgetitem i[1]
      $game_party.has_item?(idgetitem(i[1])) ? temp = true : temp = false
      break
    end
  end
  $game_party.gold >= @needmoney && temp == true ? true : false
end

def self.upweapon (id)
  $message = ""
  success = false
  weaponupisnil(id)
  weapon = $data_weapons[id].dup
  gl = 0
  fangb = false
  fangj = false
  return unless weapon.up < $强化哈希表["最高等级"] && weaponupable?(id)
  loststh
  $message += "本次强化,共消耗:" + Vocab::currency_unit + " " + @needmoney.to_s
  $message += " " + @lostitem.name + "\n "
  gl = $强化哈希表["每级概率"][weapon.up]
  if $usegem == true
    gl += $当前使用宝石加成率
    idlostitem($当前使用宝石id)
    $message += idgetitem($当前使用宝石id).name + " "
  end
  if $fangb == true
    fangb = true
    idlostitem $强化哈希表["特殊物品"][0]
    $message += idgetitem($强化哈希表["特殊物品"][0]).name + " "
  end
  if $fangj == true
    fangj = true
    idlostitem $强化哈希表["特殊物品"][1]
    $message += idgetitem($强化哈希表["特殊物品"][1]).name + " "
  end
  suiji = rand (100)
  if suiji <= gl
    success = true
  end
  $message += "\n结果:"
  if success == true
    Audio.se_play("Audio/SE/" + "强化成功", 80, 100)
    $message += "强化成功"
    idlostequip id
    weapon.id = $data_weapons.size
    params = weapon.params.dup
    params[2] *= 100 + $强化哈希表["提升能力"][weapon.up]
    params[2] /= 100
    params[2] += rand(weapon.up) * 3
    params[2] += 1 if params[2] == weapon.params[2]
    params[4] *= 100 + $强化哈希表["提升能力"][weapon.up]
    params[4] /= 100
    params[4] += rand(weapon.up) * 3
    params[4] += 1 if params[4] == weapon.params[4]
    $message += " 物攻+" + (params[2] - weapon.params[2]).floor.to_s
    $message += " 魔攻+" + (params[4] - weapon.params[4]).floor.to_s
    weapon.up += 1
    $data_weapons.insert $data_weapons.size,weapon
    $data_weapons[$data_weapons.size-1].params = params
    idgainequip weapon.id
  else
    Audio.se_play("Audio/SE/" + "强化失败", 80, 100)
    $message += "强化失败"
    suiji = rand (100)
    if suiji <= $强化哈希表["消失几率"][weapon.up]
      if fangb != true
      $message += ",道具消失"
      idlostequip id
      else
      $message += ",由于" + idgetitem($强化哈希表["特殊物品"][0]).name + "的作用,道具未消失"
      end
    else
      suiji = rand (100)
      if suiji <= $强化哈希表["降级几率"][weapon.up]
        if fangj == false && weapon.up != 0
          $message += ",道具降级"
          params = weapon.params.dup
          params[2] -= rand(weapon.up) * 3
          params[2] *= 100
          params[2] /= 100 + $强化哈希表["提升能力"][weapon.up]
          params[4] -= rand(weapon.up) * 3
          params[4] *= 100
          params[4] /= 100 + $强化哈希表["提升能力"][weapon.up]
          weapon.params = params
          weapon.up -= 1
          $data_weapons[id] = weapon
        else
          $message += ",由于" + idgetitem($强化哈希表["特殊物品"][1]).name + "的作用,道具未降级"
        end
      end
    end
  end
   $usegem = false
   $fangb = false
   $fangj = false
end

def self.weaponupisnil(id)
   $data_weapons[id].up = 0 unless $data_weapons[id].up != nil
end

def self.weaponupable?(id)
  equipable?(id)
end

def self.uparmor (id)
  $message = ""
  success = false
  armorupisnil(id)
  armor = $data_armors[id].dup
  gl = 0
  fangb = false
  fangj = false
  return unless armor.up < $强化哈希表["最高等级"] && armorupable?(id)
  loststh
  $message += "本次强化,共消耗:" + Vocab::currency_unit + " " + @needmoney.to_s
  $message += " " + @lostitem.name + "\n "
  gl = $强化哈希表["每级概率"][armor.up]
  if $usegem == true
    gl += $当前使用宝石加成率
    idlostitem($当前使用宝石id)
    $message += idgetitem($当前使用宝石id).name + " "
  end
  if $fangb == true
    fangb = true
    idlostitem $强化哈希表["特殊物品"][0]
    $message += idgetitem($强化哈希表["特殊物品"][0]).name + " "
  end
  if $fangj == true
    fangj = true
    idlostitem $强化哈希表["特殊物品"][1]
    $message += idgetitem($强化哈希表["特殊物品"][1]).name + " "
  end
  suiji = rand (100)
  if suiji <= gl
    success = true
  end
  $message += "\n结果:"
  if success == true
    Audio.se_play("Audio/SE/" + "强化成功", 80, 100)
    $message += "强化成功"
    idlostequip id,false
    armor.id = $data_armors.size
    params = armor.params.dup
    params[3] *= 100 + $强化哈希表["提升能力"][armor.up]
    params[3] /= 100
    params[3] += rand(armor.up) * 3
    params[3] += 1 if params[3] == armor.params[3]
    params[5] *= 100 + $强化哈希表["提升能力"][armor.up]
    params[5] /= 100
    params[5] += rand(armor.up) * 3
    params[5] += 1 if params[5] == armor.params[5]
    $message += " 物防+" + (params[3] - armor.params[3]).floor.to_s
    $message += " 魔防+" + (params[5] - armor.params[5]).floor.to_s
    armor.up += 1
    $data_armors.insert $data_armors.size,armor
    $data_armors[$data_armors.size-1].params = params
    idgainequip armor.id,false
  else
    Audio.se_play("Audio/SE/" + "强化失败", 80, 100)
    $message += "强化失败"
    suiji = rand (100)
    if suiji <= $强化哈希表["消失几率"][armor.up]
      if fangb != true
      $message += ",道具消失"
      idlostequip id,false
      else
      $message += ",由于" + idgetitem($强化哈希表["特殊物品"][0]).name + "的作用,道具未消失"
      end
    else
      suiji = rand (100)
      if suiji <= $强化哈希表["降级几率"][armor.up]
        if fangj == false && armor.up != 0
          $message += ",道具降级"
          params = armor.params.dup
          params[3] -= rand(armor.up) * 3
          params[3] *= 100
          params[3] /= 100 + $强化哈希表["提升能力"][armor.up]
          params[5] -= rand(armor.up) * 3
          params[5] *= 100
          params[5] /= 100 + $强化哈希表["提升能力"][armor.up]
          armor.params = params
          armor.up -= 1
          $data_armors[id] = armor
        else
          $message += ",由于" + idgetitem($强化哈希表["特殊物品"][1]).name + "的作用,道具未降级"
        end
      end
    end
  end
   $usegem = false
   $fangb = false
   $fangj = false
end

def self.armorupisnil(id)
   $data_armors[id].up = 0 unless $data_armors[id].up != nil
end
def self.armorupable?(id)
  equipable?(id,false)
end
def self.loststh()
   $game_party.lose_item(@lostitem,1)
   $game_party.lose_gold(@needmoney)
end
def self.needmoney
   @needmoney
end
def self.lostitem
   @lostitem
end
end
#==============================================================================
# ■ Scene_Qiang
#------------------------------------------------------------------------------
#  强化画面
#==============================================================================

class Scene_Qiang < Scene_MenuBase
  $wufang = true
  $usegem = false
  $fangb = false
  $fangj = false
  #--------------------------------------------------------------------------
  # ● 开始处理
  #--------------------------------------------------------------------------
  def start
    super
    create_help_window
    @help_window.hide
    create_qianghelp_window
    create_command_window
    create_qiangxz_window
    create_wu_window
    create_fang_window
    create_choosegem_window
  end
  #--------------------------------------------------------------------------
  # ● 生成说明窗口
  #--------------------------------------------------------------------------
  def create_qianghelp_window
    @qianghelp_window = Window_Qianghelp.new
    @qianghelp_window.y = Graphics.height - @qianghelp_window.height
    @qianghelp_window.viewport = @viewport
    @qianghelp_window.hide
  end
  #--------------------------------------------------------------------------
  # ● 生成选择宝石
  #--------------------------------------------------------------------------
  def create_choosegem_window
    @choosegem_window = Window_Choosegem.new
    @choosegem_window.y = Graphics.height - @choosegem_window.height
    @choosegem_window.viewport = @viewport
    @choosegem_window.z = 120
  end
  #--------------------------------------------------------------------------
  # ● 生成选择窗口
  #--------------------------------------------------------------------------
  def create_qiangxz_window
    @qiangxz_window = Window_Qiangxz.new
    @qiangxz_window.y = @help_window.height + fitting_height(5) /2
    @qiangxz_window.z = 110
    @qiangxz_window.viewport = @viewport
    @qiangxz_window.set_handler(:gem,    method(:qiangxz_gem))
    @qiangxz_window.set_handler(:fangb,    method(:qiangxz_fangb))
    @qiangxz_window.set_handler(:fangj,    method(:qiangxz_fangj))
    @qiangxz_window.set_handler(:ok, method(:qiangxz_ok))
    @qiangxz_window.set_handler(:cancel, method(:qiangxz_cancel))
    @qiangxz_window.hide
    @qiangxz_window.deactivate
  end
  #--------------------------------------------------------------------------
  # ● 生成指令窗口
  #--------------------------------------------------------------------------
  def create_command_window
    @command_window = Window_QiangCommand.new
    @command_window.viewport = @viewport
    @command_window.y = @help_window.height + fitting_height(3) /2
    @command_window.set_handler(:qiangwu,    method(:qiangwu))
    @command_window.set_handler(:qiangfang,   method(:qiangfang))
    @command_window.set_handler(:cancel, method(:return_scene))
  end
  #--------------------------------------------------------------------------
  # ● 生成武器强化窗口
  #--------------------------------------------------------------------------
  def create_wu_window
    @wu_window = Window_Qiangwu.new(@qianghelp_window,@qiangxz_window)
    @wu_window.viewport = @viewport
    @wu_window.y += @help_window.height
    @wu_window.hide
    @wu_window.help_window= @help_window
    @wu_window.set_handler(:cancel, method(:qiangwu_cancel))
    @wu_window.set_handler(:ok,     method(:qiangwu_ok))
  end
  #--------------------------------------------------------------------------
  # ● 生成防具强化窗口
  #--------------------------------------------------------------------------
  def create_fang_window
    @fang_window = Window_Qiangfang.new(@qianghelp_window,@qiangxz_window)
    @fang_window.viewport = @viewport
    @fang_window.y += @help_window.height
    @fang_window.hide
    @fang_window.help_window= @help_window
    @fang_window.set_handler(:cancel, method(:qiangfang_cancel))
    @fang_window.set_handler(:ok,     method(:qiangfang_ok))
  end
  #--------------------------------------------------------------------------
  # ● 计算窗口显示指定行数时的应用高度
  #--------------------------------------------------------------------------
  def fitting_height(line_number)
    line_number * 24 + 12 * 2
  end
  #--------------------------------------------------------------------------
  # ● 显示强化武器
  #--------------------------------------------------------------------------
  def qiangwu
    @command_window.hide
    @help_window.show
    @wu_window.show
    @wu_window.start
    @qianghelp_window.show
    @wu_window.activate
    $wufang = true
    @command_window.deactivate
  end
  #--------------------------------------------------------------------------
  # ● 显示强化防具
  #--------------------------------------------------------------------------
  def qiangfang
    @command_window.hide
    @help_window.show
    @fang_window.show
    @fang_window.start
    @qianghelp_window.show
    @fang_window.activate
    $wufang = false
    @command_window.deactivate
  end
  #--------------------------------------------------------------------------
  # ● 取消强化武器
  #--------------------------------------------------------------------------
  def qiangwu_cancel
    @command_window.show
    @help_window.hide
    @wu_window.hide
    @qianghelp_window.hide
    @command_window.activate
    @qianghelp_window.set_text("")
    @help_window.set_text("")
  end
  #--------------------------------------------------------------------------
  # ● 取消强化防具
  #--------------------------------------------------------------------------
  def qiangfang_cancel
    @command_window.show
    @help_window.hide
    @fang_window.hide
    @qianghelp_window.hide
    @command_window.activate
    @qianghelp_window.set_text("")
    @help_window.set_text("")
  end
  #--------------------------------------------------------------------------
  # ● 确定强化武器
  #--------------------------------------------------------------------------
  def qiangwu_ok
    @wu_window.qiangwu_ok
    @qiangxz_window.show
    @qiangxz_window.activate
  end
  #--------------------------------------------------------------------------
  # ● 确定强化防具
  #--------------------------------------------------------------------------
  def qiangfang_ok
    @fang_window.qiangfang_ok
    @qiangxz_window.show
    @qiangxz_window.activate
  end
  #--------------------------------------------------------------------------
  # ● 获取卖出价格
  #--------------------------------------------------------------------------
  def selling_price
    @item.price / 2
  end
  
  def qiangxz_gem
    @choosegem_window.start
    @qiangxz_window.deactivate
    @choosegem_window.qiangxz= @qiangxz_window
    if $wufang == true
      @choosegem_window.wufangwindow= @wu_window
    else
      @choosegem_window.wufangwindow= @fang_window
    end
  end
  
  def qiangxz_fangb
    $fangb = !$fangb
    if $wufang == true
      @wu_window.update_help
    else
      @fang_window.update_help
    end
    @qiangxz_window.activate
  end
  
  def qiangxz_fangj
    $fangj = !$fangj
    if $wufang == true
      @wu_window.update_help
    else
      @fang_window.update_help
    end
    @qiangxz_window.activate
  end
  
  def qiangxz_ok
    if $wufang == true
      Qiang.upweapon(@wu_window.itemid)
      qianging
      @qianghelp_window.set_text($message)
      @qiangxz_window.hide
      Graphics.wait(60)
      @wu_window.activate
      @qiangxz_window.deactivate
      $当前使用宝石加成率 = 0
      $usegem = false
      @fang_window.update_help
      @wu_window.refresh
      @command_window.deactivate
    else
      Qiang.uparmor(@fang_window.itemid)
      qianging
      @qianghelp_window.set_text($message)
      @qiangxz_window.hide
      Graphics.wait(60)
      @fang_window.activate
      @qiangxz_window.deactivate
      $当前使用宝石加成率 = 0
      $usegem = false
      @fang_window.update_help
      @fang_window.refresh
      @command_window.deactivate
end
  end
  
  def qiangxz_cancel
    @wu_window.show
    @qiangxz_window.hide
    @qiangxz_window.deactivate
    if $wufang == true
      @wu_window.activate
    else
      @fang_window.activate
    end
    $当前使用宝石加成率 = 0
    $usegem = false
    @command_window.deactivate
  end
  
  def qianging
    i = 0
    while i < 20
      i += 1
      text = "\n"
      text += "█" * i + "  " * (20 - i)
      text = text + "\n强化中,请等待……"
      @qianghelp_window.set_text(text)
      Graphics.wait(6)
    end
  end
end

class RPG::EquipItem < RPG::BaseItem
  alias old initialize
  def initialize
    old
    @up = 0 #装备强化次数
  end
  attr_accessor :up
end
#==============================================================================
# ■ Window_Qiangwu
#------------------------------------------------------------------------------
#  强化系统_武器强化窗口
#==============================================================================

class Window_Qiangwu < Window_ItemList
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize(qianghelp,xuanze)
    super(0, 0, Graphics.width, fitting_height(8))
    self.openness = 0
    deactivate
    @qianghelp = qianghelp
    @xuanze = xuanze
  end
  #--------------------------------------------------------------------------
  # ● 开始输入的处理
  #--------------------------------------------------------------------------
  def start
    self.category = :weapon
    refresh
    select(0)
    open
    activate
  end
  #--------------------------------------------------------------------------
  # ● 查询此物品是否可用
  #--------------------------------------------------------------------------
  def enable?(item)
    return false unless item != nil
    Qiang.weaponupable?(item.id)
  end
  #--------------------------------------------------------------------------
  # ● 确定强化武器
  #--------------------------------------------------------------------------
  def qiangwu_ok
    result = item ? item.id : 0
  end
  #--------------------------------------------------------------------------
  # ● 更新帮助内容
  #--------------------------------------------------------------------------
  def update_help
    return unless item != nil
    @help_window.set_item(item)
    needmoney = 0
    Qiang.weaponupable?(item.id)
    qitemname = Qiang.lostitem.name
    if item.up >= $强化哈希表["最高等级"]
      qitemname = "无法继续升级"
    end
    temp = []
    $usegem == true ? temp.push("●") : temp.push("○")
    temp.push($data_items[$强化哈希表["特殊物品"][0]].name)
    $fangb == true ? temp.push("●") : temp.push("○")
    temp.push($data_items[$强化哈希表["特殊物品"][1]].name)
    $fangj == true ? temp.push("●") : temp.push("○")
    cgl = ($强化哈希表["每级概率"][item.up] + $当前使用宝石加成率).to_s
    xxlv=($强化哈希表["消失几率"][item.up]).to_s
    jjlv=($强化哈希表["降级几率"][item.up]).to_s
    if item.up == 0
    min = (item.params[2] * (100 + $强化哈希表["提升能力"][item.up])).floor
    min /= 100
    max = min + 5
    else
      if item.up >= $强化哈希表["最高等级"]
        min = item.params[2].to_int
        max = min
      else
    min = (item.params[2] * (100 + $强化哈希表["提升能力"][item.up])).floor
    min /= 100
    max = min + item.up * 3
   end
  end
    text = "当前强化等级:" + item.up.to_s + " 强化需要:" +  qitemname
    text = text + "\n" + "强化宝石:" + temp [0] + " " + temp[1] + ":" + temp[2]+ " " + temp[3] + ":" + temp[4]
    text = text + "\n" + "成功率:" + cgl + "% " + "强化后攻击力范围:" + min.to_s + "~" + max.to_s
    text = text + "\n" + "消失率:" + xxlv + "% " + "降级率:" + jjlv+"% "+ " 需" + Vocab::currency_unit + ":" + Qiang.needmoney.to_s
    @qianghelp.set_text(text)
  end
  #--------------------------------------------------------------------------
  # ● 获取当前武器等级
  #--------------------------------------------------------------------------
  def getweaponup
    Qiang.weaponupisnil(item.id)
    item.up
  end
  
  def itemid
    item.id
  end
  #--------------------------------------------------------------------------
  # ● 选择项目
  #--------------------------------------------------------------------------
  def select(index)
    self.index = index if index
    update_help
  end
end
#==============================================================================
# ■ Window_Qiangfang
#------------------------------------------------------------------------------
#  强化系统_防具强化窗口
#==============================================================================

class Window_Qiangfang < Window_ItemList
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize(qianghelp,xuanze)
    super(0, 0, Graphics.width, fitting_height(8))
    self.openness = 0
    deactivate
    @qianghelp = qianghelp
    @xuanze = xuanze
  end
  #--------------------------------------------------------------------------
  # ● 开始输入的处理
  #--------------------------------------------------------------------------
  def start
    self.category = :armor
    refresh
    select(0)
    open
    activate
  end
  #--------------------------------------------------------------------------
  # ● 查询此物品是否可用
  #--------------------------------------------------------------------------
  def enable?(item)
    return false unless item != nil
    Qiang.armorupable?(item.id)
  end
  #--------------------------------------------------------------------------
  # ● 确定强化防具
  #--------------------------------------------------------------------------
  def qiangfang_ok
    result = item ? item.id : 0
  end
  #--------------------------------------------------------------------------
  # ● 更新帮助内容
  #--------------------------------------------------------------------------
  def update_help
    return unless item != nil
    @help_window.set_item(item)
    needmoney = 0
    Qiang.armorupable?(item.id)
    qitemname = Qiang.lostitem.name
    if item.up >= $强化哈希表["最高等级"]
      qitemname = "无法继续升级"
    end
    temp = []
    $usegem == true ? temp.push("●") : temp.push("○")
    temp.push($data_items[$强化哈希表["特殊物品"][0]].name)
    $fangb == true ? temp.push("●") : temp.push("○")
    temp.push($data_items[$强化哈希表["特殊物品"][1]].name)
    $fangj == true ? temp.push("●") : temp.push("○")
    cgl = ($强化哈希表["每级概率"][item.up] + $当前使用宝石加成率).to_s
    xxlv=($强化哈希表["消失几率"][item.up]).to_s
    jjlv=($强化哈希表["降级几率"][item.up]).to_s
    if item.up == 0
    min = (item.params[3] * (100 + $强化哈希表["提升能力"][item.up])).floor
    min /= 100
      max = min + 5
    else
      if item.up >= $强化哈希表["最高等级"]
        min = item.params[3].to_int
        max = min
      else
    min = (item.params[3] * (100 + $强化哈希表["提升能力"][item.up])).floor
    min /= 100
    max = min + item.up * 3
    end
  end
    text = "当前强化等级:" + item.up.to_s + " 强化需要:" +  qitemname
    text = text + "\n" + "强化宝石:" + temp [0] + " " + temp[1] + ":" + temp[2]+ " " + temp[3] + ":" + temp[4]
    text = text + "\n" + "成功率:" + cgl + "% " + "强化后防御范围:" + min.to_s + "~" + max.to_s
    text = text + "\n" + "消失率:" + xxlv + "% " + "降级率:" + jjlv+"% "+ " 需" + Vocab::currency_unit + ":" + Qiang.needmoney.to_s
    @qianghelp.set_text(text)
  end
  #--------------------------------------------------------------------------
  # ● 获取当前防具等级
  #--------------------------------------------------------------------------
  def getarmorup
    Qiang.armorupisnil(item.id)
    item.up
  end
  
  def itemid
    item.id
  end
  #--------------------------------------------------------------------------
  # ● 选择项目
  #--------------------------------------------------------------------------
  def select(index)
    self.index = index if index
    update_help
  end
end
#==============================================================================
# ■ Window_QiangCommand
#------------------------------------------------------------------------------
#  强化系统中,处理命令选择的窗口。
#==============================================================================

class Window_QiangCommand < Window_Command
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0)
    update_placement
    self.openness = 0
    open
  end
  #--------------------------------------------------------------------------
  # ● 获取窗口的宽度
  #--------------------------------------------------------------------------
  def window_width
    return 160
  end
  #--------------------------------------------------------------------------
  # ● 更新窗口的位置
  #--------------------------------------------------------------------------
  def update_placement
    self.x = (Graphics.width - width) / 2
    self.y = (Graphics.height - height) / 2
  end
  #--------------------------------------------------------------------------
  # ● 生成指令列表
  #--------------------------------------------------------------------------
  def make_command_list
    add_command("强化兵器",    :qiangwu)
    add_command("强化防具",    :qiangfang)
    add_command(Vocab::ShopCancel, :cancel)
  end
end
#==============================================================================
# ■ Window_Qianghelp
#------------------------------------------------------------------------------
#  显示说明
#==============================================================================

class Window_Qianghelp < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, window_width, fitting_height(4) + 8)
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 获取窗口的宽度
  #--------------------------------------------------------------------------
  def window_width
    return 544
  end
  #--------------------------------------------------------------------------
  # ● 获取持有金钱
  #--------------------------------------------------------------------------
  def value
    $game_party.gold
  end
  #--------------------------------------------------------------------------
  # ● 获取货币单位
  #--------------------------------------------------------------------------
  def currency_unit
    Vocab::currency_unit
  end
  #--------------------------------------------------------------------------
  # ● 设置内容
  #--------------------------------------------------------------------------
  def set_text(text)
    if text != @text
      @text = text
      refresh
    end
  end
  #--------------------------------------------------------------------------
  # ● 清除
  #--------------------------------------------------------------------------
  def clear
    set_text("")
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    draw_text_ex(4, 0, @text)
  end
end
#==============================================================================
# ■ Window_Qiangxz
#------------------------------------------------------------------------------
#  强化系统中,选择强化方式的窗口。
#==============================================================================

class Window_Qiangxz < Window_Command
  @havegem = false
  @havefangb = false
  @havefangj = false
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0)
    index = 0
    update_placement
    self.openness = 0
    open
  end
  #--------------------------------------------------------------------------
  # ● 获取窗口的宽度
  #--------------------------------------------------------------------------
  def window_width
    return 180
  end
  #--------------------------------------------------------------------------
  # ● 更新窗口的位置
  #--------------------------------------------------------------------------
  def update_placement
    self.x = (Graphics.width - width) / 2
    self.y = (Graphics.height - height) / 2
  end
  #--------------------------------------------------------------------------
  # ● 检查可用
  #--------------------------------------------------------------------------
  def haveitem
    @havegem = false
    @havefangb = false
    @havefangj = false
    for i in $强化哈希表["宝石效果"]
        if $game_party.has_item?($data_items[i[0]])
        @havegem = true
      end
    end
    @havefangb = $game_party.has_item?($data_items[$强化哈希表["特殊物品"][0]])
    @havefangj = $game_party.has_item?($data_items[$强化哈希表["特殊物品"][1]])
  end
  #--------------------------------------------------------------------------
  # ● 生成指令列表
  #--------------------------------------------------------------------------
  def make_command_list
    haveitem
    add_command("宝石",     :gem, @havegem)
    add_command(Qiang.idgetitem($强化哈希表["特殊物品"][0]).name, :fangb, @havefangb)
    add_command(Qiang.idgetitem($强化哈希表["特殊物品"][1]).name, :fangj, @havefangj)
    add_command("开始强化", :start)
    add_command("取消强化", :cancel)
  end
end
#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
#  游戏中所有窗口的父类
#==============================================================================

class Window_Base < Window
  #--------------------------------------------------------------------------
  # ● 绘制物品名称
  #     enabled : 有效的标志。false 的时候使用半透明效果绘制
  #--------------------------------------------------------------------------
  def draw_item_name(item, x, y, enabled = true, width = 172)
    return unless item
    draw_icon(item.icon_index, x, y, enabled)
    change_color(normal_color, enabled)
  if item.is_a?(RPG::EquipItem)
      n = item.note
      a = n.split{/<(?:Quality|品质)\s*(.+)>/i}
      c = a[1].to_i
      if c <= 1
        color = PS0::Window_Base_Itemcolor::Color1
      elsif c == 2
        color = PS0::Window_Base_Itemcolor::Color2
      elsif c == 3
        color = PS0::Window_Base_Itemcolor::Color3
      elsif c == 4
        color = PS0::Window_Base_Itemcolor::Color4
      elsif c == 5
        color = PS0::Window_Base_Itemcolor::Color5
      elsif c == 6
        color = PS0::Window_Base_Itemcolor::Color6
      elsif c == 7
        color = PS0::Window_Base_Itemcolor::Color7
      else
        color = Color.new(0, 0, 0, 0)
      end
      self.contents.fill_rect(x, y, 24, 1, color)
      self.contents.fill_rect(x, y, 1, 24, color)
      self.contents.fill_rect(x, y+23, 24, 1, color)
      self.contents.fill_rect(x+23, y, 1, 24, color)
      draw_icon(item.icon_index, x, y, enabled)
      change_color(color, enabled)
        draw_text(x + 24, y, width, line_height, item.name)
    if item.up != nil && item.up != 0
    draw_text(x + 24, y, width, line_height, item.name + " +" + item.up.to_s)
  else
    draw_text(x + 24, y, width, line_height, item.name)
  end
  else
    draw_text(x + 24, y, width, line_height, item.name)
  end
  end
end
class Window_ItemList
  #--------------------------------------------------------------------------
  # ● 查询列表中是否含有此物品
  #--------------------------------------------------------------------------
  def include?(item)
    case @category
    when :item
      item.is_a?(RPG::Item) && !item.key_item?
    when :weapon
      item.is_a?(RPG::Weapon)
    when :armor
      item.is_a?(RPG::Armor)
    when :key_item
      item.is_a?(RPG::Item) && item.key_item?
    when :gem
      itemid = item ? item.id : 0
      itemid != 0 ? isgem(itemid) : false
    else
      false
    end
  end
  
  def isgem(itemid)
    for i in $强化哈希表["宝石效果"]
      return true if i[1] == itemid
    end
    false
  end
end
#==============================================================================
# ■ Window_Choosegem
#------------------------------------------------------------------------------
#  选择强化使用的宝石
#==============================================================================

class Window_Choosegem < Window_ItemList
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize()
    super(0, 0, Graphics.width, fitting_height(2))
    self.openness = 0
    deactivate
    @wufangwindow = nil
    @qiangxz = nil
    set_handler(:ok,     method(:on_ok))
    set_handler(:cancel, method(:on_cancel))
  end
  
  def wufangwindow=(wufangwindow)
    @wufangwindow = wufangwindow
  end
  def qiangxz=(qiangxz)
    @qiangxz = qiangxz
  end
  #--------------------------------------------------------------------------
  # ● 开始输入的处理
  #--------------------------------------------------------------------------
  def start
    self.category = :gem
    self.y = (Graphics.height - height) / 2
    refresh
    select(0)
    open
    activate
  end
  #--------------------------------------------------------------------------
  # ● 确定时的处理
  #--------------------------------------------------------------------------
  def on_ok
    result = item ? item.id : 0
    if result != 0
     $usegem = true
     $当前使用宝石id = result
     for i in $强化哈希表["宝石效果"]
       $当前使用宝石加成率 = i[0] if i[1] == $当前使用宝石id
     end
   else
     $当前使用宝石加成率 = 0
     $usegem = false
    end
    @wufangwindow.update_help
    @qiangxz.activate
    close
  end
  #--------------------------------------------------------------------------
  # ● 查询此物品是否可用
  #--------------------------------------------------------------------------
  def enable?(item)
    true
  end
  #--------------------------------------------------------------------------
  # ● 取消时的处理
  #--------------------------------------------------------------------------
  def on_cancel
    $当前使用宝石加成率 = 0
    $usegem = false
    @wufangwindow.update_help
    @qiangxz.activate
    close
  end
end
#==============================================================================
# ■ 强化系统DataManager
#------------------------------------------------------------------------------
#  将武器和防具数据保存入存档
#==============================================================================
module DataManager
  #--------------------------------------------------------------------------
  # ● 生成存档内容
  #--------------------------------------------------------------------------
  def self.make_save_contents
    contents = {}
    contents[:system]        = $game_system
    contents[:timer]         = $game_timer
    contents[:message]       = $game_message
    contents[:switches]      = $game_switches
    contents[:variables]     = $game_variables
    contents[:self_switches] = $game_self_switches
    contents[:actors]        = $game_actors
    contents[:party]         = $game_party
    contents[:troop]         = $game_troop
    contents[:map]           = $game_map
    contents[:player]        = $game_player
    contents[:weapons]       = $data_weapons
    contents[:armors]        = $data_armors
    contents
  end
  #--------------------------------------------------------------------------
  # ● 展开存档内容
  #--------------------------------------------------------------------------
  def self.extract_save_contents(contents)
    $game_system        = contents[:system]
    $game_timer         = contents[:timer]
    $game_message       = contents[:message]
    $game_switches      = contents[:switches]
    $game_variables     = contents[:variables]
    $game_self_switches = contents[:self_switches]
    $game_actors        = contents[:actors]
    $game_party         = contents[:party]
    $game_troop         = contents[:troop]
    $game_map           = contents[:map]
    $game_player        = contents[:player]
    $data_weapons       = contents[:weapons]
    $data_armors        = contents[:armors]
  end
end[/pre]
本人也是初接触Ruby语言,只会简单修改一下下~~
特别说明,强化成功显示的数值,以及装备上显示的数值,还有装备后的实际效果数值,这之间会有微小差异,由于小数点后面的小数导致,目前不知道怎么解决
附图片:
QQ截图20131018191319.png QQ截图20131018191348.png QQ截图20131018192040.png QQ截图20131018192119.png QQ截图20131018192351.png

范例工程.zip

1.73 MB, 下载次数: 495

售价: 1 星屑  [记录]

范例

评分

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

查看全部评分

点击即可领养:
梦石
0
星屑
199
在线时间
248 小时
注册时间
2012-4-29
回帖
313
发表于 2013-10-30 22:20:39 | 显示全部楼层
我来了  赞一个!!!!!
你的意思就是要打架咯?
回复

使用道具 举报

梦石
0
星屑
68
在线时间
208 小时
注册时间
2013-8-8
回帖
1186
发表于 2013-11-3 10:54:07 | 显示全部楼层
能消耗不同的强化石就可以进行不同的强化吗?
我已经没有兴趣认真做游戏了……只能胡扯。
回复

使用道具 举报

梦石
0
星屑
240
在线时间
341 小时
注册时间
2010-9-5
回帖
66
 楼主| 发表于 2013-11-3 12:25:56 | 显示全部楼层
我在孤岛等你 发表于 2013-11-3 10:54
能消耗不同的强化石就可以进行不同的强化吗?

可以的,这个可以自己设置
点击即可领养:
回复

使用道具 举报

梦石
0
星屑
240
在线时间
341 小时
注册时间
2010-9-5
回帖
66
 楼主| 发表于 2013-11-3 12:26:21 | 显示全部楼层
我在孤岛等你 发表于 2013-11-3 10:54
能消耗不同的强化石就可以进行不同的强化吗?

可以的,这个可以自己设置
点击即可领养:
回复

使用道具 举报

梦石
0
星屑
50
在线时间
75 小时
注册时间
2013-11-12
回帖
9
发表于 2013-11-21 22:09:22 | 显示全部楼层
介个我能说一下吗。。。
这个脚本好像与物品增减脚本起冲突唉
回复

使用道具 举报

梦石
0
星屑
240
在线时间
341 小时
注册时间
2010-9-5
回帖
66
 楼主| 发表于 2013-11-22 09:08:03 | 显示全部楼层
1q2w3eqwe 发表于 2013-11-21 22:09
介个我能说一下吗。。。
这个脚本好像与物品增减脚本起冲突唉


是物品等级增减提示的脚本吗?
我用的是超级整合里面的那个  似乎没有冲突啊
  1. #==============================================================================
  2. # 本腳本來自www.66RPG.com,使用和轉載請保留此信息
  3. #==============================================================================

  4. # 注意!!!在對話後得到物品,請在對話後先用事件等待3幀,否則對話框來不及消失。

  5. # 開關定義:

  6. $noshowgold = 41                        # 不显示金钱得失

  7. $noshowitem = 42                        # 不显示物品得失

  8. $noshowweapon = 43                      # 不显示武器得失

  9. $noshowarmor = 44                       # 不显示防具得失
  10. # 以上開關,當打開的時候,獲得物品將不會提示,比如默認打開41號開關,獲得金錢不再提示

  11. # 不想提示等级升降时,就在事件命令直接选择是否显示就行了。

  12. #——聲效,可以自己改
  13. folder = "Audio/SE/"
  14. $gain_gold_se   = folder +"Shop"      # 获得金钱声效
  15. $loss_gold_se   = folder +"Blow2"     # 失去金钱声效

  16. $gain_item_se   = folder +"Item1"     # 获得物品声效
  17. $loss_item_se   = folder +"Blow2"     # 失去物品声效

  18. $gain_weapon_se = folder +"Item1"     # 获得武器声效
  19. $loss_weapon_se = folder +"Blow2"     # 失去武器声效

  20. $gain_armor_se  = folder +"Item1"     # 获得防具声效
  21. $loss_armor_se  = folder +"Blow2"     # 失去防具声效

  22. $gain_lv_se     = folder +"Item1"     # 提升等级声效
  23. $loss_lv_se     = folder +"Blow2"     # 降低等级声效

  24. # ————————————————————————————————————

  25. class Game_Interpreter
  26.   #--------------------------------------------------------------------------
  27.   # ● 增減金錢
  28.   #--------------------------------------------------------------------------
  29.   def command_125
  30.     value = operate_value(@params[0], @params[1], @params[2])
  31.     $game_party.gain_gold(value)
  32.     if $game_switches[$noshowgold]==false
  33.       show_gain_window(0, value)
  34.     end
  35.     return true
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● 增減物品
  39.   #--------------------------------------------------------------------------
  40.   def command_126
  41.     value = operate_value(@params[1], @params[2], @params[3])
  42.     $game_party.gain_item($data_items[@params[0]], value)
  43.     if $game_switches[$noshowitem]==false
  44.       show_gain_window(1, value)
  45.     end
  46.     $game_map.need_refresh = true
  47.     return true
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 增減武器
  51.   #--------------------------------------------------------------------------
  52.   def command_127
  53.     value = operate_value(@params[1], @params[2], @params[3])
  54.     $game_party.gain_item($data_weapons[@params[0]], value, @params[4])
  55.     if $game_switches[$noshowweapon]==false
  56.       show_gain_window(2, value)
  57.     end
  58.     return true
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● 增減防具
  62.   #--------------------------------------------------------------------------
  63.   def command_128
  64.     value = operate_value(@params[1], @params[2], @params[3])
  65.     $game_party.gain_item($data_armors[@params[0]], value, @params[4])
  66.     if $game_switches[$noshowarmor]==false
  67.       show_gain_window(3, value)
  68.     end
  69.     return true
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ● 等级増減
  73.   #--------------------------------------------------------------------------
  74.   def command_316
  75.     value = operate_value(@params[2], @params[3], @params[4])
  76.     iterate_actor_var(@params[0], @params[1]) do |actor|
  77.       actor.change_level(actor.level + value, @params[5])
  78.       if @params[4]
  79.         show_gain_level_window(actor,value)
  80.       end
  81.     end
  82.     return true
  83.   end
  84.   
  85.   def show_gain_window(type, value)
  86.     snstar2006_66rpg_item = $data_armors[@params[0]]
  87.     snstar2006_66rpg = Window_Base.new((640-350)/2,128,250,100)
  88.     snstar2006_66rpg.contents = Bitmap.new(snstar2006_66rpg.width - 32, snstar2006_66rpg.height - 32)
  89.     if value >= 0
  90.       gain_text = "获得"   
  91.     else
  92.       gain_text = "失去"
  93.     end
  94.    
  95.     case type
  96.     when 0
  97.       gain_type = "金钱"
  98.       if value >=0
  99.         Audio.se_play($gain_gold_se,80,100)
  100.       else
  101.         Audio.se_play("Audio/SE/"+"Item1",80,100)
  102.       end
  103.     when 1
  104.       gain_type = "物品"
  105.       string = $data_items[@params[0]]
  106.       if value >=0
  107.         Audio.se_play($gain_item_se,80,100)
  108.       else
  109.         Audio.se_play($loss_item_se,80,100)
  110.       end
  111.     when 2
  112.       gain_type = "武器"
  113.       string = $data_weapons[@params[0]]
  114.       if value >=0
  115.         Audio.se_play($gain_weapon_se,80,100)
  116.       else
  117.         Audio.se_play($loss_weapon_se,80,100)
  118.       end
  119.     when 3
  120.       gain_type = "防具"
  121.       string = $data_armors[@params[0]]
  122.       if value >=0
  123.         Audio.se_play($gain_armor_se,80,100)
  124.       else
  125.         Audio.se_play($loss_armor_se,80,100)
  126.       end
  127.     end
  128.    
  129.     snstar2006_66rpg.contents.draw_text(0,0,160,30,gain_text+gain_type+":")
  130.    
  131.     unless type == 0
  132.       snstar2006_66rpg.draw_item_name(string, 0, 30, true)
  133.       snstar2006_66rpg.contents.draw_text(0, 30, 210, 30, "×"+value.abs.to_s, 2)
  134.     else
  135.       snstar2006_66rpg.contents.draw_text(0,30,215,30,value.abs.to_s + "  "+ Vocab.currency_unit, 2)
  136.     end
  137.    
  138.     snstar2006_66rpg.opacity = 160
  139.    
  140.     for i in 0..50
  141.       Graphics.update
  142.     end
  143.    
  144.     for i in 0..10
  145.       snstar2006_66rpg.opacity -= 10
  146.       snstar2006_66rpg.contents_opacity -= 10
  147.       Graphics.update
  148.     end
  149.    
  150.     snstar2006_66rpg.dispose
  151.    
  152.   end

  153.   def show_gain_level_window(actor,value)
  154.     lvstring = Vocab::level
  155.         
  156.     snstar2006_66rpg = Window_Base.new((640-300)/2,128,200,100)
  157.     snstar2006_66rpg.contents = Bitmap.new(snstar2006_66rpg.width - 30, snstar2006_66rpg.height - 30)
  158.    
  159.     if value >= 0
  160.       gain_text = "提升"
  161.       Audio.se_play($gain_lv_se,80,100)
  162.     else
  163.       gain_text = "降低"
  164.       Audio.se_play($loss_lv_se,80,100)
  165.     end
  166.    
  167.     snstar2006_66rpg.contents.draw_text(0, 0, 110, 30, actor.name)
  168.     string = lvstring+gain_text+value.abs.to_s+"级"
  169.     snstar2006_66rpg.contents.draw_text(0,30,160,30,string, 2)

  170.     snstar2006_66rpg.opacity = 160
  171.    
  172.     for i in 0..50
  173.       Graphics.update
  174.     end
  175.    
  176.     for i in 0..10
  177.       snstar2006_66rpg.opacity -= 10
  178.       snstar2006_66rpg.contents_opacity -= 10
  179.       Graphics.update
  180.     end
  181.    
  182.     snstar2006_66rpg.dispose

  183.   end
  184. end


  185. #==============================================================================
  186. # 本腳本來自www.66RPG.com,使用和轉載請保留此信息
  187. #==============================================================================
复制代码
点击即可领养:
回复

使用道具 举报

梦石
0
星屑
50
在线时间
8 小时
注册时间
2013-11-11
回帖
8
发表于 2013-11-25 21:55:44 | 显示全部楼层
唔好多了,先赞一个{:2_275:}
LZ辛苦了
回复

使用道具 举报

梦石
0
星屑
55
在线时间
416 小时
注册时间
2012-11-30
回帖
146
发表于 2013-11-26 11:56:33 | 显示全部楼层
不错,待会换新版的

<object width="630" height="500" align="middle" id="reader" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" classid="clsid:d27cdb6e-ae6d-11cf-96b8-44455354000
回复

使用道具 举报

梦石
0
星屑
60
在线时间
214 小时
注册时间
2014-1-23
回帖
177
发表于 2014-1-26 20:13:08 | 显示全部楼层
买了……话说,能把那么几个有关于装备的统统都抓在一起整合成兼容的么?
我等伸手党翘首以盼啊……
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部