#encoding:utf-8 #============================================================================== # ■ 装备强化系统 By wyongcan #============================================================================== module Equipplus #升到各级时装备颜色请在“颜色描绘”脚本中修改 $maxlv = 12 #最高升到的级数 $gailv = [100,80,70,60,50,30,20,10,5,5,5,5,1] #每级提升概率 $gemlv = [[60,23],[10,28],[25,29],[40,30]] #使用宝石提高的機率 [提高機率,宝石ID] $uplv = [[12,17]] #强化所需要的强化石 [最大强化到的等级,强化石ID] $xxlv = [0,0,5,10,15,20,25,30,30,40,40,45,60] #每级强化后失败物品消失的機率 $jjlv = [0,10,15,20,30,45,55,65,70,70,75,80,100] #每级强化后失败物品降级的機率 $tsnl = [10,14,18,22,26,30,34,38,42,46,50,54,65] #每级强化提升能力的百分比 $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) * 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 @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
#-------------------------------------------------------------------------- # ● 更新帮助位置 #-------------------------------------------------------------------------- def uppos(index,rect,window) self.height = fitting_height2(Equipplus.getline(@xtext,13)) create_contents contents.font.size = 14 rect.x -= window.ox rect.y -= window.oy ax = rect.x + rect.width + 10 ax = rect.x - self.width + 10 if ax + self.width > window.width + 10 ax += window.x ax = 0 if ax < 0 ay = rect.y + rect.height ay = rect.y - self.height if ay + self.height > window.height ay += window.y ay = 0 if ay < 0 self.x = ax self.y = ay set_text(@xtext) show end #-------------------------------------------------------------------------- # ● 更新帮助内容 #-------------------------------------------------------------------------- def update_help @help_window.set_item(item) @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil end end class Window_SkillList < Window_Selectable #-------------------------------------------------------------------------- # ● 更新帮助内容 #-------------------------------------------------------------------------- def update_help @help_window.set_item(item) @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil end end class Window_ShopBuy < Window_Selectable #-------------------------------------------------------------------------- # ● 更新帮助内容 #-------------------------------------------------------------------------- def update_help @help_window.set_item(item) if @help_window @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil && @help_window @status_window.item = item if @status_window end end class Window_EquipSlot < Window_Selectable #-------------------------------------------------------------------------- # ● 更新帮助内容 #-------------------------------------------------------------------------- def update_help super @help_window.set_item(item) if @help_window @help_window.uppos(index,item_rect(index),self) if index != -1 && item != nil && @help_window @status_window.set_temp_actor(nil) if @status_window end end
321.27 KB, 下载次数: 99
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |