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

Project1

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

[已经解决] 轩辕剑菜单怎样添加默认窗口?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
40 小时
注册时间
2009-9-3
帖子
64
跳转到指定楼层
1
发表于 2009-9-14 21:02:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 鬼火 于 2009-9-16 18:08 编辑


在“轩辕剑菜单”脚本怎样把上图红框标注的窗口,在换装备的时候调出来……【默认的窗口应该还存在】
注:主要是为了增强能力描述。
工程地址:
轩辕剑菜单脚本:
  1. #==============================================================================
  2. # ■ 仿轩辕剑式的菜单(美化&加强)--By whbm
  3. #==============================================================================
  4. # ■ 仿轩辕剑式的菜单--By 亿万星辰
  5. #==============================================================================
  6. #有问题,找蚂蚁 redant修改
  7. # ■ Scene_Menu
  8. #------------------------------------------------------------------------------
  9. #  处理菜单画面的类。
  10. #==============================================================================

  11. class Scene_Menu
  12.   #--------------------------------------------------------------------------
  13.   # ● 初始化对像
  14.   #     menu_index : 命令光标的初期位置
  15.   #--------------------------------------------------------------------------
  16.   def initialize(menu_index = 0)
  17.     @menu_index = menu_index
  18.     @item_update = false
  19.     @skill_update = false
  20.     @equip_update = false
  21.     @status_update = false
  22.     @sys_update = false
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 主处理
  26.   #--------------------------------------------------------------------------
  27.   def main
  28.     #----------------------------- 主菜单 -----------------------------------
  29.     # 生成命令窗口
  30.     picture = "Graphics/System/menu/【菜单】菜单.jpg"
  31.    @sprite = Sprite.new
  32.    @sprite.bitmap = Bitmap.new(picture)

  33.     @command_window = Window_MenuCommand.new(@menu_index)
  34.     #........................................................................
  35.    # @command_window.contents = Bitmap.new("Graphics/System/menu/【菜单】菜单.jpg")
  36.    @command_window.width = 640
  37.    @command_window.height = 480
  38.    @command_window.x = -16
  39.    @command_window.y = -16
  40.    @command_window.z = 999
  41.    @command_window.opacity = 0
  42.     #whbm
  43.     #........................................................................
  44.     # 同伴人数为 0 的情况下
  45.     if $game_party.actors.size == 0
  46.       # 物品、特技、装备、状态无效化
  47.       @command_window.disable_item(0)
  48.       @command_window.disable_item(1)
  49.       @command_window.disable_item(2)
  50.       @command_window.disable_item(3)
  51.     end
  52.     # 禁止存档的情况下
  53.     if $game_system.save_disabled
  54.       # 存档无效
  55.       @command_window.disable_item(5)
  56.     end
  57.     # 生成金钱窗口
  58.     @gold_window = Window_Gold_Menu.new
  59.     @gold_window.x = 155
  60.     @gold_window.y = 382
  61.     @gold_window.opacity = 0
  62.     # 生成状态窗口
  63.     @status_window = Window_MenuStatus.new
  64.     #........................................................................
  65.     @back_status = Window_Help.new
  66.     @back_status.height = 640
  67.     @back_status.width = 596
  68.     @back_status.opacity = 0
  69.     @back_status.z = 1
  70.    # @back_status.contents = Bitmap.new("Graphics/System/menu/【菜单】菜单.jpg")
  71.     #@back_status.x = -16
  72.     #@back_status.y = -16
  73.     #........................................................................
  74.     @status_window.x = 120
  75.     @status_window.y = 32
  76.     @status_window.z = 2
  77.     @status_window.opacity = 0
  78.     @status_window1 = Window_MenuEquip.new
  79.     @status_window1.x = 120
  80.     @status_window1.z = 2
  81.     @status_window1.opacity = 0
  82.     @status_window1.y = 32
  83.     @status_window1.visible = false
  84.     # 遮蔽窗口
  85.    #@dummy_window = Window_Base.new(0, 0, 640, 480)
  86.     #........................................................................
  87.     #@dummy_sprite = Sprite.new(Viewport.new(0,0,640 + 32,480 + 32))
  88.     #@dummy_sprite.x = 0
  89.    #@dummy_sprite.y = 0
  90.    # @dummy_window.opacity = 0       #BSY
  91.     #........................................................................
  92.     #@dummy_window.back_opacity = 0
  93.     @old_index = @menu_index
  94.     case @menu_index
  95.     when 1
  96.      # @pic_now = 0
  97.       @command_window.contents = Bitmap.new("Graphics/System/menu/【菜单】物品.png")
  98.       #@dummy_sprite.bitmap = Bitmap.new("Graphics/System/menu/底图_物品")
  99.     when 3
  100.       @command_window.contents = Bitmap.new("Graphics/System/menu/【菜单】武术.png")
  101.       #@dummy_sprite.bitmap = Bitmap.new("Graphics/System/menu/底图_奇术")
  102.     when 2
  103.       @command_window.contents = Bitmap.new("Graphics/System/menu/【菜单】装备.png")
  104.       #@dummy_sprite.bitmap = Bitmap.new("Graphics/System/menu/底图_装备")
  105.     when 4
  106.       @command_window.contents = Bitmap.new("Graphics/System/menu/【菜单】任务.png")
  107.       #@dummy_sprite.bitmap = Bitmap.new("Graphics/System/menu/底图_合成")
  108.     when 0
  109.       @pic_now = 0
  110.       @command_window.contents = Bitmap.new("Graphics/System/menu/【菜单】状态.png")
  111.       #@dummy_sprite.bitmap = Bitmap.new("Graphics/System/menu/底图_状态")
  112.     when 5
  113.       @command_window.contents = Bitmap.new("Graphics/System/menu/【菜单】系统.png")
  114.       
  115.      # @dummy_sprite.bitmap = Bitmap.new("Graphics/System/menu/底图_天书")
  116.     end
  117.     # 执行过渡
  118.     Graphics.transition
  119.     # 主循环
  120.     loop do
  121.       # 刷新游戏画面
  122.       Graphics.update
  123.       # 刷新输入信息
  124.       Input.update
  125.       # 刷新画面
  126.       update
  127.       # 如果切换画面就中断循环
  128.       if $scene != self
  129.         break
  130.       end
  131.     end
  132.     # 准备过渡
  133.     Graphics.freeze
  134.     # 释放窗口
  135.      @sprite.dispose
  136.     #  @renwu_window.dispose
  137.     @command_window.dispose
  138.     @gold_window.dispose
  139.     @status_window.dispose
  140.     @status_window1.dispose
  141. #   @dummy_window.dispose
  142. #    @dummy_sprite.dispose
  143.     #........................................................................
  144.     @back_status.dispose
  145.     #........................................................................
  146.   end
  147.   #--------------------------------------------------------------------------
  148.   # ● 刷新画面
  149.   #--------------------------------------------------------------------------
  150.   def update
  151.     # 刷新窗口
  152.     #----------------------------- 主菜单 -----------------------------------
  153.     @command_window.update
  154.     @gold_window.update
  155. #    @renwu_window.update
  156.     if @command_window.index ==2
  157.       @status_window.visible = false
  158.       @status_window1.visible = true
  159.       @status_window1.update
  160.     else
  161.       @status_window.visible = true and @status_window1.visible = false if !@status_window.visible
  162.       @status_window.update
  163.     end
  164.     if @command_window.index != @old_index
  165.       case @command_window.index
  166.       when 1
  167.         if @pic_now != 1
  168.           @command_window.contents = Bitmap.new("Graphics/System/menu/【菜单】物品.png")
  169.           @pic_now = 1
  170.           #@dummy_sprite.bitmap = Bitmap.new("Graphics/System/menu/底图_物品")
  171.         end
  172.       when 3
  173.         if @pic_now != 3
  174.           @command_window.contents = Bitmap.new("Graphics/System/menu/【菜单】武术.png")
  175.           @pic_now = 3
  176.           #@dummy_sprite.bitmap = Bitmap.new("Graphics/System/menu/底图_奇术")
  177.         end
  178.       when 2
  179.         if @pic_now != 2
  180.           @command_window.contents = Bitmap.new("Graphics/System/menu/【菜单】装备.png")
  181.           @pic_now = 2
  182.           #@dummy_sprite.bitmap = Bitmap.new("Graphics/System/menu/底图_装备")
  183.         end
  184.       when 4
  185.         if @pic_now != 4
  186.           @command_window.contents = Bitmap.new("Graphics/System/menu/【菜单】任务.png")
  187.           @pic_now = 4
  188.          # @dummy_sprite.bitmap = Bitmap.new("Graphics/System/menu/底图_合成")
  189.         end
  190.       when 0
  191.         if @pic_now != 0
  192.           @command_window.contents = Bitmap.new("Graphics/System/menu/【菜单】状态.png")
  193.           @pic_now = 0
  194.           #@dummy_sprite.bitmap = Bitmap.new("Graphics/System/menu/底图_状态")
  195.         end
  196.       when 5
  197.         if @pic_now != 5
  198.           @command_window.contents = Bitmap.new("Graphics/System/menu/【菜单】系统.png")
  199.           @pic_now = 5
  200.          
  201.           #@dummy_sprite.bitmap = Bitmap.new("Graphics/System/menu/底图_天书")
  202.         end
  203.         
  204.       end
  205.       @old_index = @command_window.index
  206.     end
  207.     # 命令窗口被激活的情况下: 调用 update_command
  208.     if @command_window.active
  209.       update_command
  210.       return
  211.     end
  212.     # 状态窗口被激活的情况下: 调用 update_status
  213.     if @status_window.active
  214.       if @item_update
  215.         update_target#update_item_target
  216.         return
  217.       elsif @skill_update
  218.         update_skill_target
  219.         return
  220.       else
  221.         update_status
  222.         return
  223.       end
  224.     end
  225.     if @status_window1.active
  226.       update_status1
  227.       return
  228.     end
  229.       
  230.   
  231.       
  232.     #----------------------------- 物品菜单 ---------------------------------
  233.     if @item_update
  234.       @itemcommand_window.update
  235.      # @help_window.update
  236.        # @equip_window.update
  237.        #@equip_window.refresh
  238.       @itemlist_window.update
  239.      @status_window.update# @target_window.update
  240.       
  241.       # 物品窗口被激活的情况下: 调用 update_item
  242.       
  243.    
  244.       
  245.       if @command_index != @itemcommand_window.index
  246.      @command_index = @itemcommand_window.index
  247.       @itemlist_window.set_item(@command_index)
  248.     end
  249.     # コマンドウィンドウがアクティブの場合: update_itemcommand を呼ぶ
  250.     if @itemcommand_window.active
  251.    @equip_window.refresh
  252.       @equip_window.set_item(@itemlist_window.item)#(nil)
  253.       update_itemcommand
  254.       return
  255.     end
  256.     # アイテムウィンドウがアクティブの場合: update_itemlist を呼ぶ
  257.     if @itemlist_window.active
  258.       @equip_window.refresh
  259.       @equip_window.set_item(@itemlist_window.item)#@item_window.item)
  260.       # @equip_window.refresh
  261.       update_itemlist
  262.       
  263.       #........................................................................
  264.        # update_itemcommand
  265.       return
  266.     end
  267.     # ターゲットウィンドウがアクティブの場合: update_target を呼ぶ
  268.     if @target_window.active
  269.     update_target
  270.     # @equip_window.refresh
  271.       return
  272.     end
  273.     #----------------------------- 奇术菜单 ---------------------------------
  274.     elsif @skill_update
  275.       # 刷新窗口
  276.       @skill_help_window.update
  277.       @skill_window.update
  278.       # 特技窗口被激活的情况下: 调用 update_skill
  279.       if @skill_window.active
  280.         #........................................................................
  281.           @skill_window_icon.set_skill(@skill_window.skill)
  282.           @skill_window_icon.refresh
  283.         #........................................................................
  284.         update_skill
  285.         return
  286.       end
  287.     #----------------------------- 装备菜单 ---------------------------------
  288.     elsif @equip_update
  289.       @equip_right_window.update
  290.       @equip_item_window.update
  291.       # 设置物品窗口的可视状态
  292.       @equip_item_window1.visible = (@equip_right_window.index == 0)
  293.       @equip_item_window2.visible = (@equip_right_window.index == 1)
  294.       @equip_item_window3.visible = (@equip_right_window.index == 2)
  295.       @equip_item_window4.visible = (@equip_right_window.index == 3)
  296.       @equip_item_window5.visible = (@equip_right_window.index == 4)
  297.       @equip_item_window6.visible = (@equip_right_window.index == 5)
  298.       @equip_item_window7.visible = (@equip_right_window.index == 6)
  299.       @equip_item_window8.visible = (@equip_right_window.index == 7)
  300.       # 获取当前装备中的物品
  301.       item1 = @equip_right_window.item
  302.       #........................................................................
  303.         @equip_window.set_item(item1)
  304.       #........................................................................
  305.       # 设置当前的物品窗口到 @item_window
  306.       case @equip_right_window.index
  307.       when 0
  308.         @equip_item_window = @equip_item_window1
  309.       when 1
  310.         @equip_item_window = @equip_item_window2
  311.       when 2
  312.         @equip_item_window = @equip_item_window3
  313.       when 3
  314.         @equip_item_window = @equip_item_window4
  315.       when 4
  316.         @equip_item_window = @equip_item_window5
  317.       when 5
  318.         @equip_item_window = @equip_item_window6
  319.       when 6
  320.         @equip_item_window = @equip_item_window7
  321.       when 7
  322.         @equip_item_window = @equip_item_window8
  323.       end
  324.       # 右窗口被激活的情况下
  325.       if @equip_right_window.active
  326.         # 删除变更装备后的能力
  327.         @status_window1.set_new_parameters(nil, nil, nil, @status_window1.index)
  328.       end
  329.       # 物品窗口被激活的情况下
  330.       if @equip_item_window.active
  331.         # 获取现在选中的物品
  332.         item2 = @equip_item_window.item
  333.       #........................................................................
  334.         @equip_window.set_item(item2)
  335.       #........................................................................
  336.         # 变更装备
  337.         last_hp = @actor.hp
  338.         last_sp = @actor.sp
  339.         @actor.equip(@equip_right_window.index, item2 == nil ? 0 : item2.id)
  340.         # 获取变更装备后的能力值
  341.         new_atk = @actor.atk
  342.         new_pdef = @actor.pdef
  343.         new_mdef = @actor.mdef
  344.         # 返回到装备
  345.         @actor.equip(@equip_right_window.index, item1 == nil ? 0 : item1.id)
  346.         @actor.hp = last_hp
  347.         @actor.sp = last_sp
  348.         # 描画左窗口
  349.         @status_window1.set_new_parameters(new_atk, new_pdef, new_mdef, @status_window1.index)
  350.       end
  351.     #........................................................................
  352.     @equip_window.refresh
  353.     #........................................................................
  354.       # 右侧窗口被激活的情况下: 调用 update_right
  355.       if @equip_right_window.active
  356.         update_right
  357.         return
  358.       end
  359.       # 物品窗口被激活的情况下: 调用 update_item
  360.       if @equip_item_window.active
  361.         update_equip_item
  362.         return
  363.       end
  364.     #----------------------------- 状态菜单 ---------------------------------
  365.     elsif @status_update
  366.       update_status_status
  367.       return
  368.     #----------------------------- 系统菜单 ---------------------------------
  369.     elsif @sys_update
  370.       if @end_window != nil and !@end_window.disposed?
  371.         update_end
  372.       elsif @bgm_window != nil and !@bgm_window.disposed? and @currentbgm_window != nil and !@currentbgm_window.disposed?
  373.         update_bgm
  374.       elsif @sfx_window != nil and !@sfx_window.disposed? and @currentsfx_window != nil and !@currentsfx_window.disposed?
  375.         update_sfx
  376.       elsif !@system_window.disposed?
  377.         update_system
  378.       end
  379.       return
  380.     end
  381.   end
  382.   
  383.   def update_command
  384.     # 按下 B 键的情况下
  385.     if Input.trigger?(Input::B)
  386.       # 演奏取消 SE
  387.       $game_system.se_play($data_system.cancel_se)
  388.       # 切换的地图画面
  389.       $scene = Scene_Map.new
  390.       return
  391.     end
  392.     # 按下 C 键的情况下
  393.     if Input.trigger?(Input::C)
  394.       # 同伴人数为 0、存档、游戏结束以外的场合
  395.       if $game_party.actors.size == 0 and @command_window.index < 4
  396.         # 演奏冻结 SE
  397.         $game_system.se_play($data_system.buzzer_se)
  398.         return
  399.       end
  400.       # 命令窗口的光标位置分支
  401.       case @command_window.index
  402.       when 1  # 物品
  403.         # 演奏确定 SE
  404.         $game_system.se_play($data_system.decision_se)
  405.          # 切换到物品画面
  406.         @item_update = true
  407.         @itemlist_update = true
  408.       
  409.         @command_window.active = false
  410.          wupin
  411.          @command_window.active = true
  412.       when 3  # 特技
  413.         # 演奏确定 SE
  414.         $game_system.se_play($data_system.decision_se)
  415.         # 激活状态窗口
  416.         @command_window.active = false
  417.         @status_window.active = true
  418.         @status_window.index = 0
  419.       when 2  # 装备
  420.         # 演奏确定 SE
  421.         $game_system.se_play($data_system.decision_se)
  422.         # 激活状态窗口
  423.         @command_window.active = false
  424.         @status_window1.active = true
  425.         @status_window1.index = 0
  426.       when 4  # 合成
  427.         #@stagg = -1
  428.         # 演奏确定 SE
  429.         $game_system.se_play($data_system.decision_se)
  430.         # 激活合成窗口
  431.         @command_window.active = false
  432.         #$scene = Scene_Mession.new
  433.          renwu
  434.         #loadcraft
  435.         @command_window.active = true
  436.       when 0  # 状态
  437.         @stagg = -1
  438.         # 演奏确定 SE
  439.         $game_system.se_play($data_system.decision_se)
  440.         # 激活状态窗口
  441.         @command_window.active = false
  442.         @status_window.active = true
  443.         @status_window.index = 0
  444.       when 5  # 存档
  445.         @status_update = false
  446.         # 演奏确定 SE
  447.         $game_system.se_play($data_system.decision_se)
  448.       
  449.        # if $game_system.save_disabled
  450.           # 演奏冻结 SE
  451.         #  $game_system.se_play($data_system.buzzer_se)
  452.          # return
  453.         #end
  454.         
  455.         @system_window = Window_SysCommand.new
  456.         @command_window.active = false
  457.         @sys_update = true
  458.         
  459.         
  460.       end
  461.       return
  462.     end
  463.   end
  464.   #--------------------------------------------------------------------------
  465. def renwu
  466.   @scene = 100
  467. @renwu_window = Window_renwu.new
  468. Graphics.transition
  469.   # 主循环
  470.   loop do
  471.     # 刷新游戏画面
  472.     Graphics.update
  473.     # 刷新输入信息
  474.     Input.update
  475.     # 刷新画面
  476.     @renwu_window.update
  477.     # 如果切换画面就中断循环
  478.     if $scene != self
  479.       break
  480.     end
  481.   end
  482.   # 准备过渡
  483.   Graphics.freeze
  484.   
  485.   @renwu_window.dispose
  486.   
  487. end

  488. def wupin
  489.   # picture = "Graphics/Battlebacks/北惧.jpg"
  490.    #@sprite = Sprite.new
  491.    #@sprite.bitmap = Bitmap.new(picture)

  492.     # タイトルウィンドウを作成
  493.     #@itemtitle_window = Harts_Window_ItemTitle.new
  494.     #コマンドウィンドウを作成
  495.     @scene = 100
  496.     @itemcommand_window = Harts_Window_ItemCommand.new
  497.     @command_index = @itemcommand_window.index
  498.     #アイテムウィンドウを作成
  499.     @itemlist_window = Harts_Window_ItemList.new
  500.     @itemlist_window.active = false
  501.     #ヘルプウィンドウを作成
  502.     @help_window = Window_Help_New.new
  503.      @equip_window = Window_Equip.new
  504.       @equip_window.y = 405
  505.     @help_window.x =147
  506.     @help_window.y = 386
  507.     # ヘルプウィンドウを関連付け
  508.     @itemcommand_window.help_window = @help_window
  509.     @itemlist_window.help_window = @help_window
  510.     @help_window.x =147
  511.     @help_window.y = 386#384
  512.     # ターゲットウィンドウを作成 (不可視?非アクティブに設定)
  513.    # @target_window = Window_Target.new
  514.    # @target_window.visible = false
  515.    # @target_window.active = false
  516.     # アイテムウィンドウ内容表示
  517.     @itemlist_window.set_item(@command_index)
  518.     # トランジション実行
  519.     Graphics.transition
  520.     # メインループ
  521.     loop do
  522.       # ゲーム画面を更新
  523.       Graphics.update
  524.       # 入力情報を更新
  525.       Input.update
  526.       # フレーム更新
  527.       update
  528.       # 画面が切り替わったらループを中断
  529.       if $scene != self
  530.         break
  531.       end
  532.     end
  533.     # トランジション準備
  534.     Graphics.freeze
  535.     # ウィンドウを解放
  536. #     @sprite.

  537. #  @sprite.bitmap.dispose unless @sprite.bitmap.disposed?
  538. #   @itemtitle_window.dispose
  539. # @equip_icon.dispose
  540.      @equip_window.dispose
  541.     @itemcommand_window.dispose
  542.     @itemlist_window.dispose
  543.     @help_window.dispose
  544.    # @target_window.dispose
  545.   end
  546.   #--------------------------------------------------------------------------
  547.   # ● フレーム更新
  548.   #--------------------------------------------------------------------------
  549.   #def update
  550.     # ウィンドウを更新
  551.    # @itemtitle_window.update
  552. #    @itemcommand_window.update
  553. #   @itemlist_window.update
  554.     #@help_window.update
  555.     #@target_window.update
  556. #    if @command_index != @itemcommand_window.index
  557. #     @command_index = @itemcommand_window.index
  558.   #    @itemlist_window.set_item(@command_index)
  559.    # end
  560.     # コマンドウィンドウがアクティブの場合: update_itemcommand を呼ぶ
  561. #    if @itemcommand_window.active
  562. #    update_itemcommand
  563.   #    return
  564.    # end
  565.     # アイテムウィンドウがアクティブの場合: update_itemlist を呼ぶ
  566.     #if @itemlist_window.active
  567.      # update_itemlist
  568.      # return
  569.     #end
  570.     # ターゲットウィンドウがアクティブの場合: update_target を呼ぶ
  571.     #if @target_window.active
  572.      # update_target
  573.      # return
  574.     #end
  575.   #end

  576.   #--------------------------------------------------------------------------
  577.   # ● フレーム更新 (コマンドウィンドウがアクティブの場合)
  578.   #--------------------------------------------------------------------------
  579.   def update_itemcommand
  580.   # B ボタンが押された場合
  581.   if Input.trigger?(Input::B)
  582.   # キャンセル SE を演奏
  583.   $game_system.se_play($data_system.cancel_se)
  584.   # メニュー画面に切り替え
  585.    @equip_window.refresh
  586.   $scene = Scene_Menu.new(1)
  587.   return
  588.   end
  589.   # C ボタンが押された場合
  590.   if Input.trigger?(Input::C)
  591.   # 選択中のコマンドのアイテムがない場合
  592.   if @itemlist_window.item_number == 0
  593.   # ブザー SE を演奏
  594.   $game_system.se_play($data_system.buzzer_se)
  595.   return
  596.   end
  597.   # 決定 SE を演奏
  598.   $game_system.se_play($data_system.decision_se)
  599.   # アイテムウィンドウをアクティブにする
  600.   @itemcommand_window.active = false
  601.   @itemlist_window.active = true
  602.   @itemlist_window.index = 0
  603.   return
  604.   end
  605.   end
  606.   #--------------------------------------------------------------------------
  607.   # ● フレーム更新 (アイテムウィンドウがアクティブの場合)
  608.   #--------------------------------------------------------------------------
  609.   def update_itemlist
  610.     # B ボタンが押された場合
  611.     if Input.trigger?(Input::B)
  612.       # キャンセル SE を演奏
  613.       $game_system.se_play($data_system.cancel_se)
  614.        @equip_window.refresh
  615.       # アイテムウィンドウをアクティブにする
  616.       @itemcommand_window.active = true
  617.       @itemlist_window.active = false
  618.       @itemlist_window.index = 0
  619.       @itemcommand_window.index = @command_index
  620.       return
  621.     end
  622.     # C ボタンが押された場合
  623.     if Input.trigger?(Input::C)
  624.       # アイテムウィンドウで現在選択されているデータを取得
  625.       @item = @itemlist_window.item
  626.       # 使用アイテムではない場合
  627.       unless @item.is_a?(RPG::Item)
  628.         # ブザー SE を演奏
  629.         $game_system.se_play($data_system.buzzer_se)
  630.         return
  631.       end
  632.       # 使用できない場合
  633.       unless $game_party.item_can_use?(@item.id)
  634.         # ブザー SE を演奏
  635.         $game_system.se_play($data_system.buzzer_se)
  636.         return
  637.       end
  638.       # 決定 SE を演奏
  639.       $game_system.se_play($data_system.decision_se)
  640.       # 効果範囲が味方の場合
  641.       if @item.scope >= 3
  642.         # ターゲットウィンドウをアクティブ化
  643.         @itemlist_window.active = false
  644.         #@target_window.x = 304
  645.       
  646.           @status_window.visible=true#@target_window.visible = true
  647.        @status_window.active=true #@target_window.active = true
  648.         # 効果範囲 (単体/全体) に応じてカーソル位置を設定
  649.         if @item.scope == 4 || @item.scope == 6
  650.          @status_window.index = -1 #@target_window.index = -1
  651.         else
  652.          @status_window.index = 0 # @target_window.index = 0
  653.         end
  654.         # 効果範囲が味方以外の場合
  655.       else
  656.         # コモンイベント ID が有効の場合
  657.         if @item.common_event_id > 0
  658.           # コモンイベント呼び出し予約
  659.           $game_temp.common_event_id = @item.common_event_id
  660.           # アイテムの使用時 SE を演奏
  661.           $game_system.se_play(@item.menu_se)
  662.           # 消耗品の場合
  663.             if @item.consumable
  664.               # 使用したアイテムを 1 減らす
  665.               $game_party.lose_item(@item.id, 1)
  666.               # アイテムウィンドウの項目を再描画
  667.               @itemlist_window.draw_item(@itemlist_window.index)
  668.             end
  669.           # マップ画面に切り替え
  670.           $scene = Scene_Map.new
  671.           return
  672.         end
  673.       end
  674.       return
  675.     end
  676.   end
  677.   #--------------------------------------------------------------------------
  678.   # ● フレーム更新 (ターゲットウィンドウがアクティブの場合)
  679.   #--------------------------------------------------------------------------
  680.   def update_target
  681.     # B ボタンが押された場合
  682.     if Input.trigger?(Input::B)
  683.       # キャンセル SE を演奏
  684.       $game_system.se_play($data_system.cancel_se)
  685.       # アイテム切れなどで使用できなくなった場合
  686.       unless $game_party.item_can_use?(@item.id)
  687.         # アイテムウィンドウの内容を再作成
  688.         @itemlist_window.refresh
  689.        #   @equip_window.dispose
  690.       end
  691.       # ターゲットウィンドウを消去
  692.       @itemlist_window.active = true
  693.      @status_window.visible = false # @target_window.visible = false
  694.       @status_window.active = false #@target_window.active = false
  695.       @itemlist_window.set_item(@command_index)
  696.       return
  697.     end
  698.     # C ボタンが押された場合
  699.     if Input.trigger?(Input::C)
  700.       # アイテムを使い切った場合
  701.       if $game_party.item_number(@item.id) == 0
  702.         # ブザー SE を演奏
  703.         $game_system.se_play($data_system.buzzer_se)
  704.         return
  705.       end
  706.       # ターゲットが全体の場合
  707.       if @status_window.index == -1 #@target_window.index == -1
  708.         # パーティ全体にアイテムの使用効果を適用
  709.         used = false
  710.         for i in $game_party.actors
  711.           used |= i.item_effect(@item)
  712.         end
  713.       end
  714.       # ターゲットが単体の場合
  715.       if  @status_window.index >= 0# @target_window.index >= 0
  716.         # ターゲットのアクターにアイテムの使用効果を適用
  717.         target = $game_party.actors[@status_window.index]#@target_window.index]
  718.         used = target.item_effect(@item)
  719.       end
  720.       # アイテムを使った場合
  721.       if used
  722.         # アイテムの使用時 SE を演奏
  723.         $game_system.se_play(@item.menu_se)
  724.         # 消耗品の場合
  725.         if @item.consumable
  726.           # 使用したアイテムを 1 減らす
  727.           $game_party.lose_item(@item.id, 1)
  728.           # アイテムウィンドウの項目を再描画
  729.           @itemlist_window.draw_item(@itemlist_window.index)
  730.           @itemlist_window.set_item(@command_index)
  731.         end
  732.         # ターゲットウィンドウの内容を再作成
  733.        # @target_window.refresh
  734.        @status_window.refresh
  735.          @equip_window.refresh
  736.        # 全滅の場合
  737.         if $game_party.all_dead?
  738.           # ゲームオーバー画面に切り替え
  739.           $scene = Scene_Gameover.new
  740.           return
  741.         end
  742.         # コモンイベント ID が有効の場合
  743.         if @item.common_event_id > 0
  744.           # コモンイベント呼び出し予約
  745.           $game_temp.common_event_id = @item.common_event_id
  746.           # マップ画面に切り替え
  747.           $scene = Scene_Map.new
  748.           return
  749.         end
  750.       end
  751.       # アイテムを使わなかった場合
  752.       unless used
  753.         # ブザー SE を演奏
  754.         $game_system.se_play($data_system.buzzer_se)
  755.       end
  756.     return
  757.     end
  758.   end
  759.   


  760.   
  761.    
  762.   def loadcraft(craft_index = 0)
  763.     @scene = 100
  764.     @craft_window = Window_Craft.new
  765.     @craft_window.windowskin = RPG::Cache.windowskin("../system/menu/windowskins/palskin")
  766.     @craft_window.index = craft_index
  767.     @craft_window.back_opacity = 180
  768.     @confirm_window = Window_Base.new(120, 188, 400, 64)
  769.     @confirm_window.contents = Bitmap.new(368, 32)
  770.     @confirm_window.contents.font.name = "黑体"
  771.     @confirm_window.contents.font.size = 20
  772.     @confirm_window.windowskin = RPG::Cache.windowskin("../system/menu/windowskins/palskin")
  773.     @confirm_window.back_opacity = 180
  774.        @help_window = Window_Help_New_Craft.new
  775.     #........................................................................
  776.     @equip_icon = Window_Equip_Craft.new
  777.     @equip_icon.set_item_id
  778.     #........................................................................
  779.     @craft_window.help_window = @help_window
  780.     @result_window = Window_CraftResult.new
  781.     @result_window.windowskin = RPG::Cache.windowskin("../system/menu/windowskins/palskin")
  782.     @result_window.back_opacity = 180
  783.     @ingredients_window = Window_CraftIngredients.new
  784.     @ingredients_window.windowskin = RPG::Cache.windowskin("../system/menu/windowskins/palskin")
  785.     @ingredients_window.back_opacity = 180
  786.     @yes_no_window = Window_Command.new(100, ["确定", "放弃"])
  787.     @yes_no_window.windowskin = RPG::Cache.windowskin("../system/menu/windowskins/palskin")
  788.     @yes_no_window.back_opacity = 180
  789.     @confirm_window.visible = false
  790.     @confirm_window.z = 1500
  791.     @yes_no_window.visible = false
  792.     @yes_no_window.active = false
  793.     @yes_no_window.index = 1
  794.     @yes_no_window.x = 270
  795.     @yes_no_window.y = 252
  796.     @yes_no_window.z = 1500
  797.     @label_window = Window_Base.new(450,200 - 32 + 5,190,52)
  798.     @label_window.windowskin = RPG::Cache.windowskin("../system/menu/windowskins/palskin")
  799.     @label_window.back_opacity = 100
  800.     @label_window.contents=Bitmap.new(@label_window.width - 32,@label_window.height - 32)
  801.     @label_window.contents.font.size=20
  802.     @label_window.contents.font.color = @label_window.normal_color
  803.     @label_window.contents.font.name = "黑体"
  804.     @label_window.contents.draw_text(0, 0, @label_window.contents.width, 20, "  现有   需要")
  805.     loop do
  806.       Graphics.update
  807.       Input.update
  808.       update_loadcraft
  809.       if @scene == 99
  810.         break
  811.       end
  812.     end
  813.     @help_window.dispose
  814.     @equip_icon.dispose
  815.     @craft_window.dispose
  816.     @result_window.dispose
  817.     @ingredients_window.dispose
  818.     @confirm_window.dispose
  819.     @yes_no_window.dispose
  820.     @label_window.dispose
  821.   end

  822.   #--------------------------------------------------------------------------
  823.   #--------------------------------------------------------------------------
  824.   def update_loadcraft
  825.     @craft_window.update
  826.     @equip_icon.set_item(@craft_window.recipe)
  827.     @equip_icon.refresh
  828.     @ingredients_window.update
  829.     if $game_party.recipes.size > 0
  830.       @result_window.set_result(@craft_window.recipe.result, @craft_window.recipe.result_type)
  831.       @ingredients_window.set_ingredients(@craft_window.recipe.ingredients,
  832.                                                            @craft_window.recipe.ingredient_types,
  833.                                                            @craft_window.recipe.quantities)
  834.     end
  835.     if @craft_window.active
  836.       update_craft
  837.       return
  838.     end
  839.     if @yes_no_window.active
  840.       confirm_update
  841.       return
  842.     end
  843.   end
  844.   #--------------------------------------------------------------------------
  845.   def update_craft
  846.     if Input.trigger?(Input::B)
  847.       $game_system.se_play($data_system.cancel_se)
  848.       @scene = 99
  849.       return
  850.     end
  851.     if Input.trigger?(Input::C) and $game_party.recipes.size != 0
  852.       @recipe = @craft_window.recipe
  853.       if @recipe.have
  854.         $game_system.se_play($data_system.decision_se)
  855.         @yes_no_window.active = true
  856.         @craft_window.active = false
  857.       else
  858.         $game_system.se_play($data_system.buzzer_se)
  859.         return
  860.       end
  861.     end
  862.   end

  863.   #--------------------------------------------------------------------------
  864.   def confirm_update
  865.     @craft_index = @craft_window.index
  866.     @confirm_window.visible = true
  867.     @confirm_window.z = 1500
  868.     @yes_no_window.visible = true
  869.     @yes_no_window.active = true
  870.     @yes_no_window.z = 1500
  871.     @yes_no_window.update
  872.     string = "合成 " + @recipe.name + "?"
  873.     cw = @confirm_window.contents.text_size(string).width
  874.     center = @confirm_window.contents.width/2 - cw /2
  875.     unless @drawn
  876.       @confirm_window.contents.draw_text(center, 0, cw, 30, string)
  877.       @drawn = true
  878.     end
  879.     if Input.trigger?(Input::C)
  880.       if @yes_no_window.index == 0
  881.         $game_system.se_play($data_system.decision_se)
  882.         @recipe.make
  883.         $game_system.se_play($data_system.save_se)
  884.         @confirm_window.visible = false
  885.         @yes_no_window.active = false
  886.         @yes_no_window.visible = false
  887.         @craft_window.dispose
  888.         @craft_window = Window_Craft.new
  889.         @craft_window.windowskin = RPG::Cache.windowskin("../system/menu/windowskins/palskin")
  890.         @craft_window.index = @craft_index
  891.         @craft_window.back_opacity = 180
  892.         @craft_window.active = true
  893.       else
  894.         $game_system.se_play($data_system.cancel_se)
  895.         @confirm_window.visible = false
  896.         @yes_no_window.active = false
  897.         @yes_no_window.visible = false
  898.         @craft_window.dispose
  899.         @craft_window = Window_Craft.new
  900.         @craft_window.windowskin = RPG::Cache.windowskin("../system/menu/windowskins/palskin")
  901.         @craft_window.index = @craft_index
  902.         @craft_window.back_opacity = 180
  903.         @craft_window.active = true
  904.       end
  905.     end
  906.     if Input.trigger?(Input::B)
  907.       $game_system.se_play($data_system.cancel_se)
  908.         @confirm_window.visible = false
  909.         @yes_no_window.active = false
  910.         @yes_no_window.visible = false
  911.         @craft_window.dispose
  912.         @craft_window = Window_Craft.new
  913.         @craft_window.windowskin = RPG::Cache.windowskin("../system/menu/windowskins/palskin")
  914.         @craft_window.index = @craft_index
  915.         @craft_window.back_opacity = 180
  916.         @craft_window.active = true
  917.     end
  918.   end

  919.   #--------------------------------------------------------------------------

  920.   def update_status
  921.     if @command_window.index == 0 and @stagg != @status_window.index
  922.         # 演奏确定 SE
  923.         # 切换到状态画面
  924.         # 获取角色
  925.         @actor = $game_party.actors[@status_window.index]
  926.         # 生成状态窗口
  927.         if @stagg != -1
  928.           @status_status_window.dispose
  929.         end
  930.         @stagg = @status_window.index
  931.         @status_status_window = Window_Status_New.new(@actor)
  932.         @status_update = true
  933.     end
  934.     # 按下 B 键的情况下
  935.     if Input.trigger?(Input::B)
  936.       # 演奏取消 SE
  937.       $game_system.se_play($data_system.cancel_se)
  938.       if @command_window.index == 0
  939.         @status_status_window.dispose
  940.         @stagg = -1
  941.       end
  942.       # 激活命令窗口
  943.       @command_window.active = true
  944.       @status_window.active = false
  945.       @status_window.index = -2
  946.       return
  947.     end
  948.     # 按下 C 键的情况下
  949.     if Input.trigger?(Input::C)
  950.       # 命令窗口的光标位置分支
  951.       case @command_window.index
  952.       when 3  # 特技
  953.         # 本角色的行动限制在 2 以上的情况下
  954.         if $game_party.actors[@status_window.index].restriction >= 2
  955.           # 演奏冻结 SE
  956.           $game_system.se_play($data_system.buzzer_se)
  957.           return
  958.         end
  959.         # 演奏确定 SE
  960.         $game_system.se_play($data_system.decision_se)
  961.         @window_index = @status_window.index
  962.         @actor = $game_party.actors[@status_window.index]
  963.         # 生成帮助窗口、状态窗口、特技窗口
  964.         @skill_help_window = Window_Help_New_Skill.new
  965.         @skill_window = Window_Skill_New.new(@actor)
  966.         #........................................................................
  967.         @skill_window_icon = Window_Skill_Icon.new
  968.         @skill_window_icon.y = 402
  969.         #........................................................................
  970.         # 关联帮助窗口
  971.         @skill_window.help_window = @skill_help_window
  972.         @status_window.active = false
  973.         @skill_update = true
  974.       end
  975.       return
  976.     end
  977.   end
  978.   #--------------------------------------------------------------------------
  979.   # ● 物品刷新
  980.   #--------------------------------------------------------------------------
  981. def update_item
  982.     # 按下 B 键的情况下
  983.     if Input.trigger?(Input::B)
  984.       # 演奏取消 SE
  985.       $game_system.se_play($data_system.cancel_se)
  986.       # 切换到菜单画面
  987.       @item_help_window.dispose
  988.       @help_window.dispose
  989.      # @item_window.dispose
  990.        @itemlist_window.dispose
  991.       #........................................................................
  992.       @equip_window.dispose
  993.       #........................................................................
  994.      # @item_update = false
  995.       @itemlist_update = false
  996.      # @command_window.active = true
  997.      @itemcommand_window.active = true
  998.       return
  999.     end
  1000.     # 按下 C 键的情况下
  1001.     if Input.trigger?(Input::C)
  1002.       # 获取物品窗口当前选中的物品数据
  1003.       @item = @itemlist_window.item#@item_window.item

  1004.       # 不使用物品的情况下
  1005.       unless @item.is_a?(RPG::Item)
  1006.         # 演奏冻结 SE
  1007.         $game_system.se_play($data_system.buzzer_se)
  1008.         return
  1009.       end
  1010.       # 不能使用的情况下
  1011.       unless $game_party.item_can_use?(@item.id)
  1012.         # 演奏冻结 SE
  1013.         $game_system.se_play($data_system.buzzer_se)
  1014.         return
  1015.       end
  1016.       # 演奏确定 SE
  1017.       $game_system.se_play($data_system.decision_se)
  1018.       # 效果范围是我方的情况下
  1019.       if @item.scope >= 3
  1020.         # 激活目标窗口
  1021.         @itemlist_window.active = false
  1022.         @status_window.active = true
  1023.         # 设置效果范围 (单体/全体) 的对应光标位置
  1024.         if @item.scope == 4 || @item.scope == 6
  1025.           @status_window.index = -1
  1026.         else
  1027.           @status_window.index = 0
  1028.         end
  1029.       # 效果在我方以外的情况下
  1030.       else
  1031.         # 公共事件 ID 有效的情况下
  1032.         if @item.common_event_id > 0
  1033.           # 预约调用公共事件
  1034.           $game_temp.common_event_id = @item.common_event_id
  1035.           # 演奏物品使用时的 SE
  1036.           $game_system.se_play(@item.menu_se)
  1037.           # 消耗品的情况下
  1038.           if @item.consumable
  1039.             # 使用的物品数减 1
  1040.             $game_party.lose_item(@item.id, 1)
  1041.             # 再描绘物品窗口的项目
  1042.             @itemlist_window.draw_item(@itemlist_window.index)
  1043.           end
  1044.           @item_help_window.dispose
  1045.           @itemlist_window.dispose
  1046.           @help_window.dispose
  1047.           #........................................................................
  1048.           @equip_window.dispose
  1049.           #........................................................................
  1050.           # 切换到地图画面
  1051.           $scene = Scene_Map.new
  1052.           return
  1053.         end
  1054.       end
  1055.       return
  1056.     end
  1057.   end
  1058.   def update_item_target
  1059.     # 按下 B 键的情况下
  1060.     if Input.trigger?(Input::B)
  1061.       # 演奏取消 SE
  1062.       $game_system.se_play($data_system.cancel_se)
  1063.       # 由于物品用完而不能使用的场合
  1064.       unless $game_party.item_can_use?(@item.id)
  1065.         # 再次生成物品窗口的内容
  1066.         #@item_window.refresh
  1067.         # @equip_window.dispose
  1068.         @itemlist_window.refresh
  1069.       end
  1070.       # 删除目标窗口
  1071.       @itemlist_window.active = true
  1072.       @status_window.index = -2
  1073.       @status_window.active = false
  1074.       return
  1075.     end
  1076.     # 按下 C 键的情况下
  1077.     if Input.trigger?(Input::C)
  1078.       # 如果物品用完的情况下
  1079.       if $game_party.item_number(@item.id) == 0
  1080.         # 演奏冻结 SE
  1081.         $game_system.se_play($data_system.buzzer_se)
  1082.         return
  1083.       end
  1084.       # 目标是全体的情况下
  1085.       if @status_window.index == -1
  1086.         # 对同伴全体应用物品使用效果
  1087.         used = false
  1088.         for i in $game_party.actors
  1089.           used |= i.item_effect(@item)
  1090.         end
  1091.       end
  1092.       # 目标是单体的情况下
  1093.       if @status_window.index >= 0
  1094.         # 对目标角色应用物品的使用效果
  1095.         target = $game_party.actors[@status_window.index]
  1096.         used = target.item_effect(@item)
  1097.       end
  1098.       # 使用物品的情况下
  1099.       if used
  1100.         # 演奏物品使用时的 SE
  1101.         $game_system.se_play(@item.menu_se)
  1102.         # 消耗品的情况下
  1103.         if @item.consumable
  1104.           # 使用的物品数减 1
  1105.           $game_party.lose_item(@item.id, 1)
  1106.           # 再描绘物品窗口的项目
  1107. @itemlist_window.draw_item(@itemlist_window.index)
  1108.           #          @item_window.draw_item(@itemlist_window.index)#item_window.index)
  1109.         end
  1110.         # 再生成目标窗口的内容
  1111.         @status_window.refresh
  1112.        # @equip_window.refresh
  1113.        # @itemlist_window.refresh
  1114.         # 全灭的情况下
  1115.         if $game_party.all_dead?
  1116.           # 切换到游戏结束画面
  1117.           $scene = Scene_Gameover.new
  1118.           return
  1119.         end
  1120.         # 公共事件 ID 有效的情况下
  1121.         if @item.common_event_id > 0
  1122.           # 预约调用公共事件
  1123.           $game_temp.common_event_id = @item.common_event_id
  1124.           @item_help_window.dispose
  1125.           #@item_window.dispose
  1126.           @help_window.dispose
  1127.            @equip_window.dispose
  1128.           @itemlist_window.dispose
  1129.           # 切换到地图画面
  1130.           $scene = Scene_Map.new
  1131.           return
  1132.         end
  1133.       end
  1134.       # 无法使用物品的情况下
  1135.       unless used
  1136.         # 演奏冻结 SE
  1137.         $game_system.se_play($data_system.buzzer_se)
  1138.       end
  1139.       return
  1140.     end
  1141.   end
  1142.   #--------------------------------------------------------------------------
  1143.   # ● 技能刷新
  1144.   #--------------------------------------------------------------------------
  1145.   def update_skill
  1146.     # 按下 B 键的情况下
  1147.     if Input.trigger?(Input::B)
  1148.       # 演奏取消 SE
  1149.       $game_system.se_play($data_system.cancel_se)
  1150.       # 切换到菜单画面
  1151.       @skill_help_window.dispose
  1152.       @skill_window.dispose
  1153.       @skill_window_icon.dispose
  1154.       @skill_update = false
  1155.       @status_window.active = true
  1156.       @status_window.index = @window_index
  1157.       return
  1158.     end
  1159.     # 按下 C 键的情况下
  1160.     if Input.trigger?(Input::C)
  1161.       # 获取特技窗口现在选择的特技的数据
  1162.       @skill = @skill_window.skill
  1163.       # 不能使用的情况下
  1164.       if @skill == nil or not @actor.skill_can_use?(@skill.id)
  1165.         # 演奏冻结 SE
  1166.         $game_system.se_play($data_system.buzzer_se)
  1167.         return
  1168.       end
  1169.       # 演奏确定 SE
  1170.       $game_system.se_play($data_system.decision_se)
  1171.       # 效果范围是我方的情况下
  1172.       if @skill.scope >= 3
  1173.         # 激活目标窗口
  1174.         @skill_window.active = false
  1175.         @status_window.active = true
  1176.         # 设置效果范围 (单体/全体) 的对应光标位置
  1177.         if @skill.scope == 4 || @skill.scope == 6
  1178.           @status_window.index = -1
  1179.         elsif @skill.scope == 7
  1180.           @status_window.index = @actor_index - 10
  1181.         else
  1182.           @status_window.index = 0
  1183.         end
  1184.       # 效果在我方以外的情况下
  1185.       else
  1186.         # 公共事件 ID 有效的情况下
  1187.         if @skill.common_event_id > 0
  1188.           # 预约调用公共事件
  1189.           $game_temp.common_event_id = @skill.common_event_id
  1190.           # 演奏特技使用时的 SE
  1191.           $game_system.se_play(@skill.menu_se)
  1192.           # 消耗 SP
  1193.           @actor.sp -= @skill.sp_cost
  1194.           # 再生成各窗口的内容
  1195.           @skill_window.refresh
  1196.           @status_window.refresh
  1197.           @skill_help_window.dispose
  1198.           @skill_window.dispose
  1199.           @skill_window_icon.dispose
  1200. #          @back_skill.dispose
  1201.           # 切换到地图画面
  1202.           $scene = Scene_Map.new
  1203.           return
  1204.         end
  1205.       end
  1206.       return
  1207.     end
  1208.   end
  1209.   def update_skill_target
  1210.     # 按下 B 键的情况下
  1211.     if Input.trigger?(Input::B)
  1212.       # 演奏取消 SE
  1213.       $game_system.se_play($data_system.cancel_se)
  1214.       # 删除目标窗口
  1215.       @skill_window.active = true
  1216.       @status_window.index = -2
  1217.       @status_window.active = false
  1218.       return
  1219.     end
  1220.     # 按下 C 键的情况下
  1221.     if Input.trigger?(Input::C)
  1222.       # 因为 SP 不足而无法使用的情况下
  1223.       unless @actor.skill_can_use?(@skill.id)
  1224.         # 演奏冻结 SE
  1225.         $game_system.se_play($data_system.buzzer_se)
  1226.         return
  1227.       end
  1228.       # 目标是全体的情况下
  1229.       if @status_window.index == -1
  1230.         # 对同伴全体应用特技使用效果
  1231.         used = false
  1232.         for i in $game_party.actors
  1233.           used |= i.skill_effect(@actor, @skill)
  1234.         end
  1235.       end
  1236.       # 目标是使用者的情况下
  1237.       if @status_window.index <= -2
  1238.         # 对目标角色应用特技的使用效果
  1239.         target = $game_party.actors[@status_window.index + 10]
  1240.         used = target.skill_effect(@actor, @skill)
  1241.       end
  1242.       # 目标是单体的情况下
  1243.       if @status_window.index >= 0
  1244.         # 对目标角色应用特技的使用效果
  1245.         target = $game_party.actors[@status_window.index]
  1246.         used = target.skill_effect(@actor, @skill)
  1247.       end
  1248.       # 使用特技的情况下
  1249.       if used
  1250.         # 演奏特技使用时的 SE
  1251.         $game_system.se_play(@skill.menu_se)
  1252. #-----修正------------------------------------------------------
  1253.         @actor.skill_sp_cost[@skill.id] = @skill.sp_cost if @actor.skill_sp_cost[@skill.id] == nil
  1254.         # SP 消費
  1255.         @actor.sp -= @actor.skill_sp_cost[@skill.id]
  1256. #---------------------------------------------------------------
  1257.         # 再生成各窗口内容
  1258.         @status_window.refresh
  1259.         @skill_window.refresh
  1260.         # 全灭的情况下
  1261.         if $game_party.all_dead?
  1262.           # 切换到游戏结束画面
  1263.           $scene = Scene_Gameover.new
  1264.           return
  1265.         end
  1266.         # 公共事件 ID 有效的情况下
  1267.         if @skill.common_event_id > 0
  1268.           # 预约调用公共事件
  1269.           $game_temp.common_event_id = @skill.common_event_id
  1270.           @skill_help_window.dispose
  1271.           @skill_window.dispose
  1272.           @back_skill.dispose
  1273.          
  1274.           # 释放窗口
  1275.           @item_window.dispose
  1276. #          @back_item.dispose
  1277.           @status_window.dispose
  1278.           # 切换到地图画面
  1279.           $scene = Scene_Map.new
  1280.           return
  1281.         end
  1282.       end
  1283.       # 无法使用特技的情况下
  1284.       unless used
  1285.         # 演奏冻结 SE
  1286.         $game_system.se_play($data_system.buzzer_se)
  1287.       end
  1288.       return
  1289.     end
  1290.   end
  1291.   #--------------------------------------------------------------------------
  1292.   # ● 装备刷新
  1293.   #--------------------------------------------------------------------------
  1294.   def update_right
  1295.     # 按下 B 键的情况下
  1296.     if Input.trigger?(Input::B)
  1297.       # 演奏取消 SE
  1298.       $game_system.se_play($data_system.cancel_se)
  1299.       # 切换到菜单画面
  1300.       @equip_help_window.dispose
  1301.       @equip_right_window.dispose
  1302.       @equip_item_window1.dispose
  1303.       @equip_item_window2.dispose
  1304.       @equip_item_window3.dispose
  1305.       @equip_item_window4.dispose
  1306.       @equip_item_window5.dispose
  1307.       @equip_item_window6.dispose
  1308.       @equip_item_window7.dispose
  1309.       @equip_item_window8.dispose
  1310.       #........................................................................
  1311.       @equip_window.dispose
  1312.       #........................................................................
  1313.       @equip_update = false
  1314.       @status_window1.active = true
  1315.     end
  1316.     # 按下 C 键的情况下
  1317.     if Input.trigger?(Input::C)
  1318.       # 固定装备的情况下
  1319.       if @actor.equip_fix?(@equip_right_window.index)
  1320.         # 演奏冻结 SE
  1321.         $game_system.se_play($data_system.buzzer_se)
  1322.         return
  1323.       end
  1324.       # 演奏确定 SE
  1325.       $game_system.se_play($data_system.decision_se)
  1326.       # 激活物品窗口
  1327.       @equip_right_window.active = false
  1328.       @equip_item_window.active = true
  1329.       @equip_window.set_item_id
  1330.       @equip_item_window.index = 0
  1331.       return
  1332.     end
  1333.   end
  1334.   def update_equip_item
  1335.     # 按下 B 键的情况下
  1336.     if Input.trigger?(Input::B)
  1337.       # 演奏取消 SE
  1338.       $game_system.se_play($data_system.cancel_se)
  1339.       # 激活右侧窗口
  1340.       @equip_right_window.active = true
  1341.       @equip_item_window.active = false
  1342.       @equip_item_window.index = -1
  1343.       @equip_window.set_item_id
  1344.       return
  1345.     end
  1346.     # 按下 C 键的情况下
  1347.     if Input.trigger?(Input::C)      
  1348.       # 演奏装备 SE
  1349.       $game_system.se_play($data_system.equip_se)
  1350.       # 获取物品窗口现在选择的装备数据
  1351.       item = @equip_item_window.item
  1352.       # 变更装备
  1353.       @actor.equip(@equip_right_window.index, item == nil ? 0 : item.id)
  1354.       # 激活右侧窗口
  1355.       @equip_right_window.active = true
  1356.       # @equip_right_window.visible = false#true
  1357.       @equip_item_window.active = false

  1358.       @equip_item_window.index = -1
  1359.       @equip_window.set_item_id
  1360.       # 再生成右侧窗口、物品窗口的内容
  1361.       @equip_right_window.refresh
  1362.       if @equip_right_window.index == 6 or @equip_right_window.index == 7
  1363.         @equip_item_window7.refresh
  1364.         @equip_item_window8.refresh
  1365.       else
  1366.         @equip_item_window.refresh
  1367.       end
  1368.       return
  1369.     end
  1370.   end
  1371.   def update_status1
  1372.     # 按下 B 键的情况下
  1373.     if Input.trigger?(Input::B)
  1374.       # 演奏取消 SE
  1375.       $game_system.se_play($data_system.cancel_se)
  1376.       # 激活命令窗口
  1377.       @command_window.active = true
  1378.       @status_window1.active = false
  1379.       @status_window1.index = -1
  1380.       return
  1381.     end
  1382.     # 按下 C 键的情况下
  1383.     if Input.trigger?(Input::C)
  1384.       # 命令窗口的光标位置分支
  1385.         # 演奏确定 SE
  1386.         $game_system.se_play($data_system.decision_se)
  1387.         @equip_index = 0
  1388.         @actor = $game_party.actors[@status_window1.index]
  1389.         @equip_help_window = Window_Help_New.new
  1390.         @equip_help_window.x = 147
  1391.         @equip_help_window.y = 386# 480 - 64 - 32 - 8
  1392.         @equip_right_window = Window_EquipRight_New.new(@actor)
  1393.         @equip_item_window1 = Window_EquipItem_New.new(@actor, 0)
  1394.         @equip_item_window2 = Window_EquipItem_New.new(@actor, 1)
  1395.         @equip_item_window3 = Window_EquipItem_New.new(@actor, 2)
  1396.         @equip_item_window4 = Window_EquipItem_New.new(@actor, 3)
  1397.         @equip_item_window5 = Window_EquipItem_New.new(@actor, 4)
  1398.         @equip_item_window6 = Window_EquipItem_New.new(@actor, 5)
  1399.         @equip_item_window7 = Window_EquipItem_New.new(@actor, 6)
  1400.         @equip_item_window8 = Window_EquipItem_New.new(@actor, 7)
  1401.         #........................................................................
  1402.         @equip_window = Window_Equip.new
  1403.         @equip_window.y = 405
  1404.         @equip_window.set_item_id
  1405.         #........................................................................
  1406.         # 关联帮助窗口
  1407.         @equip_right_window.help_window = @equip_help_window
  1408.         @equip_item_window1.help_window = @equip_help_window
  1409.         @equip_item_window2.help_window = @equip_help_window
  1410.         @equip_item_window3.help_window = @equip_help_window
  1411.         @equip_item_window4.help_window = @equip_help_window
  1412.         @equip_item_window5.help_window = @equip_help_window
  1413.         @equip_item_window6.help_window = @equip_help_window
  1414.         @equip_item_window7.help_window = @equip_help_window
  1415.         @equip_item_window8.help_window = @equip_help_window
  1416.         # 设置光标位置
  1417.         @equip_right_window.index = @equip_index
  1418.         @status_window1.active = false
  1419.         @equip_update = true
  1420.         # 设置物品窗口的可视状态
  1421.         @equip_item_window1.visible = (@equip_right_window.index == 0)
  1422.         @equip_item_window2.visible = (@equip_right_window.index == 1)
  1423.         @equip_item_window3.visible = (@equip_right_window.index == 2)
  1424.         @equip_item_window4.visible = (@equip_right_window.index == 3)
  1425.         @equip_item_window5.visible = (@equip_right_window.index == 4)
  1426.         @equip_item_window6.visible = (@equip_right_window.index == 5)
  1427.         @equip_item_window7.visible = (@equip_right_window.index == 6)
  1428.         @equip_item_window8.visible = (@equip_right_window.index == 7)
  1429.         # 获取当前装备中的物品
  1430.         item1 = @equip_right_window.item
  1431.         # 设置当前的物品窗口到 @item_window
  1432.         @equip_window.set_item_id
  1433.         case @equip_right_window.index
  1434.         when 0
  1435.           @equip_item_window = @equip_item_window1
  1436.         when 1
  1437.           @equip_item_window = @equip_item_window2
  1438.         when 2
  1439.           @equip_item_window = @equip_item_window3
  1440.         when 3
  1441.           @equip_item_window = @equip_item_window4
  1442.         when 4
  1443.           @equip_item_window = @equip_item_window5
  1444.         when 5
  1445.           @equip_item_window = @equip_item_window6
  1446.         when 6
  1447.           @equip_item_window = @equip_item_window7
  1448.         when 7
  1449.           @equip_item_window = @equip_item_window8
  1450.         end
  1451.         # 右窗口被激活的情况下
  1452.         if @equip_right_window.active
  1453.           # 删除变更装备后的能力
  1454.           @status_window1.set_new_parameters(nil, nil, nil)
  1455.         end
  1456.         # 物品窗口被激活的情况下
  1457.         if @equip_item_window.active
  1458.           # 获取现在选中的物品
  1459.           item2 = @equip_item_window.item
  1460.           # 变更装备
  1461.           last_hp = @actor.hp
  1462.           last_sp = @actor.sp
  1463.           @actor.equip(@equip_right_window.index, item2 == nil ? 0 : item2.id)
  1464.           # 获取变更装备后的能力值
  1465.           new_atk = @actor.atk
  1466.           new_pdef = @actor.pdef
  1467.           new_mdef = @actor.mdef
  1468.           # 返回到装备
  1469.           @actor.equip(@equip_right_window.index, item1 == nil ? 0 : item1.id)
  1470.           @actor.hp = last_hp
  1471.           @actor.sp = last_sp
  1472.           # 描画左窗口
  1473.           @status_window1.set_new_parameters(new_atk, new_pdef, new_mdef)
  1474.           #........................................................................
  1475.           @equip_window.set_item(item2)
  1476.           #........................................................................
  1477.         end
  1478.     end
  1479.   end
  1480.   #--------------------------------------------------------------------------
  1481.   # ● 状态刷新
  1482.   #--------------------------------------------------------------------------
  1483.   def update_status_status
  1484.     # 按下 B 键的情况下
  1485.     if Input.trigger?(Input::B)
  1486.       # 演奏取消 SE
  1487.       $game_system.se_play($data_system.cancel_se)
  1488.       # 切换到菜单画面
  1489.       @status_status_window.dispose
  1490. #      @bgstatus.dispose
  1491.       @status_update = false
  1492.       @status_window.active = true
  1493.       return
  1494.     end
  1495.   end
  1496.   
  1497.   def update_system
  1498.     @system_window.update
  1499.     # 按下 B 键的情况下
  1500.     if Input.trigger?(Input::B)
  1501.       # 演奏取消 SE
  1502.       $game_system.se_play($data_system.cancel_se)
  1503.       # 切换到菜单画面
  1504.       @system_window.dispose
  1505.       @sys_update = false
  1506.       @command_window.active = true
  1507.       return
  1508.     end
  1509.     # 按下 C 键的情况下
  1510.     if Input.trigger?(Input::C)
  1511.       # 演奏确定 SE
  1512.       $game_system.se_play($data_system.decision_se)
  1513.       case @system_window.index
  1514.       when 0
  1515.         @bgm_window = Window_BGM_Volume.new(80, ["0%", "17%", "34%", "50%", "67%", "84%", "100%"])
  1516.         @currentbgm_window = Window_CurrentBGM_Volume.new
  1517.         @system_window.active = false
  1518.       when 1
  1519.         @sfx_window = Window_SFX_Volume.new(80, ["0%", "17%", "34%", "50%", "67%", "84%", "100%"])
  1520.         @currentsfx_window = Window_CurrentSFX_Volume.new
  1521.         @system_window.active = false
  1522.       when 2
  1523.         @system_window.dispose
  1524.         $scene = Scene_Save.new
  1525.       when 3
  1526.         @system_window.dispose
  1527.         $scene = Scene_Load.new(true)
  1528.       when 4
  1529.         @end_window = Window_EndCommand.new
  1530.         @system_window.active = false
  1531.       when 5
  1532.         @system_window.dispose
  1533.         $scene = Chaochao_Scene_Party.new
  1534.       when 6
  1535.          @system_window.dispose
  1536.          $scene = Scene_Lvup.new
  1537.         
  1538.       end
  1539.       return
  1540.     end
  1541.   end
  1542.   
  1543.   def update_bgm
  1544.     @bgm_window.update
  1545.     if Input.trigger?(Input::B)
  1546.       $game_system.se_play($data_system.cancel_se)
  1547.       @system_window.active = true
  1548.       @bgm_window.dispose
  1549.       @currentbgm_window.dispose
  1550.       return
  1551.     end
  1552.     if Input.trigger?(Input::C)
  1553.       case @bgm_window.index
  1554.       when 0
  1555.         $game_system.bgm_volume = 0
  1556.         $game_system.bgm_play($game_system.bgm_memorize)
  1557.         @currentbgm_window.refresh
  1558.       when 1
  1559.         $game_system.bgm_volume = 17
  1560.         $game_system.bgm_play($game_system.bgm_memorize)
  1561.         @currentbgm_window.refresh
  1562.       when 2
  1563.         $game_system.bgm_volume = 34
  1564.         $game_system.bgm_play($game_system.bgm_memorize)
  1565.         @currentbgm_window.refresh
  1566.       when 3
  1567.         $game_system.bgm_volume = 50
  1568.         $game_system.bgm_play($game_system.bgm_memorize)
  1569.         @currentbgm_window.refresh
  1570.       when 4
  1571.         $game_system.bgm_volume = 67
  1572.         $game_system.bgm_play($game_system.bgm_memorize)
  1573.         @currentbgm_window.refresh
  1574.       when 5
  1575.         $game_system.bgm_volume = 84
  1576.         $game_system.bgm_play($game_system.bgm_memorize)
  1577.         @currentbgm_window.refresh
  1578.       when 6
  1579.         $game_system.bgm_volume = 100
  1580.         $game_system.bgm_play($game_system.bgm_memorize)
  1581.         @currentbgm_window.refresh
  1582.       end
  1583.       return
  1584.     end
  1585.   end
  1586.   
  1587.   def update_sfx
  1588.     @sfx_window.update
  1589.     if Input.trigger?(Input::B)
  1590.       $game_system.se_play($data_system.cancel_se)
  1591.       @sfx_window.dispose
  1592.       @currentsfx_window.dispose
  1593.       @system_window.active = true
  1594.       return
  1595.     end
  1596.     if Input.trigger?(Input::C)
  1597.       case @sfx_window.index
  1598.       when 0
  1599.         $game_system.se_volume = 0
  1600.         $game_system.se_play($data_system.decision_se)
  1601.         @currentsfx_window.refresh
  1602.       when 1
  1603.         $game_system.se_volume = 17
  1604.         $game_system.se_play($data_system.decision_se)
  1605.         @currentsfx_window.refresh
  1606.       when 2
  1607.         $game_system.se_volume = 34
  1608.         $game_system.se_play($data_system.decision_se)
  1609.         @currentsfx_window.refresh
  1610.       when 3
  1611.         $game_system.se_volume = 50
  1612.         $game_system.se_play($data_system.decision_se)
  1613.         @currentsfx_window.refresh
  1614.       when 4
  1615.         $game_system.se_volume = 67
  1616.         $game_system.se_play($data_system.decision_se)
  1617.         @currentsfx_window.refresh
  1618.       when 5
  1619.         $game_system.se_volume = 84
  1620.         $game_system.se_play($data_system.decision_se)
  1621.         @currentsfx_window.refresh
  1622.       when 6
  1623.         $game_system.se_volume = 100
  1624.         $game_system.se_play($data_system.decision_se)
  1625.         @currentsfx_window.refresh
  1626.       end
  1627.       $game_map.autoplay
  1628.       return
  1629.     end
  1630.   end
  1631.   
  1632.   def update_end
  1633.     @end_window.update
  1634.     if Input.trigger?(Input::B)
  1635.       $game_system.se_play($data_system.cancel_se)
  1636.       @end_window.dispose
  1637.       @system_window.active = true
  1638.       return
  1639.     end
  1640.     if Input.trigger?(Input::C)
  1641.       case @end_window.index
  1642.       when 0
  1643.         @end_window.dispose
  1644.         @system_window.dispose
  1645.         command_to_title
  1646.       when 1
  1647.         command_shutdown
  1648.       end
  1649.       return
  1650.     end
  1651.   end

  1652.   def command_to_title
  1653.     $game_system.se_play($data_system.decision_se)
  1654.     Audio.bgm_fade(800)
  1655.     Audio.bgs_fade(800)
  1656.     Audio.me_fade(800)
  1657.     $scene = Scene_Title.new
  1658.   end

  1659.   def command_shutdown
  1660.     $game_system.se_play($data_system.decision_se)
  1661.     Audio.bgm_fade(800)
  1662.     Audio.bgs_fade(800)
  1663.     Audio.me_fade(800)
  1664.     $scene = nil
  1665.   end
  1666. end
