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

Project1

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

还是读档问题……

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
80
在线时间
5 小时
注册时间
2008-2-17
帖子
125
跳转到指定楼层
1
发表于 2008-11-8 21:35:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
那个…我用上装备组合脚本就出错

版务信息:本贴由楼主自主结贴~

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3309
在线时间
3620 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

2
发表于 2008-11-8 21:36:49 | 只看该作者
S写的?
因为和存档类脚本有牵涉,
所以可能跟某些跟存档有关的脚本会冲突。比如自动存档……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
5 小时
注册时间
2008-2-17
帖子
125
3
 楼主| 发表于 2008-11-8 21:37:35 | 只看该作者
  1. # 组合装备脚本 Written by SLICK

  2. module RPG
  3.   class Weapon
  4.     attr_accessor :combine
  5.     def description
  6.       return @description.split(/,/)[0].to_s
  7.     end
  8.     def combine
  9.       ccc = @description.split(/,/)[1].to_i
  10.       return ccc = nil ? 0 : ccc
  11.     end  
  12.   end
  13.   class Armor
  14.     attr_accessor :combine
  15.     def description
  16.       return @description.split(/,/)[0].to_s
  17.     end
  18.     def combine
  19.       ccc = @description.split(/,/)[1].to_i
  20.       return ccc = nil ? 0 : ccc
  21.     end  
  22.   end
  23. end  

  24. class Scene_Title
  25.   alias etech_main main
  26.   def main
  27.     etech_main
  28.     $data_weapons[1000] = $data_weapons[0]
  29.     $data_armors[1000] = $data_armors[0]
  30.   end  
  31. end

  32. class Scene_Save < Scene_File
  33.   #--------------------------------------------------------------------------
  34.   # ● 写入存档数据
  35.   #     file : 写入用文件对像 (已经打开)
  36.   #--------------------------------------------------------------------------
  37.   def write_save_data(file)
  38.     # 生成描绘存档文件用的角色图形
  39.     characters = []
  40.     for i in 0...$game_party.actors.size
  41.       actor = $game_party.actors[i]
  42.       characters.push([actor.character_name, actor.character_hue])
  43.     end
  44.     # 写入描绘存档文件用的角色数据
  45.     Marshal.dump(characters, file)
  46.     # 写入测量游戏时间用画面计数
  47.     Marshal.dump(Graphics.frame_count, file)
  48.     # 增加 1 次存档次数
  49.     $game_system.save_count += 1
  50.     # 保存魔法编号
  51.     # (将编辑器保存的值以随机值替换)
  52.     $game_system.magic_number = $data_system.magic_number
  53.     # 写入各种游戏对像
  54.     Marshal.dump($game_system, file)
  55.     Marshal.dump($game_switches, file)
  56.     Marshal.dump($game_variables, file)
  57.     Marshal.dump($game_self_switches, file)
  58.     Marshal.dump($game_screen, file)
  59.     Marshal.dump($game_actors, file)
  60.     Marshal.dump($game_party, file)
  61.     Marshal.dump($game_troop, file)
  62.     Marshal.dump($game_map, file)
  63.     Marshal.dump($game_player, file)
  64.     Marshal.dump($data_weapons.size, file)
  65.     for iii in 1000...$data_weapons.size
  66.       Marshal.dump($data_weapons[iii], file)
  67.     end
  68.     Marshal.dump($data_armors.size, file)
  69.     for iii in 1000...$data_armors.size
  70.       Marshal.dump($data_armors[iii], file)
  71.     end
  72.   end
  73. end

  74. class Scene_Load < Scene_File
  75.   #--------------------------------------------------------------------------
  76.   # ● 读取存档数据
  77.   #     file : 读取用文件对像 (已经打开)
  78.   #--------------------------------------------------------------------------
  79.   def read_save_data(file)
  80.     # 读取描绘存档文件用的角色数据
  81.     characters = Marshal.load(file)
  82.     # 读取测量游戏时间用画面计数
  83.     Graphics.frame_count = Marshal.load(file)
  84.     # 读取各种游戏对像
  85.     $game_system        = Marshal.load(file)
  86.     $game_switches      = Marshal.load(file)
  87.     $game_variables     = Marshal.load(file)
  88.     $game_self_switches = Marshal.load(file)
  89.     $game_screen        = Marshal.load(file)
  90.     $game_actors        = Marshal.load(file)
  91.     $game_party         = Marshal.load(file)
  92.     $game_troop         = Marshal.load(file)
  93.     $game_map           = Marshal.load(file)
  94.     $game_player        = Marshal.load(file)
  95.     $data_weapons       = []
  96.     $data_armors        = []
  97.     $data_weapons       = load_data("Data/Weapons.rxdata")
  98.     $data_armors        = load_data("Data/Armors.rxdata")
  99.     iii = Marshal.load(file)
  100.     for jjj in 1000...iii
  101.       $data_weapons[jjj]= Marshal.load(file)
  102.     end
  103.     iii = Marshal.load(file)
  104.     for jjj in 1000...iii
  105.       $data_armors[jjj] = Marshal.load(file)
  106.     end  
  107.     # 魔法编号与保存时有差异的情况下
  108.     # (加入编辑器的编辑过的数据)
  109.     if $game_system.magic_number != $data_system.magic_number
  110.       # 重新装载地图
  111.       $game_map.setup($game_map.map_id)
  112.       $game_player.center($game_player.x, $game_player.y)
  113.     end
  114.     # 刷新同伴成员
  115.     $game_party.refresh
  116.   end
  117. end  

  118. #==============================================================================
  119. # ■ Scene_Combine
  120. #------------------------------------------------------------------------------
  121. #  处理合成画面的类。
  122. #==============================================================================

  123. class Scene_Combine
  124.   #--------------------------------------------------------------------------
  125.   # ● 初始化对像
  126.   #     actor_index : 角色索引
  127.   #     equip_index : 装备索引
  128.   #--------------------------------------------------------------------------
  129.   def initialize(actor_index = 0)
  130.     @actor_index = actor_index
  131.   end
  132.   
  133.   def main
  134.     @help_window = Window_Help.new
  135.     @name_window = Window_NNName.new($game_party.actors[@actor_index])
  136.     @combine_window = Window_Material.new
  137.     @combine_window.help_window = @help_window
  138.     @equip_window = Window_CombineRight.new($game_party.actors[@actor_index])
  139.     @equip_window.help_window = @help_window
  140.     @ccconfirm_window = Window_CCConfirm.new
  141.     @combine_window.visible = true
  142.     @combine_window.active = false
  143.     @equip_window.visible = true
  144.     @equip_window.active = true
  145.     @ccconfirm_window.visible = false
  146.     @ccconfirm_window.active = false
  147.     # 执行过度
  148.     Graphics.transition
  149.     # 主循环
  150.     loop do
  151.       # 刷新游戏画面
  152.       Graphics.update
  153.       # 刷新输入信息
  154.       Input.update
  155.       # 刷新画面
  156.       update
  157.       # 如果画面切换就中断循环
  158.       if $scene != self
  159.         break
  160.       end
  161.     end
  162.     # 装备过渡
  163.     Graphics.freeze
  164.     # 释放窗口
  165.     @help_window.dispose
  166.     @combine_window.dispose
  167.     @equip_window.dispose
  168.     @name_window.dispose
  169.     @ccconfirm_window.dispose
  170.   end  
  171.   
  172.   def update
  173.     @help_window.update
  174.     @combine_window.update
  175.     @equip_window.update
  176.     @ccconfirm_window.update
  177.     if @combine_window.active
  178.       update_combine
  179.       return
  180.     end  
  181.     if @equip_window.active
  182.       update_equip
  183.       return
  184.     end
  185.     if @ccconfirm_window.active
  186.       update_ccconfirm
  187.       return
  188.     end  
  189.   end  
  190.   
  191.   def update_ccconfirm
  192.      # 按下 B 键的情况下
  193.     if Input.trigger?(Input::B)
  194.       # 演奏取消 SE
  195.       $game_system.se_play($data_system.cancel_se)
  196.       # 切换到菜单画面
  197.       @epro_window.dispose
  198.       @ccconfirm_window.active = false
  199.       @ccconfirm_window.visible = false
  200.       @equip_window.active = true
  201.       return
  202.     end
  203.     if Input.trigger?(Input::C)
  204.       case @ccconfirm_window.index
  205.         when 0
  206.           $game_system.se_play($data_system.decision_se)
  207.           iiitem = @combine_window.item
  208.           case @equip_window.index
  209.             when 0
  210.               make_new_equip($data_weapons[$game_party.actors[@actor_index].weapon_id], iiitem)
  211.             when 1
  212.               make_new_equip($data_armors[$game_party.actors[@actor_index].armor1_id], iiitem)
  213.             when 2
  214.               make_new_equip($data_armors[$game_party.actors[@actor_index].armor2_id], iiitem)
  215.             when 3
  216.               make_new_equip($data_armors[$game_party.actors[@actor_index].armor3_id], iiitem)
  217.             when 4
  218.               make_new_equip($data_armors[$game_party.actors[@actor_index].armor4_id], iiitem)
  219.           end   
  220.         when 1
  221.           # 演奏取消 SE
  222.           $game_system.se_play($data_system.cancel_se)
  223.           # 切换到菜单画面
  224.           @epro_window.dispose
  225.           @ccconfirm_window.active = false
  226.           @ccconfirm_window.visible = false
  227.           @equip_window.active = true
  228.       end   
  229.       return
  230.     end
  231.     if Input.trigger?(Input::UP)
  232.       $game_system.se_play($data_system.cursor_se)
  233.       @ccconfirm_window.index = 0
  234.       return
  235.     end
  236.     if Input.trigger?(Input::DOWN)
  237.       $game_system.se_play($data_system.cursor_se)
  238.       @ccconfirm_window.index = 1
  239.       return
  240.     end
  241.   end
  242.   
  243.   def make_new_equip(combine1, combine2)
  244.     $game_switches[49] = true
  245.     result = rand(100).to_i
  246.     if result >= $game_variables[50]
  247.       $game_party.actors[@actor_index].equip(@equip_window.index, 0, 1)
  248.       $game_variables[49] = 1
  249.     else  
  250.       if @equip_window.index == 0
  251.         iii = $data_weapons.size
  252.         kkk = $game_party.actors[@actor_index].weapon_id
  253.         $data_weapons[iii] = $data_weapons[kkk].clone
  254.         $data_weapons[iii].id = iii
  255.         if $new_extra != nil
  256.           $data_weapons[iii].name = ( $data_weapons[kkk].name)
  257.         end
  258.         if $new_element_plus != nil
  259.           $data_weapons[iii].name = ( $data_weapons[kkk].name)
  260.         end
  261.         $data_weapons[iii].description = ($data_weapons[kkk].description + "," + [$data_weapons[kkk].combine - 1].to_s)
  262.         $data_weapons[iii].atk = $data_weapons[kkk].atk + ($atk_plus2 * (80 + rand(41)) / 100).to_i
  263.         $data_weapons[iii].pdef = $data_weapons[kkk].pdef + ($pdef_plus2 * (80 + rand(41)) / 100).to_i
  264.         $data_weapons[iii].mdef = $data_weapons[kkk].mdef + ($mdef_plus2 * (80 + rand(41)) / 100).to_i
  265.         $data_weapons[iii].str_plus = $data_weapons[kkk].str_plus + ($str_plus2 * (80 + rand(41)) / 100).to_i
  266.         $data_weapons[iii].dex_plus = $data_weapons[kkk].dex_plus + ($dex_plus2 * (80 + rand(41)) / 100).to_i
  267.         $data_weapons[iii].agi_plus = $data_weapons[kkk].agi_plus + ($agi_plus2 * (80 + rand(41)) / 100).to_i
  268.         $data_weapons[iii].int_plus = $data_weapons[kkk].int_plus + ($int_plus2 * (80 + rand(41)) / 100).to_i
  269.         $data_weapons[iii].element_set = $element_plus2
  270.         $game_party.gain_weapon(iii, 1)
  271.         for jjj in 1...$data_classes.size
  272.           if $data_classes[jjj].weapon_set.include?(kkk)
  273.             $data_classes[jjj].weapon_set.push(iii)
  274.           end  
  275.         end  
  276.       else
  277.         iii = $data_armors.size
  278.         case @equip_window.index
  279.           when 1
  280.             kkk = $game_party.actors[@actor_index].armor1_id            
  281.           when 2
  282.             kkk = $game_party.actors[@actor_index].armor2_id            
  283.           when 3
  284.             kkk = $game_party.actors[@actor_index].armor3_id            
  285.           when 4
  286.             kkk = $game_party.actors[@actor_index].armor4_id            
  287.         end  
  288.         $data_armors[iii] = $data_armors[kkk].clone  
  289.         $data_armors[iii].id = iii
  290.         if $new_extra != nil
  291.           $data_armors[iii].name = ( $data_armors[kkk].name)
  292.         end
  293.         if $new_element_plus != nil
  294.           $data_armors[iii].name = ( $data_armors[kkk].name)
  295.         end
  296.         $data_armors[iii].description = ($data_armors[kkk].description + "," + [$data_armors[kkk].combine - 1].to_s)
  297.         $data_armors[iii].eva = $data_armors[kkk].eva + ($eva_plus2 * (80 + rand(41)) / 100).to_i
  298.         $data_armors[iii].pdef = $data_armors[kkk].pdef + ($pdef_plus2 * (80 + rand(41)) / 100).to_i
  299.         $data_armors[iii].mdef = $data_armors[kkk].mdef + ($mdef_plus2 * (80 + rand(41)) / 100).to_i
  300.         $data_armors[iii].str_plus = $data_armors[kkk].str_plus + ($str_plus2 * (80 + rand(41)) / 100).to_i
  301.         $data_armors[iii].dex_plus = $data_armors[kkk].dex_plus + ($dex_plus2 * (80 + rand(41)) / 100).to_i
  302.         $data_armors[iii].agi_plus = $data_armors[kkk].agi_plus + ($agi_plus2 * (80 + rand(41)) / 100).to_i
  303.         $data_armors[iii].int_plus = $data_armors[kkk].int_plus + ($int_plus2 * (80 + rand(41)) / 100).to_i
  304.         $data_armors[iii].guard_element_set = $element_plus2
  305.         $game_party.gain_armor(iii, 1)  
  306.         for jjj in 1...$data_classes.size
  307.           if $data_classes[jjj].armor_set.include?(kkk)
  308.             $data_classes[jjj].armor_set.push(iii)
  309.           end  
  310.         end  
  311.       end  
  312.       $game_party.actors[@actor_index].equip(@equip_window.index, iii, 1)
  313.       $game_variables[49] = 0
  314.     end  
  315.          
  316.     $game_party.lose_item(combine2.id, 1)
  317.     @epro_window.dispose
  318.     $scene = Scene_Map.new
  319.   end  
  320.   
  321.   def update_combine
  322.     # 按下 B 键的情况下
  323.     if Input.trigger?(Input::B)
  324.       # 演奏取消 SE
  325.       $game_system.se_play($data_system.cancel_se)
  326.       # 切换到菜单画面
  327.       @combine_window.active = false
  328.       @equip_window.active = true
  329.       return
  330.     end
  331.     if Input.trigger?(Input::C)
  332.       $game_system.se_play($data_system.decision_se)
  333.       @combine_window.active = false
  334.       @combine2 = @combine_window.item
  335.       @epro_window = Window_EPro.new(@combine1, @combine2)
  336.       @epro_window.visible = true
  337.       @epro_window.active = false
  338.       @ccconfirm_window.active = true
  339.       @ccconfirm_window.visible = true
  340.     end  
  341.   end  
  342.   
  343.   def update_equip
  344.     # 按下 B 键的情况下
  345.     if Input.trigger?(Input::B)
  346.       # 演奏取消 SE
  347.       $game_system.se_play($data_system.cancel_se)
  348.       # 切换到菜单画面
  349.       $game_switches[49] = true
  350.       $game_variables[49] = 2
  351.       $scene = Scene_Map.new
  352.       return
  353.     end
  354.     # 按下 C 键的情况下
  355.     if Input.trigger?(Input::C)
  356.       case @equip_window.index
  357.         when 0
  358.           @combine1 = $data_weapons[$game_party.actors[@actor_index].weapon_id]
  359.         when 1
  360.           @combine1 = $data_armors[$game_party.actors[@actor_index].armor1_id]
  361.         when 2
  362.           @combine1 = $data_armors[$game_party.actors[@actor_index].armor2_id]
  363.         when 3
  364.           @combine1 = $data_armors[$game_party.actors[@actor_index].armor3_id]
  365.         when 4
  366.           @combine1 = $data_armors[$game_party.actors[@actor_index].armor4_id]  
  367.       end
  368.       $game_system.se_play($data_system.decision_se)  
  369.       if @combine1 == nil
  370.         return
  371.       end  
  372.       if @combine1.combine <= 0
  373.         return
  374.       end  
  375.       @combine_window.active = true
  376.       @equip_window.active = false
  377.       return
  378.     end
  379.     # 按下 R 键的情况下
  380.     if Input.trigger?(Input::R)
  381.       # 演奏光标 SE
  382.       $game_system.se_play($data_system.cursor_se)
  383.       # 移至下一位角色
  384.       @actor_index += 1
  385.       @actor_index %= $game_party.actors.size
  386.       # 切换到别的装备画面
  387.       $scene = Scene_Combine.new(@actor_index)
  388.       return
  389.     end
  390.     # 按下 L 键的情况下
  391.     if Input.trigger?(Input::L)
  392.       # 演奏光标 SE
  393.       $game_system.se_play($data_system.cursor_se)
  394.       # 移至上一位角色
  395.       @actor_index += $game_party.actors.size - 1
  396.       @actor_index %= $game_party.actors.size
  397.       # 切换到别的装备画面
  398.       $scene = Scene_Combine.new(@actor_index)
  399.       return
  400.     end
  401.   end  
  402. end  

  403. #==============================================================================
  404. # ■ Window_Material
  405. #------------------------------------------------------------------------------
  406. #  材料窗口。
  407. #==============================================================================

  408. class Window_Material < Window_Selectable
  409.   #--------------------------------------------------------------------------
  410.   # ● 初始化对像
  411.   #--------------------------------------------------------------------------
  412.   def initialize
  413.     super(0, 64, 320, 416)
  414.     @column_max = 1
  415.     refresh
  416.     self.index = 0
  417.     # 战斗中的情况下将窗口移至中央并将其半透明化
  418.     if $game_temp.in_battle
  419.       self.y = 64
  420.       self.height = 256
  421.       self.back_opacity = 160
  422.     end
  423.   end
  424.   #--------------------------------------------------------------------------
  425.   # ● 获取物品
  426.   #--------------------------------------------------------------------------
  427.   def item
  428.     return @data[self.index]
  429.   end
  430.   #--------------------------------------------------------------------------
  431.   # ● 刷新
  432.   #--------------------------------------------------------------------------
  433.   def refresh
  434.     if self.contents != nil
  435.       self.contents.dispose
  436.       self.contents = nil
  437.     end
  438.     @data = []
  439.     # 添加报务
  440.     for i in 1...$data_items.size
  441.       if $game_party.item_number(i) > 0
  442.         if $data_items[i].element_set.include?(31)
  443.           @data.push($data_items[i])
  444.         end  
  445.       end
  446.     end
  447.     # 如果项目数不是 0 就生成位图、重新描绘全部项目
  448.     @item_max = @data.size
  449.     if @item_max > 0
  450.       self.contents = Bitmap.new(width - 32, row_max * 32)
  451.       for i in 0...@item_max
  452.         draw_item(i)
  453.       end
  454.     end
  455.   end
  456.   #--------------------------------------------------------------------------
  457.   # ● 描绘项目
  458.   #     index : 项目编号
  459.   #--------------------------------------------------------------------------
  460.   def draw_item(index)
  461.     item = @data[index]
  462.     case item
  463.     when RPG::Item
  464.       number = $game_party.item_number(item.id)
  465.     when RPG::Weapon
  466.       number = $game_party.weapon_number(item.id)
  467.     when RPG::Armor
  468.       number = $game_party.armor_number(item.id)
  469.     end
  470.     self.contents.font.color = normal_color
  471.     x = 4
  472.     y = index * 32
  473.     rect = Rect.new(x, y, self.width / @column_max - 32, 32)
  474.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  475.     bitmap = RPG::Cache.icon(item.icon_name)
  476.     opacity = self.contents.font.color == normal_color ? 255 : 128
  477.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  478.     self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  479.     self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
  480.     self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  481.   end
  482.   #--------------------------------------------------------------------------
  483.   # ● 刷新帮助文本
  484.   #--------------------------------------------------------------------------
  485.   def update_help
  486.     @help_window.set_text(self.item == nil ? "" : self.item.description)
  487.   end
  488. end
  489. #==============================================================================
  490. # ■ Window_EquipRight
  491. #------------------------------------------------------------------------------
  492. #  装备画面、显示角色现在装备的物品的窗口。
  493. #==============================================================================

  494. class Window_NNName < Window_Base
  495.   #--------------------------------------------------------------------------
  496.   # ● 初始化对像
  497.   #     actor : 角色
  498.   #--------------------------------------------------------------------------
  499.   def initialize(actor)
  500.     super(320, 64, 320, 64)
  501.     self.contents = Bitmap.new(width - 32, height - 32)
  502.     self.contents.draw_text(4, 0, 256, 32, actor.name, 0)
  503.   end
  504. end  

  505. class Window_CombineRight < Window_Selectable
  506.   #--------------------------------------------------------------------------
  507.   # ● 初始化对像
  508.   #     actor : 角色
  509.   #--------------------------------------------------------------------------
  510.   def initialize(actor)
  511.     super(320, 128, 320, 352)
  512.     self.contents = Bitmap.new(width - 32, height - 32)
  513.     @actor = actor
  514.     refresh
  515.     self.index = 0
  516.   end
  517.   #--------------------------------------------------------------------------
  518.   # ● 获取物品
  519.   #--------------------------------------------------------------------------
  520.   def item
  521.     return @data[self.index]
  522.   end
  523.   #--------------------------------------------------------------------------
  524.   # ● 刷新
  525.   #--------------------------------------------------------------------------
  526.   def refresh
  527.     self.contents.clear
  528.     @data = []
  529.     @data.push($data_weapons[@actor.weapon_id])
  530.     @data.push($data_armors[@actor.armor1_id])
  531.     @data.push($data_armors[@actor.armor2_id])
  532.     @data.push($data_armors[@actor.armor3_id])
  533.     @data.push($data_armors[@actor.armor4_id])
  534.     @item_max = @data.size
  535.     self.contents.draw_text(4, 32 * 0, 92, 32, $data_system.words.weapon)
  536.     self.contents.draw_text(4, 32 * 1, 92, 32, $data_system.words.armor1)
  537.     self.contents.draw_text(4, 32 * 2, 92, 32, $data_system.words.armor2)
  538.     self.contents.draw_text(4, 32 * 3, 92, 32, $data_system.words.armor3)
  539.     self.contents.draw_text(4, 32 * 4, 92, 32, $data_system.words.armor4)
  540.     draw_item_name(@data[0], 92, 32 * 0)
  541.     draw_item_name(@data[1], 92, 32 * 1)
  542.     draw_item_name(@data[2], 92, 32 * 2)
  543.     draw_item_name(@data[3], 92, 32 * 3)
  544.     draw_item_name(@data[4], 92, 32 * 4)
  545.   end
  546.   #--------------------------------------------------------------------------
  547.   # ● 刷新帮助文本
  548.   #--------------------------------------------------------------------------
  549.   def update_help
  550.     if self.item != nil
  551.     ssstring = self.item.description
  552.     case self.index
  553.       when 0
  554.         ssstring += "  还可以组合" + $data_weapons[@actor.weapon_id].combine.to_s + "次"
  555.       when 1
  556.         ssstring += "  还可以组合" + $data_armors[@actor.armor1_id].combine.to_s + "次"
  557.       when 2
  558.         ssstring += "  还可以组合" + $data_armors[@actor.armor2_id].combine.to_s + "次"
  559.       when 3
  560.         ssstring += "  还可以组合" + $data_armors[@actor.armor3_id].combine.to_s + "次"
  561.       when 4
  562.         ssstring += "  还可以组合" + $data_armors[@actor.armor4_id].combine.to_s + "次"
  563.     end   
  564.       
  565.     end  
  566.     @help_window.set_text(self.item == nil ? "" : ssstring)
  567.   end
  568. end

  569. #==============================================================================
  570. # ■ Window_EPro
  571. #------------------------------------------------------------------------------
  572. #  装备合成界面中的组装前后比较窗口。
  573. #==============================================================================

  574. class Window_EPro < Window_Base
  575.   #--------------------------------------------------------------------------
  576.   # ● 初始化对像
  577.   #     
  578.   #--------------------------------------------------------------------------
  579.   def initialize(combine1, combine2)
  580.     super(0, 0, 384, 480)
  581.     self.contents = Bitmap.new(width - 32, height - 32)
  582.     @combine1 = combine1
  583.     @combine2 = combine2
  584.     refresh
  585.     self.z = 300
  586.   end
  587.   
  588.   def refresh
  589.     self.contents.clear
  590.     if @combine1.is_a?(RPG::Weapon)
  591.       self.contents.font.color = system_color
  592.       self.contents.draw_text(4, 0, 192, 32, "欲组装的武器:", 0)
  593.       self.contents.font.color = normal_color
  594.       self.contents.draw_text(164, 0, 192, 32, @combine1.name.to_s, 0)
  595.       self.contents.font.color = system_color
  596.       self.contents.draw_text(128, 32, 80, 32, "组装前", 0)
  597.       self.contents.draw_text(256, 32, 80, 32, "组装后", 0)
  598.       self.contents.draw_text(4, 64, 80, 32, "攻击力", 0)
  599.       self.contents.draw_text(4, 96, 80, 32, "物理防", 0)
  600.       self.contents.draw_text(4, 128, 80, 32, "魔法防", 0)
  601.       self.contents.draw_text(4, 160, 80, 32, "加力量", 0)
  602.       self.contents.draw_text(4, 192, 80, 32, "加灵巧", 0)
  603.       self.contents.draw_text(4, 224, 80, 32, "加速度", 0)
  604.       self.contents.draw_text(4, 256, 80, 32, "加魔力", 0)
  605.       self.contents.draw_text(4, 288, 80, 32, "属性", 0)
  606.       self.contents.font.color = normal_color
  607.       self.contents.draw_text(128, 64, 80, 32, @combine1.atk.to_s, 0)
  608.       self.contents.draw_text(128, 96, 80, 32, @combine1.pdef.to_s, 0)
  609.       self.contents.draw_text(128, 128, 80, 32, @combine1.mdef.to_s, 0)
  610.       self.contents.draw_text(128, 160, 80, 32, @combine1.str_plus.to_s, 0)
  611.       self.contents.draw_text(128, 192, 80, 32, @combine1.dex_plus.to_s, 0)
  612.       self.contents.draw_text(128, 224, 80, 32, @combine1.agi_plus.to_s, 0)
  613.       self.contents.draw_text(128, 256, 80, 32, @combine1.int_plus.to_s, 0)
  614.       $str_plus2 = 0
  615.       $dex_plus2 = 0
  616.       $agi_plus2 = 0
  617.       $int_plus2 = 0
  618.       $atk_plus2 = 0
  619.       $new_extra = nil
  620.       case @combine2.parameter_type
  621.         when 1
  622.           $atk_plus2 = @combine2.parameter_points
  623.           $new_extra = ""
  624.         when 3
  625.           $str_plus2 = @combine2.parameter_points
  626.           $new_extra = ""
  627.         when 4
  628.           $dex_plus2 = @combine2.parameter_points
  629.           $new_extra = "敏"
  630.         when 5
  631.           $agi_plus2 = @combine2.parameter_points
  632.           $new_extra = "疾"
  633.         when 6  
  634.           $int_plus2 = @combine2.parameter_points
  635.           $new_extra = "灵"
  636.       end
  637.       if $new_extra == nil and @combine2.pdef_f != 0
  638.         $new_extra = "坚"
  639.       end  
  640.       if $new_extra == nil and @combine2.mdef_f != 0
  641.         $new_extra = "圣"
  642.       end
  643.       $pdef_plus2 = @combine2.pdef_f
  644.       $mdef_plus2 = @combine2.mdef_f
  645.       self.contents.draw_text(256, 64, 80, 32, $atk_plus2.to_s, 0)
  646.       self.contents.draw_text(256, 96, 80, 32, $pdef_plus2.to_s, 0)
  647.       self.contents.draw_text(256, 128, 80, 32, $mdef_plus2.to_s, 0)
  648.       self.contents.draw_text(256, 160, 80, 32, $str_plus2.to_s, 0)
  649.       self.contents.draw_text(256, 192, 80, 32, $dex_plus2.to_s, 0)
  650.       self.contents.draw_text(256, 224, 80, 32, $agi_plus2.to_s, 0)
  651.       self.contents.draw_text(256, 256, 80, 32, $int_plus2.to_s, 0)
  652.       jjj = 288
  653.       for iii in 1..16
  654.         if @combine1.element_set.include?(iii)
  655.           self.contents.draw_text(128, jjj, 80, 32, $data_system.elements[iii], 0)
  656.           jjj += 32
  657.         end  
  658.       end  
  659.       $element_plus2 = []
  660.       $new_element_plus = nil
  661.       for iii in 1..16
  662.         if @combine1.element_set.include?(iii)
  663.           $element_plus2.push(iii)
  664.         end
  665.         if @combine2.element_set.include?(iii)
  666.           if $new_element_plus == nil
  667.             $new_element_plus = $data_system.elements[iii].to_s
  668.           end  
  669.           $element_plus2.push(iii)
  670.         end
  671.       end  
  672.       jjj = 288
  673.       for iii in 1..16
  674.         if $element_plus2.include?(iii)
  675.           self.contents.draw_text(256, jjj, 80, 32, $data_system.elements[iii], 0)
  676.           jjj += 32
  677.         end  
  678.       end  
  679.     else
  680.       self.contents.font.color = system_color
  681.       self.contents.draw_text(4, 0, 192, 32, "欲组装的防具:", 0)
  682.       self.contents.font.color = normal_color
  683.       self.contents.draw_text(164, 0, 192, 32, @combine1.name.to_s, 0)
  684.       self.contents.font.color = system_color
  685.       self.contents.draw_text(128, 32, 80, 32, "组装前", 0)
  686.       self.contents.draw_text(256, 32, 80, 32, "组装后", 0)
  687.       self.contents.draw_text(4, 64, 80, 32, "物理防", 0)
  688.       self.contents.draw_text(4, 96, 80, 32, "魔法防", 0)
  689.       self.contents.draw_text(4, 128, 80, 32, "加回避", 0)
  690.       self.contents.draw_text(4, 160, 80, 32, "加力量", 0)
  691.       self.contents.draw_text(4, 192, 80, 32, "加灵巧", 0)
  692.       self.contents.draw_text(4, 224, 80, 32, "加速度", 0)
  693.       self.contents.draw_text(4, 256, 80, 32, "加魔力", 0)
  694.       self.contents.draw_text(4, 288, 80, 32, "属性防御", 0)
  695.       self.contents.font.color = normal_color
  696.       self.contents.draw_text(128, 64, 80, 32, @combine1.pdef.to_s, 0)
  697.       self.contents.draw_text(128, 96, 80, 32, @combine1.mdef.to_s, 0)
  698.       self.contents.draw_text(128, 128, 80, 32, @combine1.eva.to_s, 0)
  699.       self.contents.draw_text(128, 160, 80, 32, @combine1.str_plus.to_s, 0)
  700.       self.contents.draw_text(128, 192, 80, 32, @combine1.dex_plus.to_s, 0)
  701.       self.contents.draw_text(128, 224, 80, 32, @combine1.agi_plus.to_s, 0)
  702.       self.contents.draw_text(128, 256, 80, 32, @combine1.int_plus.to_s, 0)
  703.       $str_plus2 = 0
  704.       $dex_plus2 = 0
  705.       $agi_plus2 = 0
  706.       $int_plus2 = 0
  707.       $eva_plus2 = 0
  708.       $new_extra = nil
  709.       case @combine2.parameter_type
  710.         when 1
  711.           $new_extra = "刚"
  712.           $eva_plus2 = @combine2.parameter_points
  713.         when 3
  714.           $new_extra = "劲"
  715.           $str_plus2 = @combine2.parameter_points
  716.         when 4
  717.           $new_extra = "敏"
  718.           $dex_plus2 = @combine2.parameter_points
  719.         when 5
  720.           $new_extra = "疾"
  721.           $agi_plus2 = @combine2.parameter_points
  722.         when 6  
  723.           $new_extra = "灵"
  724.           $int_plus2 = @combine2.parameter_points
  725.       end
  726.       if $new_extra == nil and @combine2.pdef_f != 0
  727.         $new_extra = "坚"
  728.       end  
  729.       if $new_extra == nil and @combine2.mdef_f != 0
  730.         $new_extra = "圣"
  731.       end
  732.       $pdef_plus2 = @combine2.pdef_f
  733.       $mdef_plus2 = @combine2.mdef_f
  734.       self.contents.draw_text(256, 64, 80, 32, $pdef_plus2.to_s, 0)
  735.       self.contents.draw_text(256, 96, 80, 32, $mdef_plus2.to_s, 0)
  736.       self.contents.draw_text(256, 128, 80, 32, $eva_plus2.to_s, 0)
  737.       self.contents.draw_text(256, 160, 80, 32, $str_plus2.to_s, 0)
  738.       self.contents.draw_text(256, 192, 80, 32, $dex_plus2.to_s, 0)
  739.       self.contents.draw_text(256, 224, 80, 32, $agi_plus2.to_s, 0)
  740.       self.contents.draw_text(256, 256, 80, 32, $int_plus2.to_s, 0)
  741.       jjj = 288
  742.       for iii in 1..16
  743.         if @combine1.guard_element_set.include?(iii)
  744.           self.contents.draw_text(128, jjj, 80, 32, $data_system.elements[iii], 0)
  745.           jjj += 32
  746.         end  
  747.       end  
  748.       $element_plus2 = []
  749.       $new_element_plus = nil
  750.       for iii in 1..16
  751.         if @combine1.guard_element_set.include?(iii)
  752.           $element_plus2.push(iii)
  753.         end
  754.         if @combine2.element_set.include?(iii)
  755.           if $new_element_plus == nil
  756.             $new_element_plus = $data_system.elements[iii].to_s
  757.           end  
  758.           $element_plus2.push(iii)
  759.         end
  760.       end   
  761.       jjj = 288
  762.       for iii in 1..16
  763.         if $element_plus2.include?(iii)
  764.           self.contents.draw_text(256, jjj, 80, 32, $data_system.elements[iii], 0)
  765.           jjj += 32
  766.         end  
  767.       end  
  768.     end
  769.     self.contents.draw_text(224, 64, 80, 32, "+", 0)
  770.     self.contents.draw_text(224, 96, 80, 32, "+", 0)
  771.     self.contents.draw_text(224, 128, 80, 32, "+", 0)
  772.     self.contents.draw_text(224, 160, 80, 32, "+", 0)
  773.     self.contents.draw_text(224, 192, 80, 32, "+", 0)
  774.     self.contents.draw_text(224, 224, 80, 32, "+", 0)
  775.     self.contents.draw_text(224, 256, 80, 32, "+", 0)
  776.     self.contents.draw_text(224, 288, 80, 32, "+", 0)
  777.     self.contents.draw_text(0, 384, 352, 32, "数值的增加只能表示大概,实际组成", 0)
  778.     self.contents.draw_text(0, 416, 352, 32, "会上下浮动20%,确定要组合吗?", 0)
  779.   end  
  780.   
  781.   def update
  782.     refresh
  783.   end  
  784. end  

  785. class Window_CCConfirm < Window_Selectable
  786.   def initialize
  787.     super(384, 384, 128, 96)
  788.     self.contents = Bitmap.new(width - 32, height - 32)
  789.     refresh
  790.     @column_max = 1
  791.     @item_max = 2
  792.     self.index = 0
  793.     self.z = 300
  794.   end
  795.   def refresh
  796.     self.contents.clear
  797.     self.contents.draw_text(0, 0, 64, 32, "好的", 0)
  798.     self.contents.draw_text(0, 32, 64, 32, "不好", 0)
  799.   end
  800.   def update
  801.     refresh
  802.   end  
  803. end  

  804. class Game_Actor < Game_Battler
  805.   #--------------------------------------------------------------------------
  806.   # ● 变更装备
  807.   #     equip_type : 装备类型
  808.   #     id    : 武器 or 防具 ID  (0 为解除装备)
  809.   #--------------------------------------------------------------------------
  810.   def equip(equip_type, id, loseit = 0)
  811.     case equip_type
  812.     when 0  # 武器
  813.       if id == 0 or $game_party.weapon_number(id) > 0
  814.         if loseit == 0  
  815.           $game_party.gain_weapon(@weapon_id, 1)
  816.         end  
  817.         @weapon_id = id
  818.         $game_party.lose_weapon(id, 1)
  819.       end
  820.     when 1  # 盾
  821.       if id == 0 or $game_party.armor_number(id) > 0
  822.         update_auto_state($data_armors[@armor1_id], $data_armors[id])
  823.         if loseit == 0  
  824.           $game_party.gain_armor(@armor1_id, 1)
  825.         end  
  826.         @armor1_id = id
  827.         $game_party.lose_armor(id, 1)
  828.       end
  829.     when 2  # 头
  830.       if id == 0 or $game_party.armor_number(id) > 0
  831.         update_auto_state($data_armors[@armor2_id], $data_armors[id])
  832.         if loseit == 0  
  833.           $game_party.gain_armor(@armor2_id, 1)
  834.         end  
  835.         @armor2_id = id
  836.         $game_party.lose_armor(id, 1)
  837.       end
  838.     when 3  # 身体
  839.       if id == 0 or $game_party.armor_number(id) > 0
  840.         update_auto_state($data_armors[@armor3_id], $data_armors[id])
  841.         if loseit == 0  
  842.           $game_party.gain_armor(@armor3_id, 1)
  843.         end  
  844.         @armor3_id = id
  845.         $game_party.lose_armor(id, 1)
  846.       end
  847.     when 4  # 装饰品
  848.       if id == 0 or $game_party.armor_number(id) > 0
  849.         update_auto_state($data_armors[@armor4_id], $data_armors[id])
  850.         if loseit == 0  
  851.           $game_party.gain_armor(@armor4_id, 1)
  852.         end  
  853.         @armor4_id = id
  854.         $game_party.lose_armor(id, 1)
  855.       end
  856.     end
  857.   end
  858. end  

  859. #==============================================================================
  860. # ■ Window_EquipLeft
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
5 小时
注册时间
2008-2-17
帖子
125
4
 楼主| 发表于 2008-11-8 21:37:57 | 只看该作者
