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

Project1

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

[已经过期] 新人请教,关于整合系统问题。

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2015-7-25
帖子
5
跳转到指定楼层
1
发表于 2015-7-28 22:49:48 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
我下载了这样一个整合系统http://rpg.blue/thread-243936-1-1.html
这个整合系统自带范例,我运行的时候并未发现问题。但我把其中的几个脚本移动到自己的游戏中时就出现了问题,比如任务脚本,移植过来后无法使用,查了zyyczp的原帖才发现还需要一些其它处理,修改Scene_Menu和windows_menucommand,然而我查看整合系统自带范例中的脚本时发现它并未做这种处理。
再比如颜色描绘脚本和装备强化系统,范例中也没有问题,然而粘贴过来就出现问题,颜色描绘脚本时NoMethodError关于"up"的,装备强化系统是一个关于"[]"的。我想知道为什么会发生这样的问题呢,明明范例中没有进行多余处理也能顺利运行的啊。
另附上装备强化系统报错,脚本"Game_BaseItem"第30行:发生NoMethodError。undefined method '[]' for nil:NilClass。求介绍解决方法啊。脚本如下
#encoding:utf-8
#==============================================================================
# ■ 装备强化系统 By wyongcan
#==============================================================================
module Equipplus
#升到各级时装备颜色请在“颜色描绘”脚本中修改
$maxlv = 7  #最高升到的级数
$gailv = [90,70,60,50,35,20,1] #每级提升概率
$gemlv = [[30,31]] #使用宝石提高的几率  [提高几率,宝石ID]
$uplv = [[7,26],[5,25],[2,24]] #强化所需要的强化石 [最大强化到的等级,强化石ID]
$xxlv = [100,100,100,100,100,100,100] #每级强化后失败物品消失的几率
$jjlv = [0,10,15,20,30,45,55] #每级强化后失败物品降级的几率
$tsnl = [0,0,0,0,0,0,0] #每级强化提升能力的百分比
$tswp = [31,32] # 意思是:如果有31号物品则失败后物品不消失,如果有32号物品则失败后物品不降级
#武器强化后的计算公式为: 原攻击 * (1 + 提升能力百分比) + (0到当前强化级数随机) * 5 + 当前强化级数
$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
    $message += "强化成功"
    idlostequip id
    weapon.id = $data_weapons.size
    params = weapon.params.dup
    params[2] *= 1 + $强化哈希表["提升能力"][weapon.up] / 100
    params[2] += rand(weapon.up) * 0+ weapon.up
    params[2] += 1 if params[2] == weapon.params[2]
    $message += " 攻击力提升:" + (params[2] - weapon.params[2]).to_int.to_s
    weapon.up += 1
    $data_weapons.insert $data_weapons.size,weapon
    $data_weapons[$data_weapons.size-1].params = params
    idgainequip weapon.id
  else
    $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] -= weapon.up + rand(weapon.up) * 5
          params[2] /= 1 + $强化哈希表["提升能力"][weapon.up] / 100
          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
    $message += "强化成功"
    idlostequip id,false
    armor.id = $data_armors.size
    params = armor.params.dup
    params[3] *= 1 + $强化哈希表["提升能力"][armor.up] / 100
    params[3] += rand(armor.up) * 0 + armor.up
    params[3] += 1 if params[3] == armor.params[3]
    $message += " 防御力提升:" + (params[3] - armor.params[3]).to_int.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
    $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] -= armor.up + rand(armor.up) * 5
          params[3] /= 1 + $强化哈希表["提升能力"][armor.up] / 100
          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
    @help_window.hide
    @wu_window.qiangwu_ok
    @qiangxz_window.show
    @qiangxz_window.activate
  end
  #--------------------------------------------------------------------------
  # ● 确定强化防具
  #--------------------------------------------------------------------------
  def qiangfang_ok
    @help_window.hide
    @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
      Equipplus.upweapon(@wu_window.itemid)
      qianging
      @qianghelp_window.set_text($message)
      @qiangxz_window.hide
      Graphics.wait(60)
      @wu_window.activate
      @qiangxz_window.deactivate
      @help_window.hide
      $当前使用宝石加成率 = 0
      $usegem = false
      @fang_window.update_help
      @wu_window.refresh
      @command_window.deactivate
    else
      Equipplus.uparmor(@fang_window.itemid)
      qianging
      @qianghelp_window.set_text($message)
      @qiangxz_window.hide
      Graphics.wait(60)
      @fang_window.activate
      @qiangxz_window.deactivate
      @help_window.hide
      $当前使用宝石加成率 = 0
      $usegem = false
      @fang_window.update_help
      @fang_window.refresh
      @command_window.deactivate
    end
  end
  
  def qiangxz_cancel
    @help_window.refresh
                @help_window.show
    @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
    Equipplus.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)
    @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil
    needmoney = 0
    Equipplus.weaponupable?(item.id)
    qitemname = Equipplus.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
    if item.up == 0
      min = item.params[2] + 1
      max = min + 5
    else
      if item.up >= $强化哈希表["最高等级"]
        min = item.params[2].to_int
        max = min
      else
    min = (item.params[2] * (1 + $强化哈希表["提升能力"][item.up] / 100)).to_int + item.up
    max = min + item.up * 5
    end
  end
    text = "装备名称:" + item.name + "\n强化所需" + Vocab::currency_unit + ":" + Equipplus.needmoney.to_s
    text += "\n当前强化等级:" + item.up.to_s + "\n强化需要:" +  qitemname
    text += "\n强化宝石:" + temp [0] + " " + temp[1] + ":" + temp[2]+ " " + temp[3] + ":" + temp[4]
    text += "\n成功率:" + cgl + "% " + "\n强化后攻击力范围:" + min.to_s + "~" + max.to_s
    @qianghelp.set_text(text)
  end
  #--------------------------------------------------------------------------
  # ● 获取当前武器等级
  #--------------------------------------------------------------------------
  def getweaponup
    Equipplus.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
    Equipplus.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)
    @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil
    needmoney = 0
    Equipplus.armorupable?(item.id)
    qitemname = Equipplus.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
    if item.up == 0
      min = item.params[3] + 1
      max = min + 5
    else
      if item.up >= $强化哈希表["最高等级"]
        min = item.params[3].to_int
        max = min
      else
    min = (item.params[3] * (1 + $强化哈希表["提升能力"][item.up] / 100)).to_int + item.up
    max = min + item.up * 5
    end
  end
    text = "装备名称:" + item.name + "\n强化所需" + Vocab::currency_unit + ":" + Equipplus.needmoney.to_s
    text += "\n当前强化等级:" + item.up.to_s + "\n强化需要:" +  qitemname
    text += "\n强化宝石:" + temp [0] + " " + temp[1] + ":" + temp[2]+ " " + temp[3] + ":" + temp[4]
    text += "\n成功率:" + cgl + "% " + "\n强化后防御力范围:" + min.to_s + "~" + max.to_s
    @qianghelp.set_text(text)
  end
  #--------------------------------------------------------------------------
  # ● 获取当前防具等级
  #--------------------------------------------------------------------------
  def getarmorup
    Equipplus.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(7) + 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[1]])
        @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(Equipplus.idgetitem($强化哈希表["特殊物品"][0]).name, :fangb, @havefangb)
    add_command(Equipplus.idgetitem($强化哈希表["特殊物品"][1]).name, :fangj, @havefangj)
    add_command("开始强化", :start)
    add_command("取消强化", :cancel)
  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

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2015-7-25
帖子
5
4
 楼主| 发表于 2015-8-1 12:07:52 | 只看该作者