复制代码
装备完全显示脚本:
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. #==============================================================================
  5. # ■ Window_Base
  6. #------------------------------------------------------------------------------
  7. #  游戏中全部窗口的超级类。
  8. #==============================================================================

  9. class Window_Base < Window
  10.   def up_color
  11.     return Color.new(255, 0, 0)
  12.   end
  13.   def down_color
  14.     return Color.new(0, 255, 0)
  15.   end
  16.   #--------------------------------------------------------------------------
  17.   # ● 描绘能力值
  18.   #     actor : 角色
  19.   #     x     : 描画目标 X 坐标
  20.   #     y     : 描画目标 Y 坐标
  21.   #     type  : 能力值种类 (0~6)
  22.   #--------------------------------------------------------------------------
  23.   def draw_actor_parameter(actor, x, y, type)
  24.     case type
  25.     when 0
  26.       parameter_name = $data_system.words.atk
  27.       parameter_value = actor.atk
  28.     when 1
  29.       parameter_name = $data_system.words.pdef
  30.       parameter_value = actor.pdef
  31.     when 2
  32.       parameter_name = $data_system.words.mdef
  33.       parameter_value = actor.mdef
  34.     when 3
  35.       parameter_name = $data_system.words.str
  36.       parameter_value = actor.str
  37.     when 4
  38.       parameter_name = $data_system.words.dex
  39.       parameter_value = actor.dex
  40.     when 5
  41.       parameter_name = $data_system.words.agi
  42.       parameter_value = actor.agi
  43.     when 6
  44.       parameter_name = $data_system.words.int
  45.       parameter_value = actor.int
  46.     ###############################################################
  47.     when 7
  48.       parameter_name = "回避"
  49.       parameter_value = actor.eva
  50.     end
  51.     self.contents.font.color = system_color
  52.     self.contents.draw_text(x, y, 120, 32, parameter_name)
  53.     self.contents.font.color = normal_color
  54.     self.contents.draw_text(x + 120, y, 36, 32, parameter_value.to_s, 2)
  55.   end
  56. end

  57. #==============================================================================
  58. # ■ Window_EquipLeft
  59. #------------------------------------------------------------------------------
  60. #  装备画面的、显示角色能力值变化的窗口。
  61. #==============================================================================

  62. class Window_EquipLeft < Window_Base
  63.   UP_ICON = "048-Skill05"
  64.   DOWN_ICON = "047-Skill04"
  65.   #--------------------------------------------------------------------------
  66.   # ● 初始化对像
  67.   #     actor : 角色
  68.   #--------------------------------------------------------------------------
  69.   def initialize(actor)
  70.     super(0, 64, 272, 416)
  71.     self.contents = Bitmap.new(width - 32, height - 32)
  72.     @actor = actor
  73.     refresh
  74.   end
  75.   #--------------------------------------------------------------------------
  76.   # ● 刷新
  77.   #--------------------------------------------------------------------------
  78.   def refresh
  79.     self.contents.clear
  80.     draw_actor_name(@actor, 4, 0)
  81.     draw_actor_level(@actor, 4, 32)
  82.     ###############################################################
  83.     draw_actor_parameter(@actor, 4, 64, 0)
  84.     draw_actor_parameter(@actor, 4, 96, 1)
  85.     draw_actor_parameter(@actor, 4, 128, 2)
  86.     draw_actor_parameter(@actor, 4, 160, 7)
  87.     draw_actor_parameter(@actor, 4, 192, 3)
  88.     draw_actor_parameter(@actor, 4, 224, 4)
  89.     draw_actor_parameter(@actor, 4, 256, 5)
  90.     draw_actor_parameter(@actor, 4, 288, 6)
  91.     if @new_atk != nil
  92.       if @new_atk > @actor.atk
  93.         self.contents.blt(164, 64, RPG::Cache.icon(UP_ICON), Rect.new(0, 0, 24, 24))
  94.       elsif @new_atk < @actor.atk
  95.         self.contents.blt(164, 64, RPG::Cache.icon(DOWN_ICON), Rect.new(0, 0, 24, 24))
  96.       end
  97.       self.contents.font.color = @new_atk>@actor.atk ? up_color : down_color
  98.       self.contents.font.color = normal_color if @new_atk == @actor.atk
  99.       self.contents.draw_text(200, 64, 36, 32, @new_atk.to_s, 2)
  100.     end
  101.     if @new_pdef != nil
  102.       if @new_pdef > @actor.pdef
  103.         self.contents.blt(164, 96, RPG::Cache.icon(UP_ICON), Rect.new(0, 0, 24, 24))
  104.       elsif @new_pdef < @actor.pdef
  105.         self.contents.blt(164, 96, RPG::Cache.icon(DOWN_ICON), Rect.new(0, 0, 24, 24))
  106.       end
  107.       self.contents.font.color = @new_pdef>@actor.pdef ? up_color : down_color
  108.       self.contents.font.color = normal_color if @new_pdef == @actor.pdef
  109.       self.contents.draw_text(200, 96, 36, 32, @new_pdef.to_s, 2)
  110.     end
  111.     if @new_mdef != nil
  112.       if @new_mdef > @actor.mdef
  113.         self.contents.blt(164, 128, RPG::Cache.icon(UP_ICON), Rect.new(0, 0, 24, 24))
  114.       elsif @new_mdef < @actor.mdef
  115.         self.contents.blt(164, 128, RPG::Cache.icon(DOWN_ICON), Rect.new(0, 0, 24, 24))
  116.       end
  117.       self.contents.font.color = @new_mdef>@actor.mdef ? up_color : down_color
  118.       self.contents.font.color = normal_color if @new_mdef == @actor.mdef
  119.       self.contents.draw_text(200, 128, 36, 32, @new_mdef.to_s, 2)
  120.     end
  121.     if @new_eva != nil
  122.       if @new_eva > @actor.eva
  123.         self.contents.blt(164, 160, RPG::Cache.icon(UP_ICON), Rect.new(0, 0, 24, 24))
  124.       elsif @new_eva < @actor.eva
  125.         self.contents.blt(164, 160, RPG::Cache.icon(DOWN_ICON), Rect.new(0, 0, 24, 24))
  126.       end
  127.       self.contents.font.color = @new_eva>@actor.eva ? up_color : down_color
  128.       self.contents.font.color = normal_color if @new_eva == @actor.eva
  129.       self.contents.draw_text(200, 160, 36, 32, @new_eva.to_s, 2)
  130.     end
  131.     if @new_str != nil
  132.       if @new_str > @actor.str
  133.         self.contents.blt(164, 192, RPG::Cache.icon(UP_ICON), Rect.new(0, 0, 24, 24))
  134.       elsif @new_str < @actor.str
  135.         self.contents.blt(164, 192, RPG::Cache.icon(DOWN_ICON), Rect.new(0, 0, 24, 24))
  136.       end
  137.       self.contents.font.color = @new_str>@actor.str ? up_color : down_color
  138.       self.contents.font.color = normal_color if @new_str == @actor.str
  139.       self.contents.draw_text(200, 192, 36, 32, @new_str.to_s, 2)
  140.     end
  141.     if @new_dex != nil
  142.       if @new_dex > @actor.dex
  143.         self.contents.blt(164, 224, RPG::Cache.icon(UP_ICON), Rect.new(0, 0, 24, 24))
  144.       elsif @new_dex < @actor.dex
  145.         self.contents.blt(164, 224, RPG::Cache.icon(DOWN_ICON), Rect.new(0, 0, 24, 24))
  146.       end
  147.       self.contents.font.color = @new_dex>@actor.dex ? up_color : down_color
  148.       self.contents.font.color = normal_color if @new_dex == @actor.dex
  149.       self.contents.draw_text(200, 224, 36, 32, @new_dex.to_s, 2)
  150.     end
  151.     if @new_agi != nil
  152.       if @new_agi > @actor.agi
  153.         self.contents.blt(164, 256, RPG::Cache.icon(UP_ICON), Rect.new(0, 0, 24, 24))
  154.       elsif @new_agi < @actor.agi
  155.         self.contents.blt(164, 256, RPG::Cache.icon(DOWN_ICON), Rect.new(0, 0, 24, 24))
  156.       end
  157.       self.contents.font.color = @new_agi>@actor.agi ? up_color : down_color
  158.       self.contents.font.color = normal_color if @new_agi == @actor.agi
  159.       self.contents.draw_text(200, 256, 36, 32, @new_agi.to_s, 2)
  160.     end
  161.     if @new_int != nil
  162.       if @new_int > @actor.int
  163.         self.contents.blt(164, 288, RPG::Cache.icon(UP_ICON), Rect.new(0, 0, 24, 24))
  164.       elsif @new_int < @actor.int
  165.         self.contents.blt(164, 288, RPG::Cache.icon(DOWN_ICON), Rect.new(0, 0, 24, 24))
  166.       end
  167.       self.contents.font.color = @new_int>@actor.int ? up_color : down_color
  168.       self.contents.font.color = normal_color if @new_int == @actor.int
  169.       self.contents.draw_text(200, 288, 36, 32, @new_int.to_s, 2)
  170.     end
  171.   end
  172.   #--------------------------------------------------------------------------
  173.   # ● 变更装备后的能力值设置
  174.   #     new_atk  : 变更装备后的攻击力
  175.   #     new_pdef : 变更装备后的物理防御
  176.   #     new_mdef : 变更装备后的魔法防御
  177.   #--------------------------------------------------------------------------
  178.     ###############################################################
  179.   def set_new_parameters(new_atk, new_pdef, new_mdef, new_eva, new_str, new_dex, new_agi, new_int)
  180.     if @new_atk != new_atk or @new_pdef !=new_pdef or @new_mdef != new_mdef or @new_eva != new_eva or @new_str != new_str or @new_dex !=new_dex or @new_agi != new_agi or @new_int != new_int
  181.       @new_atk = new_atk
  182.       @new_pdef = new_pdef
  183.       @new_mdef = new_mdef
  184.       @new_eva = new_eva
  185.       @new_str = new_str
  186.       @new_dex = new_dex
  187.       @new_agi = new_agi
  188.       @new_int = new_int
  189.       refresh
  190.     end
  191.   end
  192. end

  193. #==============================================================================
  194. # ■ Window_EquipItem
  195. #------------------------------------------------------------------------------
  196. #  装备画面、显示浏览变更装备的候补物品的窗口。
  197. #==============================================================================

  198. class Window_EquipItem < Window_Selectable
  199.   #--------------------------------------------------------------------------
  200.   # ● 初始化对像
  201.   #     actor      : 角色
  202.   #     equip_type : 装备部位 (0~3)
  203.   #--------------------------------------------------------------------------
  204.   def initialize(actor, equip_type)
  205.     ################改了改坐标和高度#################################
  206.     super(272, 256, 368, 224)
  207.     @actor = actor
  208.     @equip_type = equip_type
  209.     @column_max = 1
  210.     refresh
  211.     self.active = false
  212.     self.index = -1
  213.   end
  214.   #--------------------------------------------------------------------------
  215.   # ● 项目的描绘
  216.   #     index : 项目符号
  217.   #--------------------------------------------------------------------------
  218.   def draw_item(index)
  219.     item = @data[index]
  220.     ################改了改坐标#################################
  221.     x = 4
  222.     y = index * 32
  223.     case item
  224.     when RPG::Weapon
  225.       number = $game_party.weapon_number(item.id)
  226.     when RPG::Armor
  227.       number = $game_party.armor_number(item.id)
  228.     end
  229.     bitmap = RPG::Cache.icon(item.icon_name)
  230.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
  231.     self.contents.font.color = normal_color
  232.     self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  233.     self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
  234.     self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  235.   end
  236. end

  237. #==============================================================================
  238. # ■ Scene_Equip
  239. #------------------------------------------------------------------------------
  240. #  处理装备画面的类。
  241. #==============================================================================

  242. class Scene_Equip
  243.   #--------------------------------------------------------------------------
  244.   # ● 刷新
  245.   #--------------------------------------------------------------------------
  246.   def refresh
  247.     # 设置物品窗口的可视状态
  248.     @item_window1.visible = (@right_window.index == 0)
  249.     @item_window2.visible = (@right_window.index == 1)
  250.     @item_window3.visible = (@right_window.index == 2)
  251.     @item_window4.visible = (@right_window.index == 3)
  252.     @item_window5.visible = (@right_window.index == 4)
  253.     # 获取当前装备中的物品
  254.     item1 = @right_window.item
  255.     # 设置当前的物品窗口到 @item_window
  256.     case @right_window.index
  257.     when 0
  258.       @item_window = @item_window1
  259.     when 1
  260.       @item_window = @item_window2
  261.     when 2
  262.       @item_window = @item_window3
  263.     when 3
  264.       @item_window = @item_window4
  265.     when 4
  266.       @item_window = @item_window5
  267.     end
  268.     # 右窗口被激活的情况下
  269.     if @right_window.active
  270.       # 删除变更装备后的能力
  271.     ###############################################################
  272.       @left_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil, nil)
  273.     end
  274.     # 物品窗口被激活的情况下
  275.     if @item_window.active
  276.       # 获取现在选中的物品
  277.       item2 = @item_window.item
  278.       # 变更装备
  279.       last_hp = @actor.hp
  280.       last_sp = @actor.sp
  281.       @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)
  282.       # 获取变更装备后的能力值
  283.     ###############################################################
  284.       new_atk = @actor.atk
  285.       new_pdef = @actor.pdef
  286.       new_mdef = @actor.mdef
  287.       new_eva = @actor.eva
  288.       new_str = @actor.str
  289.       new_dex = @actor.dex
  290.       new_agi = @actor.agi
  291.       new_int = @actor.int
  292.       # 返回到装备
  293.       @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)
  294.       @actor.hp = last_hp
  295.       @actor.sp = last_sp
  296.       # 描画左窗口
  297.     ###############################################################
  298.       @left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_eva, new_str, new_dex, new_agi, new_int)
  299.     end
  300.   end
  301. end

  302. #==============================================================================
  303. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