接上
  1. #------------------------------------------------------------------------------
  2. #  装备画面的、显示角色能力值变化的窗口。
  3. #==============================================================================

  4. class Window_EquipLeft < Window_Base
  5.   #--------------------------------------------------------------------------
  6.   # ● 初始化对像
  7.   #     actor : 角色
  8.   #--------------------------------------------------------------------------
  9.   def initialize(actor)
  10.     super(0, 64, 272, 416)
  11.     self.contents = Bitmap.new(width - 32, height - 32)
  12.     @actor = actor
  13.     refresh
  14.   end
  15.   #--------------------------------------------------------------------------
  16.   # ● 刷新
  17.   #--------------------------------------------------------------------------
  18.   def refresh
  19.     self.contents.clear
  20.     draw_actor_name(@actor, 4, 0)
  21.     draw_actor_level(@actor, 4, 32)
  22.     draw_actor_parameter(@actor, 4, 64, 0)
  23.     draw_actor_parameter(@actor, 4, 96, 1)
  24.     draw_actor_parameter(@actor, 4, 128, 2)
  25.     draw_actor_parameter(@actor, 4, 160, 7)
  26.     draw_actor_parameter(@actor, 4, 192, 3)
  27.     draw_actor_parameter(@actor, 4, 224, 4)
  28.     draw_actor_parameter(@actor, 4, 256, 5)
  29.     draw_actor_parameter(@actor, 4, 288, 6)
  30.     if @new_atk != nil
  31.       self.contents.font.color = system_color
  32.       self.contents.draw_text(160, 64, 40, 32, "→", 1)
  33.       self.contents.font.color = normal_color
  34.       self.contents.draw_text(200, 64, 36, 32, @new_atk.to_s, 2)
  35.     end
  36.     if @new_pdef != nil
  37.       self.contents.font.color = system_color
  38.       self.contents.draw_text(160, 96, 40, 32, "→", 1)
  39.       self.contents.font.color = normal_color
  40.       self.contents.draw_text(200, 96, 36, 32, @new_pdef.to_s, 2)
  41.     end
  42.     if @new_mdef != nil
  43.       self.contents.font.color = system_color
  44.       self.contents.draw_text(160, 128, 40, 32, "→", 1)
  45.       self.contents.font.color = normal_color
  46.       self.contents.draw_text(200, 128, 36, 32, @new_mdef.to_s, 2)
  47.     end
  48.     if @new_eva != nil
  49.       self.contents.font.color = system_color
  50.       self.contents.draw_text(160, 160, 40, 32, "→", 1)
  51.       self.contents.font.color = normal_color
  52.       self.contents.draw_text(200, 160, 36, 32, @new_eva.to_s, 2)
  53.     end
  54.     if @new_str != nil
  55.       self.contents.font.color = system_color
  56.       self.contents.draw_text(160, 192, 40, 32, "→", 1)
  57.       self.contents.font.color = normal_color
  58.       self.contents.draw_text(200, 192, 36, 32, @new_str.to_s, 2)
  59.     end
  60.     if @new_dex != nil
  61.       self.contents.font.color = system_color
  62.       self.contents.draw_text(160, 224, 40, 32, "→", 1)
  63.       self.contents.font.color = normal_color
  64.       self.contents.draw_text(200, 224, 36, 32, @new_dex.to_s, 2)
  65.     end
  66.     if @new_agi != nil
  67.       self.contents.font.color = system_color
  68.       self.contents.draw_text(160, 256, 40, 32, "→", 1)
  69.       self.contents.font.color = normal_color
  70.       self.contents.draw_text(200, 256, 36, 32, @new_agi.to_s, 2)
  71.     end
  72.     if @new_int != nil
  73.       self.contents.font.color = system_color
  74.       self.contents.draw_text(160, 288, 40, 32, "→", 1)
  75.       self.contents.font.color = normal_color
  76.       self.contents.draw_text(200, 288, 36, 32, @new_int.to_s, 2)
  77.     end
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   # ● 变更装备后的能力值设置
  81.   #     new_atk  : 变更装备后的攻击力
  82.   #     new_pdef : 变更装备后的物理防御
  83.   #     new_mdef : 变更装备后的魔法防御
  84.   #--------------------------------------------------------------------------
  85.   def set_new_parameters(new_atk, new_pdef, new_mdef, new_eva, new_str, new_dex, new_agi, new_int)
  86.     if @new_atk != new_atk or
  87.        @new_pdef != new_pdef or
  88.        @new_mdef != new_mdef or
  89.        @new_eva != new_eva or
  90.        @new_str != new_str or
  91.        @new_dex != new_dex or
  92.        @new_agi != new_agi or
  93.        @new_int != new_int
  94.       @new_atk = new_atk
  95.       @new_pdef = new_pdef
  96.       @new_mdef = new_mdef
  97.       @new_eva = new_eva
  98.       @new_str = new_str
  99.       @new_dex = new_dex
  100.       @new_agi = new_agi
  101.       @new_int = new_int
  102.       refresh
  103.     end
  104.   end
  105. end

  106. #==============================================================================
  107. # ■ Window_EquipItem
  108. #------------------------------------------------------------------------------
  109. #  装备画面、显示浏览变更装备的候补物品的窗口。
  110. #==============================================================================

  111. class Window_EquipItem < Window_Selectable
  112.   #--------------------------------------------------------------------------
  113.   # ● 初始化对像
  114.   #     actor      : 角色
  115.   #     equip_type : 装备部位 (0~3)
  116.   #--------------------------------------------------------------------------
  117.   def initialize(actor, equip_type)
  118.     super(272, 256, 368, 224)
  119.     @actor = actor
  120.     @equip_type = equip_type
  121.     @column_max = 1
  122.     refresh
  123.     self.active = false
  124.     self.index = -1
  125.   end
  126.   #--------------------------------------------------------------------------
  127.   # ● 获取物品
  128.   #--------------------------------------------------------------------------
  129.   def item
  130.     return @data[self.index]
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   # ● 刷新
  134.   #--------------------------------------------------------------------------
  135.   def refresh
  136.     if self.contents != nil
  137.       self.contents.dispose
  138.       self.contents = nil
  139.     end
  140.     @data = []
  141.     # 添加可以装备的武器
  142.     if @equip_type == 0
  143.       weapon_set = $data_classes[@actor.class_id].weapon_set
  144.       for i in 1...$data_weapons.size
  145.         if $game_party.weapon_number(i) > 0 and weapon_set.include?(i)
  146.           @data.push($data_weapons[i])
  147.         end
  148.       end
  149.     end
  150.     # 添加可以装备的防具
  151.     if @equip_type != 0
  152.       armor_set = $data_classes[@actor.class_id].armor_set
  153.       for i in 1...$data_armors.size
  154.         if $game_party.armor_number(i) > 0 and armor_set.include?(i)
  155.           if $data_armors[i].kind == @equip_type-1
  156.             @data.push($data_armors[i])
  157.           end
  158.         end
  159.       end
  160.     end
  161.     # 添加空白
  162.     @data.push(nil)
  163.     # 生成位图、描绘全部项目
  164.     @item_max = @data.size
  165.     self.contents = Bitmap.new(width - 32, row_max * 32)
  166.     for i in 0...@item_max-1
  167.       draw_item(i)
  168.     end
  169.   end
  170.   #--------------------------------------------------------------------------
  171.   # ● 项目的描绘
  172.   #     index : 项目符号
  173.   #--------------------------------------------------------------------------
  174.   def draw_item(index)
  175.     item = @data[index]
  176.     x = 4
  177.     y = index * 32
  178.     case item
  179.     when RPG::Weapon
  180.       number = $game_party.weapon_number(item.id)
  181.     when RPG::Armor
  182.       number = $game_party.armor_number(item.id)
  183.     end
  184.     bitmap = RPG::Cache.icon(item.icon_name)
  185.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
  186.     self.contents.font.color = normal_color
  187.     self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  188.     self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
  189.     self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  190.   end
  191.   #--------------------------------------------------------------------------
  192.   # ● 刷新帮助文本
  193.   #--------------------------------------------------------------------------
  194.   def update_help
  195.     @help_window.set_text(self.item == nil ? "" : self.item.description)
  196.   end
  197. end

  198. class Scene_Equip
  199.    #--------------------------------------------------------------------------
  200.   # ● 刷新
  201.   #--------------------------------------------------------------------------
  202.   def refresh
  203.     # 设置物品窗口的可视状态
  204.     @item_window1.visible = (@right_window.index == 0)
  205.     @item_window2.visible = (@right_window.index == 1)
  206.     @item_window3.visible = (@right_window.index == 2)
  207.     @item_window4.visible = (@right_window.index == 3)
  208.     @item_window5.visible = (@right_window.index == 4)
  209.     # 获取当前装备中的物品
  210.     item1 = @right_window.item
  211.     # 设置当前的物品窗口到 @item_window
  212.     case @right_window.index
  213.     when 0
  214.       @item_window = @item_window1
  215.     when 1
  216.       @item_window = @item_window2
  217.     when 2
  218.       @item_window = @item_window3
  219.     when 3
  220.       @item_window = @item_window4
  221.     when 4
  222.       @item_window = @item_window5
  223.     end
  224.     # 右窗口被激活的情况下
  225.     if @right_window.active
  226.       # 删除变更装备后的能力
  227.       @left_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil, nil)
  228.     end
  229.     # 物品窗口被激活的情况下
  230.     if @item_window.active
  231.       # 获取现在选中的物品
  232.       item2 = @item_window.item
  233.       # 变更装备
  234.       last_hp = @actor.hp
  235.       last_sp = @actor.sp
  236.       @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)
  237.       # 获取变更装备后的能力值
  238.       new_atk = @actor.atk
  239.       new_pdef = @actor.pdef
  240.       new_mdef = @actor.mdef
  241.       new_eva = @actor.eva
  242.       new_str = @actor.str
  243.       new_dex = @actor.dex
  244.       new_agi = @actor.agi
  245.       new_int = @actor.int
  246.       # 返回到装备
  247.       @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)
  248.       @actor.hp = last_hp
  249.       @actor.sp = last_sp
  250.       # 描画左窗口
  251.       @left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_eva, new_str, new_dex, new_agi, new_int)
  252.     end
  253.   end
  254. end  

  255. class Window_Base < Window
  256.   #--------------------------------------------------------------------------
  257.   # ● 描绘能力值
  258.   #     actor : 角色
  259.   #     x     : 描画目标 X 坐标
  260.   #     y     : 描画目标 Y 坐标
  261.   #     type  : 能力值种类 (0~6)
  262.   #--------------------------------------------------------------------------
  263.   def draw_actor_parameter(actor, x, y, type)
  264.     case type
  265.     when 0
  266.       parameter_name = $data_system.words.atk
  267.       parameter_value = actor.atk
  268.     when 1
  269.       parameter_name = $data_system.words.pdef
  270.       parameter_value = actor.pdef
  271.     when 2
  272.       parameter_name = $data_system.words.mdef
  273.       parameter_value = actor.mdef
  274.     when 3
  275.       parameter_name = $data_system.words.str
  276.       parameter_value = actor.str
  277.     when 4
  278.       parameter_name = $data_system.words.dex
  279.       parameter_value = actor.dex
  280.     when 5
  281.       parameter_name = $data_system.words.agi
  282.       parameter_value = actor.agi
  283.     when 6
  284.       parameter_name = $data_system.words.int
  285.       parameter_value = actor.int
  286.     when 7
  287.       parameter_name = $data_system.words.int
  288.       parameter_value = actor.eva  
  289.     end
  290.     self.contents.font.color = system_color
  291.     self.contents.draw_text(x, y, 120, 32, parameter_name)
  292.     self.contents.font.color = normal_color
  293.     self.contents.draw_text(x + 120, y, 36, 32, parameter_value.to_s, 2)
  294.   end
  295. end  
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
5 小时
注册时间
2008-2-17
帖子
125
5
 楼主| 发表于 2008-11-8 21:38:45 | 只看该作者
就是上面的脚本 一用上就出错能不能帮我完善一下
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3309
在线时间
3620 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

6
发表于 2008-11-8 21:40:06 | 只看该作者
以下引用a5396982于2008-11-8 13:38:45的发言:

就是上面的脚本 一用上就出错能不能帮我完善一下

你还加了什么脚本?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
5 小时
注册时间
2008-2-17
帖子
125
7
 楼主| 发表于 2008-11-8 21:43:55 | 只看该作者
还有仙剑的菜单 远景 自动提示 进大远小
回复 支持 反对

使用道具 举报

Lv1.梦旅人

綾川司の姫様<

梦石
0
星屑
50
在线时间
796 小时
注册时间
2007-12-20
帖子
4520

贵宾第3届短篇游戏大赛R剧及RMTV组亚军

8
发表于 2008-11-9 00:20:44 | 只看该作者
= =所以我说你给我上工程……
http://rpg.blue/viewthread.php?tid=69666

生命即是责任。自己即是世界。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-21 22:10

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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