黑崎一护 发表于 2015-7-29 00:03
试试令狐林大大的修改版吧,记得在【数据库】的【物品】设置好【强化石】一类的东西,不然脚本会报错的。 ...

不行,还是那个问题。关于"[]"的NoMethodError
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
12 小时
注册时间
2015-7-25
帖子
5
3
 楼主| 发表于 2015-7-29 11:06:15 手机端发表。 | 只看该作者
黑崎一护 发表于 2015-7-29 00:03
试试令狐林大大的修改版吧,记得在【数据库】的【物品】设置好【强化石】一类的东西,不然脚本会报错的。 ...

我现在上不了电脑这个能和仲秋启明的颜色描绘脚本以及wyancong的随机物品增强混用吗。还有,需不需要什么前置操作啊
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
457
在线时间
1409 小时
注册时间
2010-9-23
帖子
557
2
发表于 2015-7-29 00:03:47 | 只看该作者
试试令狐林大大的修改版吧,记得在【数据库】的【物品】设置好【强化石】一类的东西,不然脚本会报错的。
  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. module Qiang
  29. $maxlv = 8  #最高升到的级数
  30. $gailv = [100,90,80,70,55,40,25,10,5] #每级提升概率
  31. $gemlv = [[60,27],[10,28],[20,29],[30,30]] #使用宝石提高的几率  [提高几率,宝石ID]
  32. $uplv = [[2,34],[4,35],[6,36],[8,33]] #强化所需要的强化石 [最大强化到的等级,强化石ID]
  33. $xxlv = [0,7,14,20,25,33,40,44,50] #每级强化后失败物品消失的几率
  34. $jjlv = [0,20,40,65,80,100,100,100,100] #每级强化后失败物品降级的几率
  35. $tsnl = [1,1,1,2,2,2,3,3,3] #每级强化提升能力的百分比
  36. $tswp = [31,32] # 意思是:如果有31号物品则失败后物品不消失,如果有32号物品则失败后物品不降级
  37. #武器强化后的计算公式为: 原攻击 * (1 + 提升能力百分比) + (0到当前强化级数随机) * 5(已改为3) + 当前强化级数
  38. $gemlv.sort!
  39. $uplv.sort!
  40. $当前使用宝石id = 0
  41. $当前使用宝石加成率 = 0
  42. $强化哈希表 = {
  43. "最高等级" => $maxlv ,
  44. "每级概率" => $gailv ,
  45. "宝石效果" => $gemlv ,
  46. "消失几率" => $xxlv  ,
  47. "降级几率" => $jjlv  ,
  48. "提升能力" => $tsnl  ,
  49. "特殊物品" => $tswp  ,
  50. "强化材料" => $uplv  }
  51. def self.idlostitem(id,amount = 1)
  52.   $game_party.lose_item(idgetitem(id),amount)
  53. end

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

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

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

  63. def self.equipable?(id,weapon = true)
  64.   weapon == true ? weaponupisnil(id) : armorupisnil(id)
  65.   weapon == true ? equip = $data_weapons[id].dup : equip = $data_armors[id].dup
  66.   price = equip.price
  67.   @needmoney = price * equip.up
  68.   if @needmoney == 0
  69.     @needmoney = price / 2
  70.   end
  71. #循环取出需要的强化材料
  72.   temp = false
  73.   for i in $强化哈希表["强化材料"]
  74.     if equip.up < i[0]
  75.       @lostitem = idgetitem i[1]
  76.       $game_party.has_item?(idgetitem(i[1])) ? temp = true : temp = false
  77.       break
  78.     end
  79.   end
  80.   $game_party.gold >= @needmoney && temp == true ? true : false
  81. end

  82. def self.upweapon (id)
  83.   $message = ""
  84.   success = false
  85.   weaponupisnil(id)
  86.   weapon = $data_weapons[id].dup
  87.   gl = 0
  88.   fangb = false
  89.   fangj = false
  90.   return unless weapon.up < $强化哈希表["最高等级"] && weaponupable?(id)
  91.   loststh
  92.   $message += "本次强化,共消耗:" + Vocab::currency_unit + " " + @needmoney.to_s
  93.   $message += " " + @lostitem.name + "\n "
  94.   gl = $强化哈希表["每级概率"][weapon.up]
  95.   if $usegem == true
  96.     gl += $当前使用宝石加成率
  97.     idlostitem($当前使用宝石id)
  98.     $message += idgetitem($当前使用宝石id).name + " "
  99.   end
  100.   if $fangb == true
  101.     fangb = true
  102.     idlostitem $强化哈希表["特殊物品"][0]
  103.     $message += idgetitem($强化哈希表["特殊物品"][0]).name + " "
  104.   end
  105.   if $fangj == true
  106.     fangj = true
  107.     idlostitem $强化哈希表["特殊物品"][1]
  108.     $message += idgetitem($强化哈希表["特殊物品"][1]).name + " "
  109.   end
  110.   suiji = rand (100)
  111.   if suiji <= gl
  112.     success = true
  113.   end
  114.   $message += "\n结果:"
  115.   if success == true
  116.     Audio.se_play("Audio/SE/" + "强化成功", 80, 100)
  117.     $message += "强化成功"
  118.     idlostequip id
  119.     weapon.id = $data_weapons.size
  120.     params = weapon.params.dup
  121.     params[2] *= 100 + $强化哈希表["提升能力"][weapon.up]
  122.     params[2] /= 100
  123.     params[2] += rand(weapon.up) * 3
  124.     params[2] += 1 if params[2] == weapon.params[2]
  125.     params[4] *= 100 + $强化哈希表["提升能力"][weapon.up]
  126.     params[4] /= 100
  127.     params[4] += rand(weapon.up) * 3
  128.     params[4] += 1 if params[4] == weapon.params[4]
  129.     $message += " 物攻+" + (params[2] - weapon.params[2]).floor.to_s
  130.     $message += " 魔攻+" + (params[4] - weapon.params[4]).floor.to_s
  131.     weapon.up += 1
  132.     $data_weapons.insert $data_weapons.size,weapon
  133.     $data_weapons[$data_weapons.size-1].params = params
  134.     idgainequip weapon.id
  135.   else
  136.     Audio.se_play("Audio/SE/" + "强化失败", 80, 100)
  137.     $message += "强化失败"
  138.     suiji = rand (100)
  139.     if suiji <= $强化哈希表["消失几率"][weapon.up]
  140.       if fangb != true
  141.       $message += ",道具消失"
  142.       idlostequip id
  143.       else
  144.       $message += ",由于" + idgetitem($强化哈希表["特殊物品"][0]).name + "的作用,道具未消失"
  145.       end
  146.     else
  147.       suiji = rand (100)
  148.       if suiji <= $强化哈希表["降级几率"][weapon.up]
  149.         if fangj == false && weapon.up != 0
  150.           $message += ",道具降级"
  151.           params = weapon.params.dup
  152.           params[2] -= rand(weapon.up) * 3
  153.           params[2] *= 100
  154.           params[2] /= 100 + $强化哈希表["提升能力"][weapon.up]
  155.           params[4] -= rand(weapon.up) * 3
  156.           params[4] *= 100
  157.           params[4] /= 100 + $强化哈希表["提升能力"][weapon.up]
  158.           weapon.params = params
  159.           weapon.up -= 1
  160.           $data_weapons[id] = weapon
  161.         else
  162.           $message += ",由于" + idgetitem($强化哈希表["特殊物品"][1]).name + "的作用,道具未降级"
  163.         end
  164.       end
  165.     end
  166.   end
  167.    $usegem = false
  168.    $fangb = false
  169.    $fangj = false
  170. end

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

  174. def self.weaponupable?(id)
  175.   equipable?(id)
  176. end

  177. def self.uparmor (id)
  178.   $message = ""
  179.   success = false
  180.   armorupisnil(id)
  181.   armor = $data_armors[id].dup
  182.   gl = 0
  183.   fangb = false
  184.   fangj = false
  185.   return unless armor.up < $强化哈希表["最高等级"] && armorupable?(id)
  186.   loststh
  187.   $message += "本次强化,共消耗:" + Vocab::currency_unit + " " + @needmoney.to_s
  188.   $message += " " + @lostitem.name + "\n "
  189.   gl = $强化哈希表["每级概率"][armor.up]
  190.   if $usegem == true
  191.     gl += $当前使用宝石加成率
  192.     idlostitem($当前使用宝石id)
  193.     $message += idgetitem($当前使用宝石id).name + " "
  194.   end
  195.   if $fangb == true
  196.     fangb = true
  197.     idlostitem $强化哈希表["特殊物品"][0]
  198.     $message += idgetitem($强化哈希表["特殊物品"][0]).name + " "
  199.   end
  200.   if $fangj == true
  201.     fangj = true
  202.     idlostitem $强化哈希表["特殊物品"][1]
  203.     $message += idgetitem($强化哈希表["特殊物品"][1]).name + " "
  204.   end
  205.   suiji = rand (100)
  206.   if suiji <= gl
  207.     success = true
  208.   end
  209.   $message += "\n结果:"
  210.   if success == true
  211.     Audio.se_play("Audio/SE/" + "强化成功", 80, 100)
  212.     $message += "强化成功"
  213.     idlostequip id,false
  214.     armor.id = $data_armors.size
  215.     params = armor.params.dup
  216.     params[3] *= 100 + $强化哈希表["提升能力"][armor.up]
  217.     params[3] /= 100
  218.     params[3] += rand(armor.up) * 3
  219.     params[3] += 1 if params[3] == armor.params[3]
  220.     params[5] *= 100 + $强化哈希表["提升能力"][armor.up]
  221.     params[5] /= 100
  222.     params[5] += rand(armor.up) * 3
  223.     params[5] += 1 if params[5] == armor.params[5]
  224.     $message += " 物防+" + (params[3] - armor.params[3]).floor.to_s
  225.     $message += " 魔防+" + (params[5] - armor.params[5]).floor.to_s
  226.     armor.up += 1
  227.     $data_armors.insert $data_armors.size,armor
  228.     $data_armors[$data_armors.size-1].params = params
  229.     idgainequip armor.id,false
  230.   else
  231.     Audio.se_play("Audio/SE/" + "强化失败", 80, 100)
  232.     $message += "强化失败"
  233.     suiji = rand (100)
  234.     if suiji <= $强化哈希表["消失几率"][armor.up]
  235.       if fangb != true
  236.       $message += ",道具消失"
  237.       idlostequip id,false
  238.       else
  239.       $message += ",由于" + idgetitem($强化哈希表["特殊物品"][0]).name + "的作用,道具未消失"
  240.       end
  241.     else
  242.       suiji = rand (100)
  243.       if suiji <= $强化哈希表["降级几率"][armor.up]
  244.         if fangj == false && armor.up != 0
  245.           $message += ",道具降级"
  246.           params = armor.params.dup
  247.           params[3] -= rand(armor.up) * 3
  248.           params[3] *= 100
  249.           params[3] /= 100 + $强化哈希表["提升能力"][armor.up]
  250.           params[5] -= rand(armor.up) * 3
  251.           params[5] *= 100
  252.           params[5] /= 100 + $强化哈希表["提升能力"][armor.up]
  253.           armor.params = params
  254.           armor.up -= 1
  255.           $data_armors[id] = armor
  256.         else
  257.           $message += ",由于" + idgetitem($强化哈希表["特殊物品"][1]).name + "的作用,道具未降级"
  258.         end
  259.       end
  260.     end
  261.   end
  262.    $usegem = false
  263.    $fangb = false
  264.    $fangj = false
  265. end

  266. def self.armorupisnil(id)
  267.    $data_armors[id].up = 0 unless $data_armors[id].up != nil
  268. end
  269. def self.armorupable?(id)
  270.   equipable?(id,false)
  271. end
  272. def self.loststh()
  273.    $game_party.lose_item(@lostitem,1)
  274.    $game_party.lose_gold(@needmoney)
  275. end
  276. def self.needmoney
  277.    @needmoney
  278. end
  279. def self.lostitem
  280.    @lostitem
  281. end
  282. end
  283. #==============================================================================
  284. # ■ Scene_Qiang
  285. #------------------------------------------------------------------------------
  286. #  强化画面
  287. #==============================================================================

  288. class Scene_Qiang < Scene_MenuBase
  289.   $wufang = true
  290.   $usegem = false
  291.   $fangb = false
  292.   $fangj = false
  293.   #--------------------------------------------------------------------------
  294.   # ● 开始处理
  295.   #--------------------------------------------------------------------------
  296.   def start
  297.     super
  298.     create_help_window
  299.     @help_window.hide
  300.     create_qianghelp_window
  301.     create_command_window
  302.     create_qiangxz_window
  303.     create_wu_window
  304.     create_fang_window
  305.     create_choosegem_window
  306.   end
  307.   #--------------------------------------------------------------------------
  308.   # ● 生成说明窗口
  309.   #--------------------------------------------------------------------------
  310.   def create_qianghelp_window
  311.     @qianghelp_window = Window_Qianghelp.new
  312.     @qianghelp_window.y = Graphics.height - @qianghelp_window.height
  313.     @qianghelp_window.viewport = @viewport
  314.     @qianghelp_window.hide
  315.   end
  316.   #--------------------------------------------------------------------------
  317.   # ● 生成选择宝石
  318.   #--------------------------------------------------------------------------
  319.   def create_choosegem_window
  320.     @choosegem_window = Window_Choosegem.new
  321.     @choosegem_window.y = Graphics.height - @choosegem_window.height
  322.     @choosegem_window.viewport = @viewport
  323.     @choosegem_window.z = 120
  324.   end
  325.   #--------------------------------------------------------------------------
  326.   # ● 生成选择窗口
  327.   #--------------------------------------------------------------------------
  328.   def create_qiangxz_window
  329.     @qiangxz_window = Window_Qiangxz.new
  330.     @qiangxz_window.y = @help_window.height + fitting_height(5) /2
  331.     @qiangxz_window.z = 110
  332.     @qiangxz_window.viewport = @viewport
  333.     @qiangxz_window.set_handler(:gem,    method(:qiangxz_gem))
  334.     @qiangxz_window.set_handler(:fangb,    method(:qiangxz_fangb))
  335.     @qiangxz_window.set_handler(:fangj,    method(:qiangxz_fangj))
  336.     @qiangxz_window.set_handler(:ok, method(:qiangxz_ok))
  337.     @qiangxz_window.set_handler(:cancel, method(:qiangxz_cancel))
  338.     @qiangxz_window.hide
  339.     @qiangxz_window.deactivate
  340.   end
  341.   #--------------------------------------------------------------------------
  342.   # ● 生成指令窗口
  343.   #--------------------------------------------------------------------------
  344.   def create_command_window
  345.     @command_window = Window_QiangCommand.new
  346.     @command_window.viewport = @viewport
  347.     @command_window.y = @help_window.height + fitting_height(3) /2
  348.     @command_window.set_handler(:qiangwu,    method(:qiangwu))
  349.     @command_window.set_handler(:qiangfang,   method(:qiangfang))
  350.     @command_window.set_handler(:cancel, method(:return_scene))
  351.   end
  352.   #--------------------------------------------------------------------------
  353.   # ● 生成武器强化窗口
  354.   #--------------------------------------------------------------------------
  355.   def create_wu_window
  356.     @wu_window = Window_Qiangwu.new(@qianghelp_window,@qiangxz_window)
  357.     @wu_window.viewport = @viewport
  358.     @wu_window.y += @help_window.height
  359.     @wu_window.hide
  360.     @wu_window.help_window= @help_window
  361.     @wu_window.set_handler(:cancel, method(:qiangwu_cancel))
  362.     @wu_window.set_handler(:ok,     method(:qiangwu_ok))
  363.   end
  364.   #--------------------------------------------------------------------------
  365.   # ● 生成防具强化窗口
  366.   #--------------------------------------------------------------------------
  367.   def create_fang_window
  368.     @fang_window = Window_Qiangfang.new(@qianghelp_window,@qiangxz_window)
  369.     @fang_window.viewport = @viewport
  370.     @fang_window.y += @help_window.height
  371.     @fang_window.hide
  372.     @fang_window.help_window= @help_window
  373.     @fang_window.set_handler(:cancel, method(:qiangfang_cancel))
  374.     @fang_window.set_handler(:ok,     method(:qiangfang_ok))
  375.   end
  376.   #--------------------------------------------------------------------------
  377.   # ● 计算窗口显示指定行数时的应用高度
  378.   #--------------------------------------------------------------------------
  379.   def fitting_height(line_number)
  380.     line_number * 24 + 12 * 2
  381.   end
  382.   #--------------------------------------------------------------------------
  383.   # ● 显示强化武器
  384.   #--------------------------------------------------------------------------
  385.   def qiangwu
  386.     @command_window.hide
  387.     @help_window.show
  388.     @wu_window.show
  389.     @wu_window.start
  390.     @qianghelp_window.show
  391.     @wu_window.activate
  392.     $wufang = true
  393.     @command_window.deactivate
  394.   end
  395.   #--------------------------------------------------------------------------
  396.   # ● 显示强化防具
  397.   #--------------------------------------------------------------------------
  398.   def qiangfang
  399.     @command_window.hide
  400.     @help_window.show
  401.     @fang_window.show
  402.     @fang_window.start
  403.     @qianghelp_window.show
  404.     @fang_window.activate
  405.     $wufang = false
  406.     @command_window.deactivate
  407.   end
  408.   #--------------------------------------------------------------------------
  409.   # ● 取消强化武器
  410.   #--------------------------------------------------------------------------
  411.   def qiangwu_cancel
  412.     @command_window.show
  413.     @help_window.hide
  414.     @wu_window.hide
  415.     @qianghelp_window.hide
  416.     @command_window.activate
  417.     @qianghelp_window.set_text("")
  418.     @help_window.set_text("")
  419.   end
  420.   #--------------------------------------------------------------------------
  421.   # ● 取消强化防具
  422.   #--------------------------------------------------------------------------
  423.   def qiangfang_cancel
  424.     @command_window.show
  425.     @help_window.hide
  426.     @fang_window.hide
  427.     @qianghelp_window.hide
  428.     @command_window.activate
  429.     @qianghelp_window.set_text("")
  430.     @help_window.set_text("")
  431.   end
  432.   #--------------------------------------------------------------------------
  433.   # ● 确定强化武器
  434.   #--------------------------------------------------------------------------
  435.   def qiangwu_ok
  436.     @wu_window.qiangwu_ok
  437.     @qiangxz_window.show
  438.     @qiangxz_window.activate
  439.   end
  440.   #--------------------------------------------------------------------------
  441.   # ● 确定强化防具
  442.   #--------------------------------------------------------------------------
  443.   def qiangfang_ok
  444.     @fang_window.qiangfang_ok
  445.     @qiangxz_window.show
  446.     @qiangxz_window.activate
  447.   end
  448.   #--------------------------------------------------------------------------
  449.   # ● 获取卖出价格
  450.   #--------------------------------------------------------------------------
  451.   def selling_price
  452.     @item.price / 2
  453.   end

  454.   def qiangxz_gem
  455.     @choosegem_window.start
  456.     @qiangxz_window.deactivate
  457.     @choosegem_window.qiangxz= @qiangxz_window
  458.     if $wufang == true
  459.       @choosegem_window.wufangwindow= @wu_window
  460.     else
  461.       @choosegem_window.wufangwindow= @fang_window
  462.     end
  463.   end

  464.   def qiangxz_fangb
  465.     $fangb = !$fangb
  466.     if $wufang == true
  467.       @wu_window.update_help
  468.     else
  469.       @fang_window.update_help
  470.     end
  471.     @qiangxz_window.activate
  472.   end

  473.   def qiangxz_fangj
  474.     $fangj = !$fangj
  475.     if $wufang == true
  476.       @wu_window.update_help
  477.     else
  478.       @fang_window.update_help
  479.     end
  480.     @qiangxz_window.activate
  481.   end

  482.   def qiangxz_ok
  483.     if $wufang == true
  484.       Qiang.upweapon(@wu_window.itemid)
  485.       qianging
  486.       @qianghelp_window.set_text($message)
  487.       @qiangxz_window.hide
  488.       Graphics.wait(60)
  489.       @wu_window.activate
  490.       @qiangxz_window.deactivate
  491.       $当前使用宝石加成率 = 0
  492.       $usegem = false
  493.       @fang_window.update_help
  494.       @wu_window.refresh
  495.       @command_window.deactivate
  496.     else
  497.       Qiang.uparmor(@fang_window.itemid)
  498.       qianging
  499.       @qianghelp_window.set_text($message)
  500.       @qiangxz_window.hide
  501.       Graphics.wait(60)
  502.       @fang_window.activate
  503.       @qiangxz_window.deactivate
  504.       $当前使用宝石加成率 = 0
  505.       $usegem = false
  506.       @fang_window.update_help
  507.       @fang_window.refresh
  508.       @command_window.deactivate
  509. end
  510.   end

  511.   def qiangxz_cancel
  512.     @wu_window.show
  513.     @qiangxz_window.hide
  514.     @qiangxz_window.deactivate
  515.     if $wufang == true
  516.       @wu_window.activate
  517.     else
  518.       @fang_window.activate
  519.     end
  520.     $当前使用宝石加成率 = 0
  521.     $usegem = false
  522.     @command_window.deactivate
  523.   end

  524.   def qianging
  525.     i = 0
  526.     while i < 20
  527.       i += 1
  528.       text = "\n"
  529.       text += "█" * i + "  " * (20 - i)
  530.       text = text + "\n强化中,请等待……"
  531.       @qianghelp_window.set_text(text)
  532.       Graphics.wait(6)
  533.     end
  534.   end
  535. end

  536. class RPG::EquipItem < RPG::BaseItem
  537.   alias old initialize
  538.   def initialize
  539.     old
  540.     @up = 0 #装备强化次数
  541.   end
  542.   attr_accessor :up
  543. end
  544. #==============================================================================
  545. # ■ Window_Qiangwu
  546. #------------------------------------------------------------------------------
  547. #  强化系统_武器强化窗口
  548. #==============================================================================

  549. class Window_Qiangwu < Window_ItemList
  550.   #--------------------------------------------------------------------------
  551.   # ● 初始化对象
  552.   #--------------------------------------------------------------------------
  553.   def initialize(qianghelp,xuanze)
  554.     super(0, 0, Graphics.width, fitting_height(8))
  555.     self.openness = 0
  556.     deactivate
  557.     @qianghelp = qianghelp
  558.     @xuanze = xuanze
  559.   end
  560.   #--------------------------------------------------------------------------
  561.   # ● 开始输入的处理
  562.   #--------------------------------------------------------------------------
  563.   def start
  564.     self.category = :weapon
  565.     refresh
  566.     select(0)
  567.     open
  568.     activate
  569.   end
  570.   #--------------------------------------------------------------------------
  571.   # ● 查询此物品是否可用
  572.   #--------------------------------------------------------------------------
  573.   def enable?(item)
  574.     return false unless item != nil
  575.     Qiang.weaponupable?(item.id)
  576.   end
  577.   #--------------------------------------------------------------------------
  578.   # ● 确定强化武器
  579.   #--------------------------------------------------------------------------
  580.   def qiangwu_ok
  581.     result = item ? item.id : 0
  582.   end
  583.   #--------------------------------------------------------------------------
  584.   # ● 更新帮助内容
  585.   #--------------------------------------------------------------------------
  586.   def update_help
  587.     return unless item != nil
  588.     @help_window.set_item(item)
  589.     needmoney = 0
  590.     Qiang.weaponupable?(item.id)
  591.     qitemname = Qiang.lostitem.name
  592.     if item.up >= $强化哈希表["最高等级"]
  593.       qitemname = "无法继续升级"
  594.     end
  595.     temp = []
  596.     $usegem == true ? temp.push("●") : temp.push("○")
  597.     temp.push($data_items[$强化哈希表["特殊物品"][0]].name)
  598.     $fangb == true ? temp.push("●") : temp.push("○")
  599.     temp.push($data_items[$强化哈希表["特殊物品"][1]].name)
  600.     $fangj == true ? temp.push("●") : temp.push("○")
  601.     cgl = ($强化哈希表["每级概率"][item.up] + $当前使用宝石加成率).to_s
  602.     xxlv=($强化哈希表["消失几率"][item.up]).to_s
  603.     jjlv=($强化哈希表["降级几率"][item.up]).to_s
  604.     if item.up == 0
  605.     min = (item.params[2] * (100 + $强化哈希表["提升能力"][item.up])).floor
  606.     min /= 100
  607.     max = min + 5
  608.     else
  609.       if item.up >= $强化哈希表["最高等级"]
  610.         min = item.params[2].to_int
  611.         max = min
  612.       else
  613.     min = (item.params[2] * (100 + $强化哈希表["提升能力"][item.up])).floor
  614.     min /= 100
  615.     max = min + item.up * 3
  616.    end
  617.   end
  618.     text = "当前强化等级:" + item.up.to_s + " 强化需要:" +  qitemname
  619.     text = text + "\n" + "强化宝石:" + temp [0] + " " + temp[1] + ":" + temp[2]+ " " + temp[3] + ":" + temp[4]
  620.     text = text + "\n" + "成功率:" + cgl + "% " + "强化后攻击力范围:" + min.to_s + "~" + max.to_s
  621.     text = text + "\n" + "消失率:" + xxlv + "% " + "降级率:" + jjlv+"% "+ " 需" + Vocab::currency_unit + ":" + Qiang.needmoney.to_s
  622.     @qianghelp.set_text(text)
  623.   end
  624.   #--------------------------------------------------------------------------
  625.   # ● 获取当前武器等级
  626.   #--------------------------------------------------------------------------
  627.   def getweaponup
  628.     Qiang.weaponupisnil(item.id)
  629.     item.up
  630.   end

  631.   def itemid
  632.     item.id
  633.   end
  634.   #--------------------------------------------------------------------------
  635.   # ● 选择项目
  636.   #--------------------------------------------------------------------------
  637.   def select(index)
  638.     self.index = index if index
  639.     update_help
  640.   end
  641. end
  642. #==============================================================================
  643. # ■ Window_Qiangfang
  644. #------------------------------------------------------------------------------
  645. #  强化系统_防具强化窗口
  646. #==============================================================================

  647. class Window_Qiangfang < Window_ItemList
  648.   #--------------------------------------------------------------------------
  649.   # ● 初始化对象
  650.   #--------------------------------------------------------------------------
  651.   def initialize(qianghelp,xuanze)
  652.     super(0, 0, Graphics.width, fitting_height(8))
  653.     self.openness = 0
  654.     deactivate
  655.     @qianghelp = qianghelp
  656.     @xuanze = xuanze
  657.   end
  658.   #--------------------------------------------------------------------------
  659.   # ● 开始输入的处理
  660.   #--------------------------------------------------------------------------
  661.   def start
  662.     self.category = :armor
  663.     refresh
  664.     select(0)
  665.     open
  666.     activate
  667.   end
  668.   #--------------------------------------------------------------------------
  669.   # ● 查询此物品是否可用
  670.   #--------------------------------------------------------------------------
  671.   def enable?(item)
  672.     return false unless item != nil
  673.     Qiang.armorupable?(item.id)
  674.   end
  675.   #--------------------------------------------------------------------------
  676.   # ● 确定强化防具
  677.   #--------------------------------------------------------------------------
  678.   def qiangfang_ok
  679.     result = item ? item.id : 0
  680.   end
  681.   #--------------------------------------------------------------------------
  682.   # ● 更新帮助内容
  683.   #--------------------------------------------------------------------------
  684.   def update_help
  685.     return unless item != nil
  686.     @help_window.set_item(item)
  687.     needmoney = 0
  688.     Qiang.armorupable?(item.id)
  689.     qitemname = Qiang.lostitem.name
  690.     if item.up >= $强化哈希表["最高等级"]
  691.       qitemname = "无法继续升级"
  692.     end
  693.     temp = []
  694.     $usegem == true ? temp.push("●") : temp.push("○")
  695.     temp.push($data_items[$强化哈希表["特殊物品"][0]].name)
  696.     $fangb == true ? temp.push("●") : temp.push("○")
  697.     temp.push($data_items[$强化哈希表["特殊物品"][1]].name)
  698.     $fangj == true ? temp.push("●") : temp.push("○")
  699.     cgl = ($强化哈希表["每级概率"][item.up] + $当前使用宝石加成率).to_s
  700.     xxlv=($强化哈希表["消失几率"][item.up]).to_s
  701.     jjlv=($强化哈希表["降级几率"][item.up]).to_s
  702.     if item.up == 0
  703.     min = (item.params[3] * (100 + $强化哈希表["提升能力"][item.up])).floor
  704.     min /= 100
  705.       max = min + 5
  706.     else
  707.       if item.up >= $强化哈希表["最高等级"]
  708.         min = item.params[3].to_int
  709.         max = min
  710.       else
  711.     min = (item.params[3] * (100 + $强化哈希表["提升能力"][item.up])).floor
  712.     min /= 100
  713.     max = min + item.up * 3
  714.     end
  715.   end
  716.     text = "当前强化等级:" + item.up.to_s + " 强化需要:" +  qitemname
  717.     text = text + "\n" + "强化宝石:" + temp [0] + " " + temp[1] + ":" + temp[2]+ " " + temp[3] + ":" + temp[4]
  718.     text = text + "\n" + "成功率:" + cgl + "% " + "强化后防御范围:" + min.to_s + "~" + max.to_s
  719.     text = text + "\n" + "消失率:" + xxlv + "% " + "降级率:" + jjlv+"% "+ " 需" + Vocab::currency_unit + ":" + Qiang.needmoney.to_s
  720.     @qianghelp.set_text(text)
  721.   end
  722.   #--------------------------------------------------------------------------
  723.   # ● 获取当前防具等级
  724.   #--------------------------------------------------------------------------
  725.   def getarmorup
  726.     Qiang.armorupisnil(item.id)
  727.     item.up
  728.   end

  729.   def itemid
  730.     item.id
  731.   end
  732.   #--------------------------------------------------------------------------
  733.   # ● 选择项目
  734.   #--------------------------------------------------------------------------
  735.   def select(index)
  736.     self.index = index if index
  737.     update_help
  738.   end
  739. end
  740. #==============================================================================
  741. # ■ Window_QiangCommand
  742. #------------------------------------------------------------------------------
  743. #  强化系统中,处理命令选择的窗口。
  744. #==============================================================================

  745. class Window_QiangCommand < Window_Command
  746.   #--------------------------------------------------------------------------
  747.   # ● 初始化对象
  748.   #--------------------------------------------------------------------------
  749.   def initialize
  750.     super(0, 0)
  751.     update_placement
  752.     self.openness = 0
  753.     open
  754.   end
  755.   #--------------------------------------------------------------------------
  756.   # ● 获取窗口的宽度
  757.   #--------------------------------------------------------------------------
  758.   def window_width
  759.     return 160
  760.   end
  761.   #--------------------------------------------------------------------------
  762.   # ● 更新窗口的位置
  763.   #--------------------------------------------------------------------------
  764.   def update_placement
  765.     self.x = (Graphics.width - width) / 2
  766.     self.y = (Graphics.height - height) / 2
  767.   end
  768.   #--------------------------------------------------------------------------
  769.   # ● 生成指令列表
  770.   #--------------------------------------------------------------------------
  771.   def make_command_list
  772.     add_command("强化兵器",    :qiangwu)
  773.     add_command("强化防具",    :qiangfang)
  774.     add_command(Vocab::ShopCancel, :cancel)
  775.   end
  776. end
  777. #==============================================================================
  778. # ■ Window_Qianghelp
  779. #------------------------------------------------------------------------------
  780. #  显示说明
  781. #==============================================================================

  782. class Window_Qianghelp < Window_Base
  783.   #--------------------------------------------------------------------------
  784.   # ● 初始化对象
  785.   #--------------------------------------------------------------------------
  786.   def initialize
  787.     super(0, 0, window_width, fitting_height(4) + 8)
  788.     refresh
  789.   end
  790.   #--------------------------------------------------------------------------
  791.   # ● 获取窗口的宽度
  792.   #--------------------------------------------------------------------------
  793.   def window_width
  794.     return 544
  795.   end
  796.   #--------------------------------------------------------------------------
  797.   # ● 获取持有金钱
  798.   #--------------------------------------------------------------------------
  799.   def value
  800.     $game_party.gold
  801.   end
  802.   #--------------------------------------------------------------------------
  803.   # ● 获取货币单位
  804.   #--------------------------------------------------------------------------
  805.   def currency_unit
  806.     Vocab::currency_unit
  807.   end
  808.   #--------------------------------------------------------------------------
  809.   # ● 设置内容
  810.   #--------------------------------------------------------------------------
  811.   def set_text(text)
  812.     if text != @text
  813.       @text = text
  814.       refresh
  815.     end
  816.   end
  817.   #--------------------------------------------------------------------------
  818.   # ● 清除
  819.   #--------------------------------------------------------------------------
  820.   def clear
  821.     set_text("")
  822.   end
  823.   #--------------------------------------------------------------------------
  824.   # ● 刷新
  825.   #--------------------------------------------------------------------------
  826.   def refresh
  827.     contents.clear
  828.     draw_text_ex(4, 0, @text)
  829.   end
  830. end
  831. #==============================================================================
  832. # ■ Window_Qiangxz
  833. #------------------------------------------------------------------------------
  834. #  强化系统中,选择强化方式的窗口。
  835. #==============================================================================

  836. class Window_Qiangxz < Window_Command
  837.   @havegem = false
  838.   @havefangb = false
  839.   @havefangj = false
  840.   #--------------------------------------------------------------------------
  841.   # ● 初始化对象
  842.   #--------------------------------------------------------------------------
  843.   def initialize
  844.     super(0, 0)
  845.     index = 0
  846.     update_placement
  847.     self.openness = 0
  848.     open
  849.   end
  850.   #--------------------------------------------------------------------------
  851.   # ● 获取窗口的宽度
  852.   #--------------------------------------------------------------------------
  853.   def window_width
  854.     return 180
  855.   end
  856.   #--------------------------------------------------------------------------
  857.   # ● 更新窗口的位置
  858.   #--------------------------------------------------------------------------
  859.   def update_placement
  860.     self.x = (Graphics.width - width) / 2
  861.     self.y = (Graphics.height - height) / 2
  862.   end
  863.   #--------------------------------------------------------------------------
  864.   # ● 检查可用
  865.   #--------------------------------------------------------------------------
  866.   def haveitem
  867.     @havegem = false
  868.     @havefangb = false
  869.     @havefangj = false
  870.     for i in $强化哈希表["宝石效果"]
  871.         if $game_party.has_item?($data_items[i[0]])
  872.         @havegem = true
  873.       end
  874.     end
  875.     @havefangb = $game_party.has_item?($data_items[$强化哈希表["特殊物品"][0]])
  876.     @havefangj = $game_party.has_item?($data_items[$强化哈希表["特殊物品"][1]])
  877.   end
  878.   #--------------------------------------------------------------------------
  879.   # ● 生成指令列表
  880.   #--------------------------------------------------------------------------
  881.   def make_command_list
  882.     haveitem
  883.     add_command("宝石",     :gem, @havegem)
  884.     add_command(Qiang.idgetitem($强化哈希表["特殊物品"][0]).name, :fangb, @havefangb)
  885.     add_command(Qiang.idgetitem($强化哈希表["特殊物品"][1]).name, :fangj, @havefangj)
  886.     add_command("开始强化", :start)
  887.     add_command("取消强化", :cancel)
  888.   end
  889. end
  890. #==============================================================================
  891. # ■ Window_Base
  892. #------------------------------------------------------------------------------
  893. #  游戏中所有窗口的父类
  894. #==============================================================================

  895. class Window_Base < Window
  896.   #--------------------------------------------------------------------------
  897.   # ● 绘制物品名称
  898.   #     enabled : 有效的标志。false 的时候使用半透明效果绘制
  899.   #--------------------------------------------------------------------------
  900.   def draw_item_name(item, x, y, enabled = true, width = 172)
  901.     return unless item
  902.     draw_icon(item.icon_index, x, y, enabled)
  903.     change_color(normal_color, enabled)
  904.   if item.is_a?(RPG::EquipItem)
  905.       n = item.note
  906.       a = n.split{/<(?:Quality|品质)\s*(.+)>/i}
  907.       c = a[1].to_i
  908.       if c <= 1
  909.         color = PS0::Window_Base_Itemcolor::Color1
  910.       elsif c == 2
  911.         color = PS0::Window_Base_Itemcolor::Color2
  912.       elsif c == 3
  913.         color = PS0::Window_Base_Itemcolor::Color3
  914.       elsif c == 4
  915.         color = PS0::Window_Base_Itemcolor::Color4
  916.       elsif c == 5
  917.         color = PS0::Window_Base_Itemcolor::Color5
  918.       elsif c == 6
  919.         color = PS0::Window_Base_Itemcolor::Color6
  920.       elsif c == 7
  921.         color = PS0::Window_Base_Itemcolor::Color7
  922.       else
  923.         color = Color.new(0, 0, 0, 0)
  924.       end
  925.       self.contents.fill_rect(x, y, 24, 1, color)
  926.       self.contents.fill_rect(x, y, 1, 24, color)
  927.       self.contents.fill_rect(x, y+23, 24, 1, color)
  928.       self.contents.fill_rect(x+23, y, 1, 24, color)
  929.       draw_icon(item.icon_index, x, y, enabled)
  930.       change_color(color, enabled)
  931.         draw_text(x + 24, y, width, line_height, item.name)
  932.     if item.up != nil && item.up != 0
  933.     draw_text(x + 24, y, width, line_height, item.name + " +" + item.up.to_s)
  934.   else
  935.     draw_text(x + 24, y, width, line_height, item.name)
  936.   end
  937.   else
  938.     draw_text(x + 24, y, width, line_height, item.name)
  939.   end
  940.   end
  941. end
  942. class Window_ItemList
  943.   #--------------------------------------------------------------------------
  944.   # ● 查询列表中是否含有此物品
  945.   #--------------------------------------------------------------------------
  946.   def include?(item)
  947.     case @category
  948.     when :item
  949.       item.is_a?(RPG::Item) && !item.key_item?
  950.     when :weapon
  951.       item.is_a?(RPG::Weapon)
  952.     when :armor
  953.       item.is_a?(RPG::Armor)
  954.     when :key_item
  955.       item.is_a?(RPG::Item) && item.key_item?
  956.     when :gem
  957.       itemid = item ? item.id : 0
  958.       itemid != 0 ? isgem(itemid) : false
  959.     else
  960.       false
  961.     end
  962.   end

  963.   def isgem(itemid)
  964.     for i in $强化哈希表["宝石效果"]
  965.       return true if i[1] == itemid
  966.     end
  967.     false
  968.   end
  969. end
  970. #==============================================================================
  971. # ■ Window_Choosegem
  972. #------------------------------------------------------------------------------
  973. #  选择强化使用的宝石
  974. #==============================================================================

  975. class Window_Choosegem < Window_ItemList
  976.   #--------------------------------------------------------------------------
  977.   # ● 初始化对象
  978.   #--------------------------------------------------------------------------
  979.   def initialize()
  980.     super(0, 0, Graphics.width, fitting_height(2))
  981.     self.openness = 0
  982.     deactivate
  983.     @wufangwindow = nil
  984.     @qiangxz = nil
  985.     set_handler(:ok,     method(:on_ok))
  986.     set_handler(:cancel, method(:on_cancel))
  987.   end

  988.   def wufangwindow=(wufangwindow)
  989.     @wufangwindow = wufangwindow
  990.   end
  991.   def qiangxz=(qiangxz)
  992.     @qiangxz = qiangxz
  993.   end
  994.   #--------------------------------------------------------------------------
  995.   # ● 开始输入的处理
  996.   #--------------------------------------------------------------------------
  997.   def start
  998.     self.category = :gem
  999.     self.y = (Graphics.height - height) / 2
  1000.     refresh
  1001.     select(0)
  1002.     open
  1003.     activate
  1004.   end
  1005.   #--------------------------------------------------------------------------
  1006.   # ● 确定时的处理
  1007.   #--------------------------------------------------------------------------
  1008.   def on_ok
  1009.     result = item ? item.id : 0
  1010.     if result != 0
  1011.      $usegem = true
  1012.      $当前使用宝石id = result
  1013.      for i in $强化哈希表["宝石效果"]
  1014.        $当前使用宝石加成率 = i[0] if i[1] == $当前使用宝石id
  1015.      end
  1016.    else
  1017.      $当前使用宝石加成率 = 0
  1018.      $usegem = false
  1019.     end
  1020.     @wufangwindow.update_help
  1021.     @qiangxz.activate
  1022.     close
  1023.   end
  1024.   #--------------------------------------------------------------------------
  1025.   # ● 查询此物品是否可用
  1026.   #--------------------------------------------------------------------------
  1027.   def enable?(item)
  1028.     true
  1029.   end
  1030.   #--------------------------------------------------------------------------
  1031.   # ● 取消时的处理
  1032.   #--------------------------------------------------------------------------
  1033.   def on_cancel
  1034.     $当前使用宝石加成率 = 0
  1035.     $usegem = false
  1036.     @wufangwindow.update_help
  1037.     @qiangxz.activate
  1038.     close
  1039.   end
  1040. end
  1041. #==============================================================================
  1042. # ■ 强化系统DataManager
  1043. #------------------------------------------------------------------------------
  1044. #  将武器和防具数据保存入存档
  1045. #==============================================================================
  1046. module DataManager
  1047.   #--------------------------------------------------------------------------
  1048.   # ● 生成存档内容
  1049.   #--------------------------------------------------------------------------
  1050.   def self.make_save_contents
  1051.     contents = {}
  1052.     contents[:system]        = $game_system
  1053.     contents[:timer]         = $game_timer
  1054.     contents[:message]       = $game_message
  1055.     contents[:switches]      = $game_switches
  1056.     contents[:variables]     = $game_variables
  1057.     contents[:self_switches] = $game_self_switches
  1058.     contents[:actors]        = $game_actors
  1059.     contents[:party]         = $game_party
  1060.     contents[:troop]         = $game_troop
  1061.     contents[:map]           = $game_map
  1062.     contents[:player]        = $game_player
  1063.     contents[:weapons]       = $data_weapons
  1064.     contents[:armors]        = $data_armors
  1065.     contents
  1066.   end
  1067.   #--------------------------------------------------------------------------
  1068.   # ● 展开存档内容
  1069.   #--------------------------------------------------------------------------
  1070.   def self.extract_save_contents(contents)
  1071.     $game_system        = contents[:system]
  1072.     $game_timer         = contents[:timer]
  1073.     $game_message       = contents[:message]
  1074.     $game_switches      = contents[:switches]
  1075.     $game_variables     = contents[:variables]
  1076.     $game_self_switches = contents[:self_switches]
  1077.     $game_actors        = contents[:actors]
  1078.     $game_party         = contents[:party]
  1079.     $game_troop         = contents[:troop]
  1080.     $game_map           = contents[:map]
  1081.     $game_player        = contents[:player]
  1082.     $data_weapons       = contents[:weapons]
  1083.     $data_armors        = contents[:armors]
  1084.   end
  1085. end
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-22 11:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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