复制代码

Lv3.寻梦者

梦石
0
星屑
1743
在线时间
485 小时
注册时间
2006-1-7
帖子
1073
2
发表于 2009-9-14 23:52:15 | 只看该作者
哪还有地方了
回复 支持 反对

使用道具 举报

Lv2.观梦者

永遠神剣

梦石
0
星屑
339
在线时间
412 小时
注册时间
2009-8-16
帖子
1797

贵宾

3
发表于 2009-9-15 07:23:32 | 只看该作者
如果你能PS一张图给出这个窗口的摆放位置与在什么地方调用出来的情况.
不难做
新的UI 旧的开始
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
40 小时
注册时间
2009-9-3
帖子
64
4
 楼主| 发表于 2009-9-15 12:49:02 | 只看该作者
本帖最后由 鬼火 于 2009-9-15 13:38 编辑

这是我已经做好的效果,没有实现增加的值。【如:攻击: 20 ↓ 0】
[quote]说起来也没什么难的- -
参考原系统的 Scene_Equip 就行了0 0
轩辕剑的只是删除了 @left_window
补上就是了- -囧
flzt5354 发表于 2009-9-2 18:23

[/quote]
上面是引用“flzt5354 ”大侠说的话,本人不懂。。。:(

我修改的脚本:
  1. #==============================================================================
  2. # ■ Window_EquipLeft
  3. #------------------------------------------------------------------------------
  4. #  装备画面的、显示角色能力值变化的窗口。
  5. #==============================================================================

  6. class Window_nengli < Window_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     actor : 角色
  10.   #--------------------------------------------------------------------------
  11.   def initialize(actor)
  12.     super(130, 28, 190, 416)
  13.     self.windowskin = RPG::Cache.windowskin("../system/menu/windowskins/palskin2")
  14.     self.opacity = 255
  15.     self.contents = Bitmap.new(width - 32, height - 32)
  16.     @actor = actor
  17.     refresh
  18.   end
  19.   #--------------------------------------------------------------------------
  20.   # ● 刷新
  21.   #--------------------------------------------------------------------------
  22.   def refresh
  23.     self.contents.clear
  24.     else
  25.       self.contents.font.size = 18
  26.       self.contents.font.bold = true
  27.       draw_actor_graphic(@actor, 40, 135)
  28.       draw_actor_class(@actor, 90, 20)
  29.       draw_actor_level(@actor, 56, 60)
  30.       draw_actor_state(@actor, 78, 90)
  31.       
  32.     draw_actor_parameter(@actor, -30, 128, 0)
  33.     draw_actor_parameter(@actor, -30, 160, 1)
  34.     draw_actor_parameter(@actor, -30, 192, 2)
  35.     draw_actor_parameter(@actor, -30, 224, 3)
  36.     draw_actor_parameter(@actor, -30, 256, 4)
  37.     draw_actor_parameter(@actor, -30, 288, 5)
  38.     draw_actor_parameter(@actor, -30, 320, 6)
  39.     self.contents.draw_text(2, 128, 96, 32, "攻击 :")
  40.     self.contents.draw_text(2, 160, 96, 32, "物防 :")
  41.     self.contents.draw_text(2, 192, 96, 32, "法防 :")
  42.     self.contents.draw_text(2, 224, 96, 32, "力量 :")
  43.     self.contents.draw_text(2, 256, 96, 32, "灵巧 :")
  44.     self.contents.draw_text(2, 288, 96, 32, "速度 :")
  45.     self.contents.draw_text(2, 320, 96, 32, "魔力 :")
  46.     self.contents.draw_text(120, 20, 96, 32, " :")
  47.     self.contents.draw_text(110, 60, 75, 32, "级")
  48.     if @new_atk != nil
  49.       self.contents.font.color = system_color
  50.       self.contents.draw_text(160, 64, 40, 32, "→", 1)
  51.       self.contents.font.color = @new_atk>@actor.atk ? up_color : down_color
  52.       self.contents.font.color = normal_color if @new_atk == @actor.atk
  53.       self.contents.draw_text(200, 64, 36, 32, @new_atk.to_s, 2)
  54.     end
  55.     if @new_pdef != nil
  56.       self.contents.font.color = system_color
  57.       self.contents.draw_text(160, 96, 40, 32, "→", 1)
  58.       self.contents.font.color = @new_pdef>@actor.pdef ? up_color : down_color
  59.       self.contents.font.color = normal_color if @new_pdef == @actor.pdef
  60.       self.contents.draw_text(200, 96, 36, 32, @new_pdef.to_s, 2)
  61.     end
  62.     if @new_mdef != nil
  63.       self.contents.font.color = system_color
  64.       self.contents.draw_text(160, 128, 40, 32, "→", 1)
  65.       self.contents.font.color = @new_mdef>@actor.mdef ? up_color : down_color
  66.       self.contents.font.color = normal_color if @new_mdef == @actor.mdef
  67.       self.contents.draw_text(200, 128, 36, 32, @new_mdef.to_s, 2)
  68.     end
  69.     if @new_eva != nil
  70.       self.contents.font.color = system_color
  71.       self.contents.draw_text(160, 160, 40, 32, "→", 1)
  72.       self.contents.font.color = @new_eva>@actor.eva ? up_color : down_color
  73.       self.contents.font.color = normal_color if @new_eva == @actor.eva
  74.       self.contents.draw_text(200, 160, 36, 32, @new_eva.to_s, 2)
  75.     end
  76.     if @new_str != nil
  77.       self.contents.font.color = system_color
  78.       self.contents.draw_text(160, 192, 40, 32, "→", 1)
  79.       self.contents.font.color = @new_str>@actor.str ? up_color : down_color
  80.       self.contents.font.color = normal_color if @new_str == @actor.str
  81.       self.contents.draw_text(200, 192, 36, 32, @new_str.to_s, 2)
  82.     end
  83.     if @new_dex != nil
  84.       self.contents.font.color = system_color
  85.       self.contents.draw_text(160, 224, 40, 32, "→", 1)
  86.       self.contents.font.color = @new_dex>@actor.dex ? up_color : down_color
  87.       self.contents.font.color = normal_color if @new_dex == @actor.dex
  88.       self.contents.draw_text(200, 224, 36, 32, @new_dex.to_s, 2)
  89.     end
  90.     if @new_agi != nil
  91.       self.contents.font.color = system_color
  92.       self.contents.draw_text(160, 256, 40, 32, "→", 1)
  93.       self.contents.font.color = @new_agi>@actor.agi ? up_color : down_color
  94.       self.contents.font.color = normal_color if @new_agi == @actor.agi
  95.       self.contents.draw_text(200, 256, 36, 32, @new_agi.to_s, 2)
  96.     end
  97.     if @new_int != nil
  98.       self.contents.font.color = system_color
  99.       self.contents.draw_text(160, 288, 40, 32, "→", 1)
  100.       self.contents.font.color = @new_int>@actor.int ? up_color : down_color
  101.       self.contents.font.color = normal_color if @new_int == @actor.int
  102.       self.contents.draw_text(200, 288, 36, 32, @new_int.to_s, 2)
  103.     end
  104.   end


  105.   #--------------------------------------------------------------------------
  106.   # ● 变更装备后的能力值设置
  107.   #     new_atk  : 变更装备后的攻击力
  108.   #     new_pdef : 变更装备后的物理防御
  109.   #     new_mdef : 变更装备后的魔法防御
  110.   #--------------------------------------------------------------------------
  111.   def set_new_parameters(new_atk, new_pdef, new_mdef, new_eva, new_str, new_dex, new_agi, new_int)
  112.     if @new_atk != new_atk or @new_pdef !=new_pdef or @new_mdef != new_mdef or @new_eva != new_eva or @new_str != new_str or @new_dex !=new_dex or @new_agi != new_agi or @new_int != new_int
  113.       @new_atk = new_atk
  114.       @new_pdef = new_pdef
  115.       @new_mdef = new_mdef
  116.       @new_eva = new_eva
  117.       @new_str = new_str
  118.       @new_dex = new_dex
  119.       @new_agi = new_agi
  120.       @new_int = new_int
  121.       refresh
  122.     end
  123.   end
  124. end  
复制代码
回复 支持 反对

使用道具 举报

Lv2.观梦者

永遠神剣

梦石
0
星屑
339
在线时间
412 小时
注册时间
2009-8-16
帖子
1797

贵宾

5
发表于 2009-9-15 17:14:17 | 只看该作者
你是说现在的属性状态没有刷新吗?
要做出那个更换武器时的增减效果出来?
新的UI 旧的开始
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
344
在线时间
185 小时
注册时间
2007-9-2
帖子
168
6
发表于 2009-9-15 18:09:04 | 只看该作者
本帖最后由 zhli667 于 2009-9-15 18:11 编辑
你是说现在的属性状态没有刷新吗?
要做出那个更换武器时的增减效果出来?

是的,更换武器时的增减效果显不出来,好像是“轩辕剑菜单脚本”缺东西~~
新手作品:《幻想》———缓慢制作中———
   
合击技能!哇哈哈~~~                                                                     金山寺求宝~~~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
18 小时
注册时间
2009-7-25
帖子
411
7
发表于 2009-9-15 19:34:43 | 只看该作者
本帖最后由 flzt5354 于 2009-9-15 19:37 编辑


自己研究下
真的不难。
只是很麻烦、、、
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
40 小时
注册时间
2009-9-3
帖子
64
8
 楼主| 发表于 2009-9-15 19:49:53 | 只看该作者
本帖最后由 鬼火 于 2009-9-15 20:01 编辑

"flzt5354 ”大侠你终于露面了,看在我是新手兼脚本盲的面子上,教给我吧……
:'(:'(:'(
另外用上面改的脚本似乎掉帧很厉害。。。。
[注:不是我要当伸手党,实在是有心无力啊:( ]
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
18 小时
注册时间
2009-7-25
帖子
411
9
发表于 2009-9-15 20:03:27 | 只看该作者
仅供思路参考- -其实都很明确了


PS: @equip_left_window  = Window_EquipLeft_New.new
回复 支持 反对

使用道具 举报

Lv2.观梦者

永遠神剣

梦石
0
星屑
339
在线时间
412 小时
注册时间
2009-8-16
帖子
1797

贵宾

10
发表于 2009-9-15 20:25:48 | 只看该作者
很明确了..但是 不知道LZ能不能做到.
如果没学过基本的东西.恐怕很难啊..
新的UI 旧的开始
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-8 05:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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