查看: 2039|回复: 0

[已经过期] 请问装备强化脚本如何改为强化提升固定值

[复制链接]
梦石
0
星屑
50
在线时间
47 小时
注册时间
2012-12-13
回帖
22
发表于 2012-12-23 02:25:55 | 显示全部楼层 |阅读模式

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

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

×
如踢,我觉得强化系统强化的太过高了,想改成固定数值,如我想每+1改成武器提升3点攻击,防具则是提升2点防御,另外强化无需金币,希望各位大大帮助修改一下。

[pre lang="ruby" line="1"]
#==============================================================================

# ■ 强化系统 优化版

#------------------------------------------------------------------------------

#  强化系统  wyongcan制作

# 优化版更新内容:优化了语法,修复部分BUG,使代码可读性增强,增加了宝石选择窗口

# 发布于66RPG  转载请保留版权信息

#==============================================================================

module Qiang

$maxlv = 9  #最高升到的级数
$gailv = [100,100,100,75,75,75,50,50,50 ] #每级提升概率
$gemlv = [[15,33],[30,34]] #使用宝石提高的几率  [提高几率,宝石ID]
$uplv = [[3,30],[6,31],[9,32]] #强化所需要的强化石 [最大强化到的等级,强化石ID]
$xxlv = [0,0,0,10,15,20,30,40,50] #每级强化后失败物品消失的几率
$jjlv = [0,0,0,10,15,20,30,40,50] #每级强化后失败物品降级的几率
$tsnl = [5,10,15,20,25,30,35,40,45] #每级强化提升能力的百分比

$tswp = [35,36] # 意思是:如果有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) * 5 + 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) * 5 + 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

    @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

    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 + " 强化所需" + Vocab::currency_unit + ":" + Qiang.needmoney.to_s

    text = text + "\n" + "当前强化等级:" + 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

    @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

    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 + " 强化所需" + Vocab::currency_unit + ":" + Qiang.needmoney.to_s

    text = text + "\n" + "当前强化等级:" + 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

    @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[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(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)

  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]
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

在本版发帖返回顶部