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

Project1

 找回密码
 注册会员
搜索
查看: 299|回复: 1

[原创发布] 战斗视窗调整(行走图战斗) + DQ菜单

[复制链接]

Lv2.观梦者

梦石
0
星屑
473
在线时间
213 小时
注册时间
2011-4-16
帖子
72
发表于 2024-10-17 17:52:54 | 显示全部楼层 |阅读模式

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

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

x
我方角色遭受技能与攻击的动画未完成,只有背部行走图的动态显示。
战斗视窗调整为原创,DQ菜单是转载。
RUBY 代码复制
  1. module Vocab
  2.   BattleParty = "队伍"
  3. end
  4.  
  5. class Scene_Equip < Scene_Base
  6.   #--------------------------------------------------------------------------
  7.   # * 战斗时更换装备,返回战斗场景
  8.   #--------------------------------------------------------------------------
  9.   def return_scene
  10.     if $game_temp.in_battle
  11.       $scene = Scene_Battle.new
  12.     else
  13.       $scene = Scene_Menu.new(2)
  14.     end
  15.   end
  16. end  
  17.  
  18. class Window_BattleMessage < Window_Message
  19. #  设置战斗信息显示的最大行数
  20.   MAX_LINE = 4
  21.   #--------------------------------------------------------------------------
  22.   # * 战斗信息窗口 初始化
  23.   #--------------------------------------------------------------------------
  24.   def initialize
  25.     super
  26.     self.openness = 255    # 设置窗口可见性
  27.     self.back_opacity = 0  # 设置窗口不透明度
  28.     @lines = []
  29.     self.x = -10
  30.     self.y = 112
  31.     self.width = 566
  32.     self.height = 315
  33.     refresh
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # * 绘制战斗信息     index : Line number
  37.   #--------------------------------------------------------------------------
  38. def draw_line(index)
  39.   rect = Rect.new(5, index * WLH, contents.width - 5, WLH)
  40.   self.contents.clear_rect(rect)
  41.   self.contents.font.color = normal_color
  42.   self.contents.draw_text(rect, @lines[index])
  43. end
  44.   #--------------------------------------------------------------------------
  45.   # * 刷新战斗文本   
  46.   #--------------------------------------------------------------------------  
  47.   def refresh
  48.     self.contents.clear
  49.     (0...[MAX_LINE, @lines.size].min).each do |i|  # 使用min函数确保不会超出数组界限
  50.       draw_line(i)
  51.     end
  52.   end   
  53. end
  54.  
  55. class Window_TargetEnemy < Window_Command
  56.   #--------------------------------------------------------------------------
  57.   # * 敌人队伍指令窗口 初始化
  58.   #--------------------------------------------------------------------------
  59.   def initialize
  60.     commands = []
  61.     @enemies = []
  62.     count = 0  # 遍历敌人角标的计数器
  63.     for enemy in $game_troop.members
  64.       count += 1      
  65.       next unless enemy.exist?
  66.       commands.push(enemy.name)
  67.       @enemies.push(enemy)
  68.     end
  69.     if count > 4  # 超过4个敌人时,选框两列显示
  70.       super(360, commands, 2, 4)
  71.     else
  72.       super(180, commands, 1, 4)
  73.     end
  74.   end
  75. end
  76.  
  77. class Window_TurnCount < Window_Command   # 自定义类,用于实现战斗回合的显示 #
  78.   #--------------------------------------------------------------------------
  79.   # * 回合显示窗口 初始化
  80.   #--------------------------------------------------------------------------
  81.   def initialize
  82.     s1 = $game_troop.turn_count + 1
  83.     s2 = "回合"
  84.     super(128,[s1, s2], 2, 1)
  85.     draw_item(0, true)
  86.     draw_item(1, true)
  87.   end
  88. end
  89.  
  90. class Window_BattleStatus < Window_Selectable
  91.   #--------------------------------------------------------------------------
  92.   # * 角色状态窗口 初始化
  93.   #--------------------------------------------------------------------------
  94.   def initialize
  95.     super(126, -10, 420, 128, spacing = 0)
  96.     refresh
  97.     self.active = false
  98.   end
  99.   #--------------------------------------------------------------------------
  100.   # * 绘制角色状态窗口的项目
  101.   #--------------------------------------------------------------------------
  102.   def draw_item(index)
  103.     rect = item_rect(index)
  104.     rect.x += 4
  105.     rect.width -= 8
  106.     self.contents.clear_rect(rect)
  107.     self.contents.font.color = normal_color
  108.     actor = $game_party.members[index]
  109.     draw_actor_name(actor, 4, rect.y)
  110.     draw_actor_state(actor, 80, rect.y, 120)
  111.     draw_actor_hp(actor, 210, rect.y, 90)
  112.     draw_actor_mp(actor, 310, rect.y, 70)
  113.   end
  114. end
  115.  
  116. class Window_ActorCommand < Window_Command
  117.   #--------------------------------------------------------------------------
  118.   # * 角色指令菜单窗口 初始化
  119.   #--------------------------------------------------------------------------
  120.   def initialize
  121.     super(128, [], 2, 2)
  122.     self.active = false
  123.   end
  124. end
  125.  
  126. class Window_PartyCommand < Window_Command
  127.   #--------------------------------------------------------------------------
  128.   # * 战斗初始指令窗口 初始化 ( 卡斯尔顿城堡2F侍卫放行后) (只有第一回合可管理队伍)
  129.   #--------------------------------------------------------------------------
  130.   def initialize
  131.     s1 = Vocab::fight
  132.     s2 = Vocab::equip
  133.     s3 = Vocab::BattleParty
  134.     s4 = Vocab::escape
  135.     super(128, [s1, s2, s3, s4], 2, 2)
  136.     draw_item(0, true)
  137.     draw_item(1, true)
  138.     if $game_switches[130] == true && $game_troop.turn_count == 0
  139.       draw_item(2, true)
  140.     else
  141.       draw_item(2, false)
  142.     end  
  143.     draw_item(3, $game_troop.can_escape)
  144.     self.active = false
  145.   end
  146. end
  147.  
  148. class Scene_Battle < Scene_Base
  149. # 定义实例变量用于全局调用  
  150.   attr_accessor :draw_count  
  151.   #--------------------------------------------------------------------------
  152.   # * 战斗场景开始处理
  153.   #--------------------------------------------------------------------------
  154.   def start
  155.     super
  156.     @draw_count = 0  # 绘制行走图的切换开关  
  157.     $game_temp.in_battle = true
  158.     @spriteset = Spriteset_Battle.new
  159.     @message_window = Window_BattleMessage.new
  160.     @action_battlers = []
  161.     create_info_viewport
  162.   end  
  163.   #--------------------------------------------------------------------------
  164.   # * 框架更新
  165.   #--------------------------------------------------------------------------
  166.   def update
  167.     super
  168.     update_basic(true)
  169.     update_info_viewport                  # 更新信息视窗
  170.     @turnCount_window.visible = true
  171.     if $game_message.visible
  172.       @info_viewport.visible = false
  173.       @status_window.visible = true
  174.       @message_window.visible = true
  175.     end
  176.     unless $game_message.visible          # 消息显示的情况之外
  177.     draw_actor_character                  # 绘制行走图
  178.     @draw_count += 1
  179.       return if judge_win_loss            # 确定输赢结果
  180.       update_scene_change
  181.       if @target_enemy_window != nil
  182.         update_target_enemy_selection     # 选择目标敌人
  183.       elsif @target_actor_window != nil
  184.         update_target_actor_selection     # 选择目标角色
  185.       elsif @skill_window != nil      
  186.         update_skill_selection            # 选择技能
  187.       elsif @item_window != nil      
  188.         update_item_selection             # 选择道具
  189.       elsif @party_command_window.active
  190.         update_party_command_selection    # 战斗初始指令窗口
  191.       elsif @status_window.active     
  192.         update_actor_selection            # 角色更换装备需要进行角色选择
  193.       elsif @actor_command_window.active     
  194.         update_actor_command_selection    # 选择角色窗口
  195.       else
  196.         process_battle_event              # 战斗事件处理
  197.         process_action                    # 战斗动作
  198.         @status_window.refresh            # 刷新角色状态信息
  199.         process_battle_event              # 战斗事件处理
  200.       end
  201.     end
  202.   end
  203.   #--------------------------------------------------------------------------
  204.   # * 创建信息显示视窗
  205.   #--------------------------------------------------------------------------
  206.   def create_info_viewport
  207.     @info_viewport = Viewport.new(0, 0, 544, 128)  # 0,288, 544, 128
  208.     @info_viewport.z = 100
  209.     @status_window = Window_BattleStatus.new  
  210.     @party_command_window = Window_PartyCommand.new
  211.     @party_command_window.x = 0
  212.     @party_command_window.y = 38
  213.     @actor_command_window = Window_ActorCommand.new
  214.     @actor_command_window.x = 0
  215.     @actor_command_window.y = 38
  216.     @turnCount_window = Window_TurnCount.new
  217.     @turnCount_window.x = 0
  218.     @turnCount_window.y = -10
  219.     @actor_character_window = Window_Base.new(-10, -10, 566, 600)
  220.     @actor_character_window.back_opacity = 0
  221.     @actor_character_window.visible = true
  222.     draw_character_1
  223.     @actor_command_window.visible = false
  224.     @party_command_window.visible = false
  225.     @turnCount_window.visible = false
  226.     @status_window.visible = false
  227.     @info_viewport.visible = false
  228.   end
  229.   #--------------------------------------------------------------------------
  230.   # * 绘制玩家角色行走图
  231.   #--------------------------------------------------------------------------
  232.   def draw_actor_character
  233.     if @draw_count == 20
  234.       draw_character_1
  235.       @actor_character_window.update
  236.     elsif @draw_count == 40
  237.       draw_character_2
  238.       @draw_count = 0
  239.       @actor_character_window.update
  240.     else
  241.       @actor_character_window.update
  242.     end
  243.   end
  244.   #--------------------------------------------------------------------------
  245.   # * 行走图 - 动作1
  246.   #--------------------------------------------------------------------------
  247.   def draw_character_1
  248.     x_coordinate = 120
  249.     for actor in $game_party.members
  250.       @actor_character_window.draw_character_turnU(actor.character_name, actor.character_index, x_coordinate, 380) if $game_party.members.size == 4
  251.       @actor_character_window.draw_character_turnU(actor.character_name, actor.character_index, x_coordinate + 50, 380) if $game_party.members.size == 3
  252.       @actor_character_window.draw_character_turnU(actor.character_name, actor.character_index, x_coordinate + 90, 380) if $game_party.members.size == 2
  253.       @actor_character_window.draw_character_turnU(actor.character_name, actor.character_index, x_coordinate + 150, 380) if $game_party.members.size == 1
  254.       x_coordinate += 100
  255.     end
  256.   end
  257.   #--------------------------------------------------------------------------
  258.   # * 行走图 - 动作2
  259.   #--------------------------------------------------------------------------
  260.   def draw_character_2
  261.     x_coordinate = 120
  262.     for actor in $game_party.members
  263.       @actor_character_window.draw_character_turnU2(actor.character_name, actor.character_index, x_coordinate, 380) if $game_party.members.size == 4
  264.       @actor_character_window.draw_character_turnU2(actor.character_name, actor.character_index, x_coordinate + 50, 380) if $game_party.members.size == 3
  265.       @actor_character_window.draw_character_turnU2(actor.character_name, actor.character_index, x_coordinate + 90, 380) if $game_party.members.size == 2
  266.       @actor_character_window.draw_character_turnU2(actor.character_name, actor.character_index, x_coordinate + 150, 380) if $game_party.members.size == 1
  267.       x_coordinate += 100
  268.     end
  269.   end
  270.   #--------------------------------------------------------------------------
  271.   # * 逃跑动作1
  272.   #--------------------------------------------------------------------------
  273.   def draw_runaway_1
  274.     x_coordinate = 120
  275.     for actor in $game_party.members
  276.       @actor_character_window.draw_character_turnD(actor.character_name, actor.character_index, x_coordinate, 380) if $game_party.members.size == 4
  277.       @actor_character_window.draw_character_turnD(actor.character_name, actor.character_index, x_coordinate + 50, 380) if $game_party.members.size == 3
  278.       @actor_character_window.draw_character_turnD(actor.character_name, actor.character_index, x_coordinate + 90, 380) if $game_party.members.size == 2
  279.       @actor_character_window.draw_character_turnD(actor.character_name, actor.character_index, x_coordinate + 150, 380) if $game_party.members.size == 1
  280.       x_coordinate += 100
  281.     end
  282.   end
  283.   #--------------------------------------------------------------------------
  284.   # * 逃跑动作2
  285.   #--------------------------------------------------------------------------
  286.   def draw_runaway_2
  287.     x_coordinate = 120
  288.     for actor in $game_party.members
  289.       @actor_character_window.draw_character_turnD2(actor.character_name, actor.character_index, x_coordinate, 380) if $game_party.members.size == 4
  290.       @actor_character_window.draw_character_turnD2(actor.character_name, actor.character_index, x_coordinate + 50, 380) if $game_party.members.size == 3
  291.       @actor_character_window.draw_character_turnD2(actor.character_name, actor.character_index, x_coordinate + 90, 380) if $game_party.members.size == 2
  292.       @actor_character_window.draw_character_turnD2(actor.character_name, actor.character_index, x_coordinate + 150, 380) if $game_party.members.size == 1
  293.       x_coordinate += 100
  294.     end
  295.   end
  296.   #--------------------------------------------------------------------------
  297.   # * 执行角色逃跑动作 (搁置)
  298.   #--------------------------------------------------------------------------
  299.   def set_runaway
  300.     count = 0
  301.     if  #  判断条件
  302.       loop do
  303.         if count == 0
  304.           draw_runaway_1
  305.           @actor_character_window.update
  306.         elsif count == 10
  307.           draw_runaway_2
  308.           count = 0
  309.           @actor_character_window.update
  310.         else
  311.           @actor_character_window.update
  312.         end
  313.         count += 1
  314.       end
  315.     end
  316.   end  
  317.   #--------------------------------------------------------------------------
  318.   # *处置(关闭)信息显示视口
  319.   #--------------------------------------------------------------------------
  320.   def dispose_info_viewport
  321.     @status_window.dispose
  322.     @party_command_window.dispose
  323.     @actor_command_window.dispose
  324.     @info_viewport.dispose
  325.     @turnCount_window.dispose
  326.     @actor_character_window.dispose
  327.   end  
  328.   #--------------------------------------------------------------------------
  329.   # *更新信息显示视口
  330.   #--------------------------------------------------------------------------
  331.   def update_info_viewport
  332.     @turnCount_window.active = false
  333.     draw_actor_character                  # 绘制行走图
  334.     @draw_count += 1
  335.     @actor_command_window.update
  336.     @status_window.update
  337.     @turnCount_window.update
  338.     @party_command_window.update  
  339.     if @party_command_window.active   
  340.       @party_command_window.visible = true
  341.       @status_window.visible = true
  342.       @actor_command_window.visible = false
  343.     elsif @actor_command_window.active
  344.       @actor_command_window.visible = true
  345.       @party_command_window.visible = false
  346.     end
  347.   end  
  348.   #--------------------------------------------------------------------------
  349.   # * 开始窗口列表選擇指令
  350.   #--------------------------------------------------------------------------
  351.   def start_party_command_selection
  352.     if $game_temp.in_battle
  353.       @status_window.refresh
  354.       @status_window.index = @actor_index = -1
  355.       @active_battler = nil
  356.       @info_viewport.visible = true
  357.       @message_window.visible = false
  358.       @party_command_window.active = true
  359.       @party_command_window.index = 0
  360.       @actor_command_window.active = false
  361.       $game_party.clear_actions
  362.       if $game_troop.surprise or not $game_party.inputable?
  363.         start_main
  364.       end
  365.     end
  366.   end  
  367.   #--------------------------------------------------------------------------
  368.   # * 更新战斗初始選擇指令  ( 卡斯尔顿城堡2F侍卫放行后) (只有第一回合可管理队伍)
  369.   #--------------------------------------------------------------------------
  370.   def update_party_command_selection
  371.     if $game_switches[130] == true && $game_troop.turn_count == 0
  372.       new_party_command_selection
  373.     else
  374.       old_party_command_selection
  375.     end
  376.   end
  377.   #--------------------------------------------------------------------------
  378.   # * 战斗初始選擇指令 - 不能管理队伍
  379.   #--------------------------------------------------------------------------
  380.   def old_party_command_selection
  381.     if Input.trigger?(Input::B)
  382.       Sound.play_cancel
  383.       end_actor_selection
  384.     elsif Input.trigger?(Input::C)
  385.       case @party_command_window.index
  386.       when 0
  387.         Sound.play_decision
  388.         @status_window.index = @actor_index = -1
  389.         next_actor
  390.       when 1
  391.         start_actor_selection
  392.       when 2
  393.         Sound.play_buzzer
  394.         return
  395.       when 3
  396.         if $game_troop.can_escape == false
  397.           Sound.play_buzzer
  398.           return
  399.         end
  400.         Sound.play_decision
  401.         process_escape
  402.       end
  403.     end
  404.   end
  405.   #--------------------------------------------------------------------------
  406.   # * 战斗初始選擇指令 - 可以管理队伍
  407.   #--------------------------------------------------------------------------
  408.   def new_party_command_selection
  409.     if Input.trigger?(Input::B)
  410.       Sound.play_cancel
  411.       end_actor_selection
  412.     elsif Input.trigger?(Input::C)
  413.       case @party_command_window.index
  414.       when 0
  415.         Sound.play_decision
  416.         @status_window.index = @actor_index = -1
  417.         next_actor
  418.       when 1
  419.         start_actor_selection
  420.       when 2
  421.         party_manage
  422.       when 3
  423.         if $game_troop.can_escape == false
  424.           Sound.play_buzzer
  425.           return
  426.         end
  427.         Sound.play_decision
  428.         process_escape
  429.       end
  430.     end
  431.   end  
  432.   #--------------------------------------------------------------------------
  433.   # * 更改装备 - 开始选择角色
  434.   #--------------------------------------------------------------------------
  435.   def start_actor_selection
  436.     @party_command_window.active = false
  437.     @status_window.active = true
  438.     if $game_party.last_actor_index < @status_window.item_max
  439.       @status_window.index = $game_party.last_actor_index
  440.     else
  441.       @status_window.index = 0
  442.     end
  443.   end
  444.   #--------------------------------------------------------------------------
  445.   # * 更改装备 - 角色选择结束
  446.   #--------------------------------------------------------------------------
  447.   def end_actor_selection
  448.     @party_command_window.active = true
  449.     @status_window.active = false
  450.     @status_window.index = -1
  451.   end
  452.   #--------------------------------------------------------------------------
  453.   # * 更改装备 - 更新角色选择指令
  454.   #--------------------------------------------------------------------------
  455.   def update_actor_selection
  456.     if Input.trigger?(Input::B)
  457.       Sound.play_cancel
  458.       end_actor_selection
  459.     elsif Input.trigger?(Input::C)
  460.       $game_party.last_actor_index = @status_window.index
  461.       Sound.play_decision
  462.       $scene = Scene_Equip.new(@status_window.index)
  463.     end
  464.   end
  465.   #--------------------------------------------------------------------------
  466.   # * 开始道具选择 (创建道具窗口和帮助窗口)
  467.   #--------------------------------------------------------------------------
  468.   def start_item_selection
  469.     @help_window = Window_Help.new
  470.     @help_window.y = 238
  471.     @help_window.back_opacity = 180
  472.     @item_window = Window_Item.new(0, 288, 544, 130)
  473.     @item_window.back_opacity = 180
  474.     @item_window.help_window = @help_window
  475.     @actor_command_window.active = false
  476.   end
  477.   #--------------------------------------------------------------------------
  478.   # * 开始技能选择 (创建技能窗口和帮助窗口)
  479.   #--------------------------------------------------------------------------
  480.   def start_skill_selection
  481.     @help_window = Window_Help.new
  482.     @help_window.y = 238
  483.     @help_window.back_opacity = 180
  484.     @skill_window = Window_Skill.new(0, 288, 544, 130, @active_battler)
  485.     @skill_window.back_opacity = 180
  486.     @skill_window.help_window = @help_window
  487.     @actor_command_window.active = false
  488.   end
  489.   #--------------------------------------------------------------------------
  490.   # * 调整队伍 (调用PartyRoster类的方法)
  491.   #--------------------------------------------------------------------------
  492.   def party_manage
  493.     $data_actors[1].required = true
  494.     $scene = Scene_Party.new
  495.   end
  496.   #--------------------------------------------------------------------------
  497.   # * 开始目标角色选择 (使用道具或技能时,选择玩家角色的窗口)
  498.   #--------------------------------------------------------------------------
  499.   def start_target_actor_selection
  500.     @target_actor_window = Window_BattleStatus.new
  501.     @target_actor_window.index = 0
  502.     @target_actor_window.x = 0
  503.     @target_actor_window.y = 288
  504.     @info_viewport.rect.x += @target_actor_window.width
  505.     @info_viewport.ox += @target_actor_window.width
  506.     @actor_command_window.active = false
  507.     @target_actor_window.active = true
  508.   end
  509.   #--------------------------------------------------------------------------
  510.   # *更新目标角色选择
  511.   #--------------------------------------------------------------------------
  512.   def update_target_actor_selection
  513.     @target_actor_window.update
  514.     if Input.trigger?(Input::B)
  515.       Sound.play_cancel
  516.       end_target_actor_selection
  517.     elsif Input.trigger?(Input::C)
  518.       Sound.play_decision
  519.       @active_battler.action.target_index = @target_actor_window.index
  520.       end_target_actor_selection
  521.       end_skill_selection
  522.       end_item_selection
  523.       next_actor
  524.     end
  525.   end  
  526.   #--------------------------------------------------------------------------
  527.   # * 开始目标敌人选择 - 创建选择敌人的指令窗口
  528.   #--------------------------------------------------------------------------
  529.   def start_target_enemy_selection
  530.     @target_enemy_window = Window_TargetEnemy.new
  531.     @target_enemy_window.x = 0
  532.     @target_enemy_window.y = 288
  533.     @info_viewport.rect.x += @target_enemy_window.width
  534.     @info_viewport.ox += @target_enemy_window.width
  535.     @actor_command_window.active = false
  536.   end
  537.   #--------------------------------------------------------------------------
  538.   # * 回合结束    重新创建回合显示窗口和作战指令窗口
  539.   #--------------------------------------------------------------------------
  540.   def turn_end
  541.     $game_troop.turn_ending = true
  542.     $game_party.slip_damage_effect
  543.     $game_troop.slip_damage_effect
  544.     $game_party.do_auto_recovery
  545.     $game_troop.preemptive = false
  546.     $game_troop.surprise = false
  547.     process_battle_event
  548.     $game_troop.turn_ending = false
  549.     @turnCount_window.dispose
  550.     @turnCount_window = Window_TurnCount.new
  551.     @turnCount_window.x = 0
  552.     @turnCount_window.y = -10
  553.     @party_command_window.dispose
  554.     @party_command_window = Window_PartyCommand.new
  555.     @party_command_window.x = 0
  556.     @party_command_window.y = 38
  557.     start_party_command_selection
  558.     draw_actor_character                  # 绘制行走图
  559.     @draw_count += 1
  560.   end
  561.   #--------------------------------------------------------------------------
  562.   # * 开始逃跑       添加“逃跑成功”字样显示
  563.   #--------------------------------------------------------------------------
  564.   def process_escape
  565. #    set_runaway    # 执行角色逃跑动作
  566.     @info_viewport.visible = false
  567.     @message_window.visible = true
  568.     text = sprintf(Vocab::EscapeStart, $game_party.name)
  569.     $game_message.texts.push(text)
  570.     if $game_troop.preemptive
  571.       success = true
  572.     else
  573.       success = (rand(100) < @escape_ratio)
  574.     end
  575.     Sound.play_escape
  576.     if success
  577.       wait_for_message
  578.       $game_message.texts.push("成功的逃脱了。")
  579.       wait_for_message
  580.       battle_end(1)
  581.     else
  582.       @escape_ratio += 10
  583.       $game_message.texts.push('\.' + Vocab::EscapeFailure)
  584.       wait_for_message
  585.       $game_party.clear_actions
  586.       start_main
  587.     end
  588.   end
  589.   #--------------------------------------------------------------------------
  590.   # * 战斗事件处理
  591.   #--------------------------------------------------------------------------
  592.   def process_battle_event
  593.     loop do
  594.       draw_actor_character  # 绘制角色行走图
  595.       @draw_count += 1
  596.       @status_window.refresh            # 刷新角色状态信息
  597.       return if judge_win_loss
  598.       return if $game_temp.next_scene != nil
  599.       $game_troop.interpreter.update
  600.       $game_troop.setup_battle_event
  601.       wait_for_message
  602.       process_action if $game_troop.forcing_battler != nil
  603.       return unless $game_troop.interpreter.running?
  604.       update_basic
  605.     end
  606.   end  
  607. end
  608.  
  609. #==============================================================================
  610. #                 在窗口中绘制不同身体朝向的角色行走图
  611. # 调用方法·例: @xxxx_window.draw_character(character_name, character_index, x, y)
  612. #==============================================================================
  613. class Window_Base < Window
  614. # 定义原有方法绘制行走图朝向的常量 (0-下,1-左,2-右,3-上)
  615.   TURN = 0  
  616.   #--------------------------------------------------------------------------
  617.   # * 绘制角色图像   (原有方法,绘制的行走图身体朝下)
  618.   #     character_name  : 角色图像文件名
  619.   #     character_index : 角色图像索引
  620.   #     x     : 绘制点 x-坐标
  621.   #     y     : 绘制点 y-坐标
  622.   #--------------------------------------------------------------------------
  623.   def draw_character(character_name, character_index, x, y)
  624.     return if character_name == nil    # 检测角色位图是否为空
  625.     bitmap = Cache.character(character_name)  # 从游戏的缓存中获取角色的位图
  626.     sign = character_name[/^[\!\$]./]# 使用正则表达式来匹配角色名称的第一个字符,如果匹配成功,sign 变量将存储该字符。   
  627.     if sign != nil and sign.include?('$') # 检查 sign 变量是否不为 nil 并且包含字符 $。
  628.       cw = bitmap.width / 3   # 半身头像位图的宽度
  629.       ch = bitmap.height / 4  # 半身头像位图的高度
  630.     else
  631.       cw = bitmap.width / 12  # 行走图宽度
  632.       ch = bitmap.height / 8  # 行走图高度
  633.     end
  634.     n = character_index       # 存储角色位图索引
  635. # x 坐标是根据图像索引和每行的图像数量(对于全身图像通常是 4 个)计算的,y 坐标是根据图像索引除以每行的图像数量计算的。cw 和 ch 是源区域的宽度和高度。
  636.     src_rect = Rect.new((n%4*3+1)*cw, (n/4*4+TURN)*ch, cw, ch)   #  通过Rect定义位图绘制区域
  637. # blt 是 Bitmap 类的方法,将源位图(bitmap)中的一个区域(由 src_rect 定义)绘制到窗口内容位图(self.contents)上的指定位置(由 x 和 y 坐标定义)
  638. # x - cw / 2 和 y - ch 是目标位置的坐标,它们确保角色图像居中绘制在指定的 x 和 y 坐标上。
  639.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect) # 执行实际的绘制操作
  640.   end
  641.   #--------------------------------------------------------------------------
  642.   # * 绘制角色行走图 - 朝下-动作1
  643.   #--------------------------------------------------------------------------  
  644.   def draw_character_turnD(character_name, character_index, x, y)
  645.     return if character_name == nil
  646.     bitmap = Cache.character(character_name)
  647.     sign = character_name[/^[\!\$]./]
  648.     if sign != nil
  649.       cw = bitmap.width / 12
  650.       ch = bitmap.height / 8
  651.     end
  652.     n = character_index
  653.     src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
  654.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  655.   end   
  656.   #--------------------------------------------------------------------------
  657.   # * 绘制角色行走图 - 朝下-动作2
  658.   #--------------------------------------------------------------------------  
  659.   def draw_character_turnD2(character_name, character_index, x, y)
  660.     return if character_name == nil
  661.     bitmap = Cache.character(character_name)
  662.     sign = character_name[/^[\!\$]./]
  663.     if sign != nil
  664.       cw = bitmap.width / 12
  665.       ch = bitmap.height / 8
  666.     end
  667.     n = character_index
  668.     src_rect = Rect.new((n%4*3+2)*cw, (n/4*4)*ch, cw, ch)
  669.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  670.   end   
  671.   #--------------------------------------------------------------------------
  672.   # * 绘制角色行走图 - 朝上-动作1
  673.   #--------------------------------------------------------------------------  
  674.   def draw_character_turnU(character_name, character_index, x, y)
  675.     return if character_name == nil
  676.     bitmap = Cache.character(character_name)
  677.     sign = character_name[/^[\!\$]./]
  678.     if sign != nil
  679.       cw = bitmap.width / 12
  680.       ch = bitmap.height / 8
  681.     end
  682.     n = character_index
  683.     src_rect = Rect.new((n%4*3+1)*cw, (n/4*4+3)*ch, cw, ch)
  684.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  685.   end
  686.   #--------------------------------------------------------------------------
  687.   # * 绘制角色行走图 - 朝上-动作2
  688.   #--------------------------------------------------------------------------  
  689.   def draw_character_turnU2(character_name, character_index, x, y)
  690.     return if character_name == nil
  691.     bitmap = Cache.character(character_name)
  692.     sign = character_name[/^[\!\$]./]
  693.     if sign != nil
  694.       cw = bitmap.width / 12
  695.       ch = bitmap.height / 8
  696.     end
  697.     n = character_index
  698.     src_rect = Rect.new((n%4*3+2)*cw, (n/4*4+3)*ch, cw, ch)
  699.     self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  700.   end
  701. end



RUBY 代码复制
  1. #==============================================================================
  2. #  [RMVX] 《勇者斗恶龙》风格可定制菜单系统 Version 1.20
  3. #------------------------------------------------------------------------------
  4. =begin
  5.  
  6.   by Ekras
  7.  
  8.   released on 04/07/2008
  9.  
  10.   感谢 Woratana [[email protected]] 提供的 LiteMenu,本脚本在此基础之上构建。
  11.  
  12.   感谢 "Woratana", "kmhp", "Trihan", 和 "modern algebra"(个人)在论坛上的帮助 :)
  13.  
  14. 更新至版本 1.2
  15.  
  16. - 脚本名称从 "Dragon Quest Style Status Indicator" 改为 "Dragon Quest Style Customizable Menu System"
  17.  
  18. - 编码了DQ风格的状态下屏幕
  19.  
  20. - 主菜单现在可以轻松配置(更改菜单项!)
  21.  
  22. - 状态下屏幕上的 "Refill Command" 目前不工作(待定)
  23.  
  24. - 不知何故,1.1 版本中没有包含空白行,但它肯定在 1.2 版本中
  25.  
  26. - 向小框中添加了显示当前经验值、升级所需经验和职业的功能
  27.  
  28. - 新的错误消息更具描述性,并出现在打印命令中,而不是游戏中。(你将得到一个弹出窗口)
  29.  
  30. - 玩家能够在DQ风格的状态下屏幕上退出菜单屏幕
  31.  
  32. - 能够独立更改状态下菜单的字体(部分实现)
  33.  
  34. 1.3 版本即将推出
  35.  
  36. - 大量优化 - 脚本将更快、更智能、更小
  37.  
  38. - 在小框中显示精灵(代码已完成,但仍然有很多bug)
  39.  
  40. - 使用一个大的“超级”框代替小框的能力
  41.  
  42. - DQ风格的装备屏幕 + 在DQ风格的状态下装备框
  43.  
  44. - 在DQ风格的状态下屏幕上的 "See All" 下显示额外信息(装备)
  45.  
  46. - 更多字体定制
  47.  
  48. - 更多......
  49.  
  50. =end
  51. #==============================================================================
  52. module DQ_Menu_Setup
  53. #  在此处配置主菜单
  54. #  脚本的这一部分允许您快速更改主菜单的显示。
  55. #  您可以设置行数和列数,以及显示的项目
  56.  
  57.   NUM_OF_ITEMS = 6 #设置菜单上的项目数量 (1-12)
  58.   NUM_ROWS = 3 # 主菜单中的行数
  59.   NUM_COL = 2  # 主菜单中的列数
  60.  
  61.   #在此处配置显示在主菜单上的项目。类型如下:
  62.  
  63.   #1-空白,以备将来使用
  64.   #2-空白,以备将来使用
  65.   #3-调用DQ状态屏幕
  66.   #4-调用DQ设备屏幕(在此版本中不使用)
  67.   #5-内置保存菜单
  68.   #6-内置游戏结束菜单
  69.   #7-内置项目菜单
  70.   #8-内置状态菜单
  71.   #9-内置技能菜单
  72.   #10-内置设备菜单
  73.  
  74.   # 菜单上显示什么
  75.   ITEM_1_TYPE = 7        
  76.   ITEM_1_NAME = "道具"         
  77.  
  78.   ITEM_2_TYPE = 9
  79.   ITEM_2_NAME = "特技"   
  80.  
  81.   ITEM_3_TYPE = 10
  82.   ITEM_3_NAME = "装备"  
  83.  
  84.   ITEM_4_TYPE = 3
  85.   ITEM_4_NAME = "强度"   
  86.  
  87.   ITEM_5_TYPE = 5
  88.   ITEM_5_NAME = "储存"   
  89.  
  90.   ITEM_6_TYPE = 6
  91.   ITEM_6_NAME = "其他"   
  92.  
  93.   ITEM_7_TYPE = 3
  94.   ITEM_7_NAME = "物品 7"   
  95.  
  96.   ITEM_8_TYPE = 3
  97.   ITEM_8_NAME = "物品 8"   
  98.  
  99.   ITEM_9_TYPE = 3
  100.   ITEM_9_NAME = "物品 9"   
  101.  
  102.   ITEM_10_TYPE = 3
  103.   ITEM_10_NAME = "物品 10"   
  104.  
  105.   ITEM_11_TYPE = 3
  106.   ITEM_11_NAME = "物品 11"   
  107.  
  108.   ITEM_12_TYPE = 3
  109.   ITEM_12_NAME = "物品 12"   
  110. end
  111.  
  112. module DQ_Status_Setup
  113. #此模块定义了DQ风格状态屏幕。如果你不使用它,你可以放心地忽略这一部分。
  114.  
  115. #在此处配置状态菜单的“查看统计信息”部分
  116.  
  117. #在此处配置右侧窗口, 每一行都是一行文本和统计值。对于类型,请使用以下内容:
  118.  
  119. # 1-攻击,2-敏捷,3-精神 4-职业,5-防御,6-HP,7-MP,8-MaxHP,9-MaxMP,
  120. # 10-经验,11-经验等级, 12-姓名, 13-等级
  121.  
  122. # 设置状态菜单中使用的字体
  123. STATUS_FONT = "仿宋" # 区分大小写 - 可以命名任何 TrueType 字体。
  124.   # 关于字体的注意事项:玩家必须安装字体才能显示。
  125.   # 字体更改目前只影响非可选择菜单。
  126.  
  127.  
  128. # 配置右边角色详细信息大窗口 (强度》个人详情》选择角色后显示的大窗口)  
  129. # 设置状态和其值之间的分隔符
  130. SEP = ":" # 用于分隔状态和其值的字符
  131.  
  132. # 设置要显示的文本以及是否显示
  133. LINE_1_STRING = "" # 设置第八行显示的文本
  134. LINE_1_ONOFF = false # 设置是否显示这行文本
  135. LINE_1_TYPE = 11 # 类型代码见上文
  136.  
  137. LINE_2_STRING = "角色" # 设置第九行显示的文本
  138. LINE_2_ONOFF = true # 设置是否显示这行文本
  139. LINE_2_TYPE = 12 # 类型代码见上文
  140.  
  141. LINE_3_STRING = "职业" # 设置第十行显示的文本
  142. LINE_3_ONOFF = true # 设置是否显示这行文本
  143. LINE_3_TYPE = 4 # 类型代码见上文
  144.  
  145. LINE_4_STRING = "最大HP" # 设置第一行显示的文本
  146. LINE_4_ONOFF = true # 设置是否显示这行文本
  147. LINE_4_TYPE = 8 # 类型代码见上文
  148.  
  149. LINE_5_STRING = "最大MP" # 设置第二行显示的文本
  150. LINE_5_ONOFF = true # 设置是否显示这行文本
  151. LINE_5_TYPE = 9 # 类型代码见上文
  152.  
  153. LINE_6_STRING = "力量" # 设置第三行显示的文本
  154. LINE_6_ONOFF = true # 设置是否显示这行文本
  155. LINE_6_TYPE = 1 # 类型代码见上文
  156.  
  157. LINE_7_STRING = "物防" # 设置第四行显示的文本
  158. LINE_7_ONOFF = true # 设置是否显示这行文本
  159. LINE_7_TYPE = 5 # 类型代码见上文
  160.  
  161. LINE_8_STRING = "智慧" # 设置第五行显示的文本
  162. LINE_8_ONOFF = true # 设置是否显示这行文本
  163. LINE_8_TYPE = 3 # 类型代码见上文
  164.  
  165. LINE_9_STRING = "敏捷" # 设置第六行显示的文本
  166. LINE_9_ONOFF = true # 设置是否显示这行文本
  167. LINE_9_TYPE = 2 # 类型代码见上文
  168.  
  169. LINE_10_STRING = "" # 设置第七行显示的文本
  170. LINE_10_ONOFF = false # 设置是否显示这行文本
  171. LINE_10_TYPE = 10 # 类型代码见上文
  172.  
  173. LINE_11_STRING = "当前经验" # 设置第八行显示的文本
  174. LINE_11_ONOFF = true # 设置是否显示这行文本
  175. LINE_11_TYPE = 10 # 类型代码见上文
  176.  
  177. LINE_12_STRING = "提升所需" # 设置第八行显示的文本
  178. LINE_12_ONOFF = true # 设置是否显示这行文本
  179. LINE_12_TYPE = 11 # 类型代码见上文
  180.  
  181.  
  182.  
  183. # 配置左边角色信息预览小窗口 (强度》个人详情》选择角色后显示的小窗口)
  184. UL_SEP = '' # 设置分隔符
  185. UL_NAME_ONOFF = false # 设置是否显示角色名
  186. UL_NAME_DIV = false # 设置角色名与其他信息之间是否显示分隔符
  187.  
  188. UL_LINE_1_ONOFF = false # 设置是否显示第一行
  189. UL_LINE_1_STRING = ""
  190. UL_LINE_1_TYPE = 4 # 类型代码见上文
  191.  
  192. UL_LINE_2_ONOFF = false # 设置是否显示第二行
  193. UL_LINE_2_STRING = "Lv"
  194. UL_LINE_2_TYPE = 13 # 类型代码见上文
  195.  
  196. UL_LINE_3_ONOFF = false # 设置是否显示第三行
  197. UL_LINE_3_STRING = "HP"
  198. UL_LINE_3_TYPE = 6 # 类型代码见上文
  199.  
  200. UL_LINE_4_ONOFF = false # 设置是否显示第四行
  201. UL_LINE_4_STRING = "MP"
  202. UL_LINE_4_TYPE = 7 # 类型代码见上文
  203.  
  204. UL_LINE_5_ONOFF = false # 设置是否显示第五行
  205. UL_LINE_5_STRING = ""
  206. UL_LINE_5_TYPE = 0 # 类型代码见上文
  207.  
  208. end
  209. # 状态菜单配置结束
  210.  
  211. module Wor_Litemenu
  212.  
  213.   # Litemenu 设置
  214.   MENU_WINDOW_Y = 175  # 主菜单 窗口的Y轴 (X轴 需要搜索“MENU_WINDOW_X”)
  215.   CHARA_WINDOW_Y = 80  
  216.   CHARA_WINDOW_WIDTH = 150
  217.   SHOW_LV = false
  218.   GOLD_TEXT_X = 0  # “金币”的坐标
  219.   VOCAB_GOLD = "钱"
  220.   SHOW_LOCATION_WINDOW = true
  221.   VOCAB_LOCATION = ""
  222.   LOCATION_WINDOW_Y = -10  # 地图名称、金币显示 窗口的Y轴
  223.   LOCATION_TEXT_X = 0   # 地图名称的坐标
  224.   GOLD_TEXT_X = 0   # "G"的坐标
  225. end
  226.  
  227. ###################### 不要碰这个部分
  228. class Scene_Menu < Scene_Base
  229.  
  230.   def initialize(menu_index = 0)
  231.     @menu_index = menu_index
  232.     @LASTX = 0
  233.     @TEMPX = 0
  234.     @TEMPY = 0
  235.     @dqwhotype = 'null'
  236.     @actorarray = []
  237. ##################### 恢复编辑
  238.  
  239. # MINI-BOX 设置在这里
  240.  
  241. # 这些框有时候有点棘手 - 调整一个可能会影响其他框
  242. # 你可以将它移动到任何地方,可能只是需要一段时间来找到正确的数字组合。
  243.  
  244. # 主设置 (界面最下方角色信息小窗口)
  245.     @BOX_ONOFF = true # 打开小框为 true,关闭为 false
  246.     @NS_LOCATION = 130 # 将小框向左或向右移动
  247.     @NS_GAP = 270 # 调整小框之间的距离
  248.     @BOX_W = 140 # 调整小框的宽度
  249.     @BOX_H = 140 # 调整小框的高度
  250.     @BOX_Y = 267 # 调整小框的 Y 坐标
  251.     @BOX_LEFT_RIGHT = 2 # 设置为 1 从小框向右展开,设置为 2 向左展开
  252.  
  253. # 名字设置
  254.     @NAME_ONOFF = true # 打开为 true,关闭为 false
  255.     @N_X = 0 # 设置角色名字的 X 坐标
  256.     @N_Y = 0 # 设置角色名字的 Y 坐标
  257.  
  258. # 设置每个角色小框中的文本行。默认支持一行名字和最多三行其他文本。(第四行已编码但禁用)
  259. # 调整这些设置会影响所有角色的小框。
  260. # 我在下面提供了如何添加更多行以及如何将新状态添加到列表中的说明。
  261. # 第一行设置
  262.     @LINEONE_ONOFF = true # 打开为 true,关闭为 false
  263.     @L1_Y = 20 # 设置文本的 Y 坐标
  264.     @L1_X = 0 # 设置状态标题的 X 坐标
  265.     @L1_X2 = 40 # 设置状态与标题的距离
  266.     @L1_HEADER = 'HP:' # 设置状态的文本标题
  267.     @L1_STAT = 1 # 参见下面的统计指南
  268.  
  269. # 第二行设置
  270.     @LINETWO_ONOFF = true # 打开为 true,关闭为 false
  271.     @L2_Y = 40 # 设置文本的 Y 坐标
  272.     @L2_X = 0 # 设置状态标题的 X 坐标
  273.     @L2_X2 = 40 # 设置状态与标题的距离
  274.     @L2_HEADER = 'MP:' # 设置状态的文本标题
  275.     @L2_STAT = 2 # 参见下面的统计指南
  276.  
  277. # 第三行设置
  278.     @LINETHREE_ONOFF = true # 打开为 true,关闭为 false
  279.     @L3_Y = 60 # 设置文本的 Y 坐标
  280.     @L3_X = 0 # 设置状态标题的 X 坐标
  281.     @L3_X2 = 40 # 设置状态与标题的距离
  282.     @L3_HEADER = 'LV:' # 设置状态的文本标题
  283.     @L3_STAT = 3 # 参见下面的统计指南
  284.  
  285. # 第四行设置
  286.     @LINEFOUR_ONOFF = true # 打开为 true,关闭为 false
  287.     @L4_Y = 80 # 设置文本的 Y 坐标
  288.     @L4_X = 0 # 设置状态标题的 X 坐标
  289.     @L4_X2 = 40 # 设置状态与标题的距离
  290.     @L4_HEADER = '' # 设置状态的文本标题
  291.     @L4_STAT = 4 # 参见下面的统计指南
  292.  
  293.     # 统计指南
  294.  
  295. # 这是当前实现的小框中显示的状态列表
  296. # 要使用,在想要显示状态的行的 STAT 行输入它们的项目编号。如果你想显示其他内容,应该不久就能显示它
  297.  
  298. #
  299. # 1 : 生命值
  300. # 2 : 魔法值
  301. # 3 : 等级
  302. # 4 : 金币 - 只出现在玩家1的框中!
  303. # 5 : 经验值
  304. # 6 : 升级所需经验值
  305. # 7 : 职业
  306. #
  307.  
  308. # 高级设置
  309. #      - 添加新行
  310. # 所以你想要在框中添加新的状态是吗?以下是如何操作的。首先,改变总行数以显示的行数。
  311.  
  312.     @LCOUNT = 7 # 在这里设置要显示的项目数量
  313. # 现在要添加新行,去每个窗口框,复制/粘贴现有的一行,并修改它以显示你的新状态。应该不会太难。
  314. # 不要忘记更改错误代码以反映新的行号
  315. # 完成后,在上面复制/粘贴一行设置,并更改新行上的变量以反映新行。
  316.  
  317. #      - 添加新状态以显示
  318. # 要将新状态添加到菜单中,首先在上面的统计指南中添加它
  319. # 一旦你有了编号,去每个菜单框下面复制/粘贴一个状态项目
  320. # 将 if @L1_STAT == X 改为新状态的编号
  321. # 现在在每个框中添加一个事件来获取状态信息
  322. # 最后编辑新项目的状态部分列表,
  323.  
  324. #
  325. # 将新状态发送给作者
  326. #
  327. # 如果你觉得这个脚本的下一个版本应该包含其他状态
  328. # 请通过 strager at comcast dot net 发邮件给我,并在主题行写上 "MINI-BOX STAT"。
  329. # 不使用这个主题行的邮件将不会被阅读(我的电子邮件只接受预先批准的主题行)
  330. #
  331. # 在邮件中将状态编号改为 #
  332. # 只发送一个状态框的代码 - 我足够聪明地在其他框中复制它 :)
  333. # 请不要通过邮件发送其他请求(使用论坛提出脚本请求)
  334. #
  335. end
  336.  
  337. def start
  338. blah = 0;   
  339.     super
  340.     psize = ($game_party.members.size)
  341.     create_menu_background
  342.     create_command_window
  343.     create_dqs_window
  344.     @dqs_window.visible = false
  345.     create_dqwho_window
  346.     create_DQStatus_ATTACK_window
  347.     create_DQStatus_HPMP_window
  348.     for actor in $game_party.members
  349.     @actorarray[blah] = actor
  350.      blah = blah + 1;
  351.     end
  352.  
  353.     lite_create_location_window if Wor_Litemenu::SHOW_LOCATION_WINDOW == true
  354.     lite_create_actor_window
  355.  
  356. if @BOX_ONOFF == true
  357.  
  358.   if @BOX_LEFT_RIGHT == 1  
  359.     for actor in $game_party.members
  360.  
  361.  
  362.       if psize == 4
  363.         @LASTX = ((@NS_GAP * 1) - @NS_LOCATION)
  364.         create_newstat_windowfour (psize)
  365.       elsif psize == 3
  366.         @LASTX = ((@NS_GAP * 2) - @NS_LOCATION)
  367.         create_newstat_windowthree (psize)
  368.       elsif psize == 2
  369.         @LASTX = ((@NS_GAP * 3) - @NS_LOCATION)
  370.         create_newstat_windowtwo (psize)
  371.       elsif psize == 1
  372.         @LASTX = ((@NS_GAP * 4) - @NS_LOCATION)
  373.         create_newstat_window (psize)
  374.       end
  375.       psize = (psize - 1)
  376.     end
  377.   end
  378.  
  379. if @BOX_LEFT_RIGHT == 2  
  380.   for actor in $game_party.members
  381.       if psize == 4
  382.         @LASTX = ((@NS_GAP * 4) - @NS_LOCATION)
  383.         create_newstat_windowfour (psize)
  384.       elsif psize == 3
  385.         @LASTX = ((@NS_GAP * 3) - @NS_LOCATION)
  386.         create_newstat_windowthree (psize)
  387.       elsif psize == 2
  388.         @LASTX = ((@NS_GAP * 2) - @NS_LOCATION)
  389.         create_newstat_windowtwo (psize)
  390.       elsif psize == 1
  391.         @LASTX = ((@NS_GAP * 1) - @NS_LOCATION)
  392.         create_newstat_window (psize)
  393.       end
  394.       psize = (psize - 1)
  395.     end
  396.   end
  397.   end
  398. end
  399.  
  400. #创建角色窗口(从 Litemenu 菜单)
  401.  
  402. def lite_create_actor_window
  403.         member = []
  404.         @item_max = $game_party.members.size
  405.         for actor in $game_party.members
  406.          member.push ((actor.name) + " Lv." + (actor.level.to_s)) if Wor_Litemenu::SHOW_LV == true
  407.          member.push (actor.name) if Wor_Litemenu::SHOW_LV == false
  408.         end
  409.         @status_window = Window_Command.new(Wor_Litemenu::CHARA_WINDOW_WIDTH, member)
  410.         @status_window.index = @menu_index
  411.         @status_window.x = (200 / 2) - (@status_window.width / 2)
  412.         @status_window.y = Wor_Litemenu::CHARA_WINDOW_Y
  413.         @status_window.visible = false
  414. end
  415.  
  416. #重新实现 litemenu菜单 地图名称
  417.  
  418. def lite_get_map_name
  419.     mapdata = load_data("Data/MapInfos.rvdata")
  420.     map_id = $game_map.map_id
  421.     @map_name = mapdata[map_id].name
  422.   end
  423.  
  424. #重新实现的litemenu菜单 金币
  425.   def lite_draw_currency_value(value, x, y, width)
  426.     cx = @location_window.contents.text_size(Vocab::gold).width
  427.     @location_window.contents.font.color = @location_window.normal_color
  428.     @location_window.contents.draw_text(x+5, y, @location_window.width+cx, 24, value, 0)
  429.     @location_window.contents.font.color = @location_window.system_color
  430.     @location_window.contents.draw_text(x+(($game_party.gold).to_s.size * 8)+10, y, @location_window.width, 24, Vocab::gold, 0)
  431.   end
  432.  
  433. #重新实现的地图位置窗口
  434. def lite_create_location_window
  435.     width = 140
  436.     height = 65
  437.     x = (138 /2) - (width/2)   # 地图位置/金币窗口 的 X轴 (LOCATION_WINDOW_X)
  438.     y = Wor_Litemenu::LOCATION_WINDOW_Y
  439.     @location_window = Window_Base.new(x, y, width, height)
  440.     @location_window.create_contents
  441.     lite_get_map_name
  442.     @location_window.contents.font.color = @location_window.system_color
  443.     @location_window.contents.draw_text(0, 17, 80, 20, Wor_Litemenu::VOCAB_GOLD)
  444.     @location_window.contents.font.color = @location_window.normal_color
  445.     lite_draw_currency_value($game_party.gold, 40, 16, Wor_Litemenu::GOLD_TEXT_X)
  446.     @location_window.contents.font.color = @location_window.system_color
  447.     @location_window.contents.draw_text(0, 4, 100, 15, Wor_Litemenu::VOCAB_LOCATION)
  448.     @location_window.contents.font.color = @location_window.normal_color
  449.     @location_window.contents.draw_text(Wor_Litemenu::LOCATION_TEXT_X, 4, 100, 15, @map_name)
  450.   end  
  451. #--------------------------------------------------------------------------
  452. # * Actor Selection
  453. #--------------------------------------------------------------------------  
  454. #~   def start_actor_selection
  455. #~     @command_window.active = false
  456. #~     @status_window.visible = true
  457. #~     @status_window.active = true
  458. #~     @status_window.index = 0
  459. #~   end
  460.  
  461. #~   def end_actor_selection
  462. #~     @command_window.active = true
  463. #~     @status_window.visible = false
  464. #~     @status_window.active = false
  465. #~     @status_window.index = -1  
  466. #~   end  
  467.  
  468.  
  469. # Party member 1's Box
  470. def create_newstat_window (ac)
  471.  
  472.     member = []
  473.     hitpoints = []
  474.     magpoints = []
  475.     lev = []
  476.     cclass = []
  477.     cexp = []
  478.     cexptolev = []
  479.     @item_max = $game_party.members.size
  480.     for actor in $game_party.members
  481.     member.push (actor.name)
  482.     hitpoints.push (actor.hp)
  483.     magpoints.push (actor.mp)
  484.     lev.push (actor.level.to_s)
  485.     cclass.push (actor.class.name)
  486.     cexp.push (actor.exp)
  487.     cexptolev.push (actor.next_rest_exp_s)
  488.     end  
  489.  
  490.     width = @BOX_W
  491.     height = @BOX_H
  492.     x = ((@LASTX) /2) - (width/2)
  493.     y = (@BOX_Y + 10)
  494.     @newstat_window = Window_Base.new(x, y, width, height)
  495.  
  496.  
  497.     @newstat_window.create_contents
  498. #Name Line
  499.     if @NAME_ONOFF == true
  500.     @newstat_window.contents.font.color = @newstat_window.normal_color  
  501.     @newstat_window.contents.draw_text(@N_X, @N_Y, 300, 20, member[(ac - 1)])
  502.     end
  503.  
  504.     #Line One
  505.  
  506.     #Set Color
  507.     @newstat_window.contents.font.color = @newstat_window.normal_color
  508.  
  509.     if @LINEONE_ONOFF == true
  510.       @newstat_window.contents.draw_text( @L1_X, @L1_Y, 300, 20,@L1_HEADER) if (@L1_STAT <= @LCOUNT)
  511.       if @L1_STAT < 0
  512.         p 'ERROR: @L1_STAT < 0 for player 1. Please set to a valid value.'
  513.       end
  514.       if @L1_STAT == 1
  515.         @newstat_window.contents.draw_text( (@L1_X + @L1_X2) , @L1_Y, 300, 20,hitpoints[(ac - 1)])
  516.       end
  517.       if @L1_STAT == 2
  518.         @newstat_window.contents.draw_text( (@L1_X + @L1_X2) , @L1_Y, 300, 20,magpoints[(ac - 1)])
  519.       end
  520.       if @L1_STAT == 3
  521.         @newstat_window.contents.draw_text( (@L1_X + @L1_X2) , @L1_Y, 300, 20,lev[(ac - 1)])
  522.       end
  523.       if @L1_STAT == 4
  524. #       @newstat_window.contents.draw_text( (@L1_X+ @L2_X2), @L1_Y, 300, 20,$game_party.gold)
  525.         @newstat_window.draw_actor_state($game_party.members[0], @L1_X, @L1_Y, 120)
  526.      end
  527.       if @L1_STAT == 5
  528.        @newstat_window.contents.draw_text( (@L1_X+ @L2_X2), @L1_Y, 300, 20,cexp[(ac-1)])
  529.      end
  530.       if @L1_STAT == 6
  531.        @newstat_window.contents.draw_text( (@L1_X+ @L2_X2), @L1_Y, 300, 20,cexptolev[(ac-1)])
  532.      end
  533.       if @L1_STAT == 7
  534.        @newstat_window.contents.draw_text( (@L1_X+ @L2_X2), @L1_Y, 300, 20,cclass[(ac-1)])
  535.      end
  536.  
  537.       if @L1_STAT > @LCOUNT
  538.         p 'L1_STAT > LCOUNT for (Player 1) - Please check your LCOUNT #.'
  539.       end
  540.     end
  541.  
  542. #Line Two
  543.  
  544.     #Set Color
  545.     @newstat_window.contents.font.color = @newstat_window.normal_color
  546.  
  547.     if @LINETWO_ONOFF == true
  548.       @newstat_window.contents.draw_text( @L2_X, @L2_Y, 300, 20,@L2_HEADER) if (@L2_STAT <= @LCOUNT)
  549.       if @L2_STAT < 0
  550.         p 'ERROR: @L2_STAT < 0 for player 1. Please set to a valid value.'
  551.       end
  552.       case @L2_STAT
  553.       when 1
  554.         @newstat_window.contents.draw_text( (@L2_X + @L2_X2) , @L2_Y, 300, 20,hitpoints[(ac - 1)])
  555.       when 2
  556.         @newstat_window.contents.draw_text( (@L2_X + @L2_X2) , @L2_Y, 300, 20,magpoints[(ac - 1)])
  557.       when 3
  558.         @newstat_window.contents.draw_text( (@L2_X + @L2_X2) , @L2_Y, 300, 20,lev[(ac - 1)])
  559.       when 4
  560. #       @newstat_window.contents.draw_text( (@L2_X + @L2_X2), @L2_Y, 300, 20,$game_party.gold)
  561.         @newstat_window.draw_actor_state($game_party.members[0], @L2_X, @L2_Y, 120)
  562.       end
  563.       if @L2_STAT > @LCOUNT
  564.         p 'L2_STAT > LCOUNT for (Player 1) - Please check your LCOUNT #.'
  565.       end
  566.     end
  567.  
  568. #Line Three
  569.  
  570.     #Set Color
  571.     @newstat_window.contents.font.color = @newstat_window.normal_color
  572.  
  573.   if @LINETHREE_ONOFF == true
  574.       @newstat_window.contents.draw_text( @L3_X, @L3_Y, 300, 20,@L3_HEADER) if (@L3_STAT <= @LCOUNT)
  575.       if @L3_STAT < 0
  576.        p 'ERROR: @L3_STAT < 0 for player 1. Please set to a valid value.'
  577.       end
  578.       if @L3_STAT == 1
  579.         @newstat_window.contents.draw_text( (@L3_X + @L3_X2) , @L3_Y, 300, 20,hitpoints[(ac - 1)])
  580.       end
  581.       if @L3_STAT == 2
  582.         @newstat_window.contents.draw_text( (@L3_X + @L3_X2) , @L3_Y, 300, 20,magpoints[(ac - 1)])
  583.       end
  584.        if @L3_STAT == 3
  585.         @newstat_window.contents.draw_text( (@L3_X + @L3_X2) , @L3_Y, 300, 20,lev[(ac - 1)])
  586.       end
  587.       if @L3_STAT == 4
  588. #       @newstat_window.contents.draw_text( (@L3_X + @L3_X2), @L3_Y, 300, 20,$game_party.gold)
  589.         @newstat_window.draw_actor_state($game_party.members[0], @L3_X, @L3_Y, 120)
  590.       end
  591.       if @L3_STAT > @LCOUNT
  592.         p 'L3_STAT > LCOUNT for (Player 1) - Please check your LCOUNT #.'
  593.       end
  594.  
  595.     end
  596. #Line Four (Off by default)   
  597. if @LINEFOUR_ONOFF == true
  598.       @newstat_window.contents.draw_text( @L4_X, @L4_Y, 300, 20,@L4_HEADER) if (@L4_STAT <= @LCOUNT)
  599.       if @L4_STAT < 0
  600.         p 'ERROR: @L4_STAT < 0 for player 1. Please set to a valid value.'
  601.       end
  602.       if @L4_STAT == 1
  603.         @newstat_window.contents.draw_text( (@L4_X + @L4_X2) , @L4_Y, 300, 20,hitpoints[(ac - 1)])
  604.       end
  605.       if @L4_STAT == 2
  606.         @newstat_window.contents.draw_text( (@L4_X + @L4_X2) , @L4_Y, 300, 20,magpoints[(ac - 1)])
  607.       end
  608.        if @L4_STAT == 3
  609.         @newstat_window.contents.draw_text( (@L4_X + @L4_X2) , @L4_Y, 300, 20,lev[(ac - 1)])
  610.       end
  611.       if @L4_STAT == 4
  612. #       @newstat_window.contents.draw_text( (@L4_X + @L4_X2), @L4_Y, 300, 20,$game_party.gold)
  613.         @newstat_window.draw_actor_state($game_party.members[0], @L4_X, @L4_Y, 120)
  614.       end
  615.       if @L4_STAT > @LCOUNT
  616.         p 'L4_STAT > LCOUNT for (Player 1) - Please check your LCOUNT #.'
  617.       end
  618.       end
  619.     @LASTX = (@LASTX + @NS_LOCATION)
  620.     end  
  621. # Party Member 2's Box
  622.     def create_newstat_windowtwo (ac)
  623.  
  624.     member = []
  625.     hitpoints = []
  626.     magpoints = []
  627.     lev = []
  628.     @item_max = $game_party.members.size
  629.     for actor in $game_party.members
  630.     member.push (actor.name)
  631.     hitpoints.push (actor.hp)
  632.     magpoints.push (actor.mp)
  633.     lev.push (actor.level.to_s)
  634.     end  
  635.  
  636.     width = @BOX_W
  637.     height = @BOX_H
  638.     x = ((@LASTX) /2) - (width/2)
  639.     y = (@BOX_Y + 10)
  640.     @newstat_windowtwo = Window_Base.new(x, y, width, height)
  641.  
  642.     @newstat_windowtwo.create_contents
  643.  
  644.  
  645.     #Name Line
  646.     if @NAME_ONOFF == true
  647.     @newstat_windowtwo.contents.font.color = @newstat_windowtwo.normal_color  
  648.     @newstat_windowtwo.contents.draw_text(@N_X, @N_Y, 300, 20, member[(ac - 1)])
  649.     end
  650.  
  651.     #Line One
  652.  
  653.     #Set Color
  654.     @newstat_windowtwo.contents.font.color = @newstat_windowtwo.normal_color
  655.  
  656.     if @LINEONE_ONOFF == true
  657.       @newstat_windowtwo.contents.draw_text( @L1_X, @L1_Y, 300, 20,@L1_HEADER) if (@L1_STAT <= @LCOUNT) and (@L1_STAT != 4)
  658.       if @L1_STAT < 0
  659.         p 'ERROR: @L1_STAT < 0 for player 2. Please set to a valid value.'
  660.       end
  661.       if @L1_STAT == 1
  662.         @newstat_windowtwo.contents.draw_text( (@L1_X + @L1_X2) , @L1_Y, 300, 20,hitpoints[(ac - 1)])
  663.       end
  664.       if @L1_STAT == 2
  665.         @newstat_windowtwo.contents.draw_text( (@L1_X + @L1_X2) , @L1_Y, 300, 20,magpoints[(ac - 1)])
  666.       end
  667.       if @L1_STAT == 3
  668.         @newstat_windowtwo.contents.draw_text( (@L1_X + @L1_X2) , @L1_Y, 300, 20,lev[(ac - 1)])
  669.       end
  670.       if @L1_STAT > @LCOUNT
  671.          p 'L1_STAT > LCOUNT for (Player 1) - Please check your LCOUNT #.'
  672.       end
  673.     end
  674.  
  675. #Line Two
  676.  
  677.     #Set Color
  678.     @newstat_windowtwo.contents.font.color = @newstat_windowtwo.normal_color
  679.  
  680.     if @LINETWO_ONOFF == true   
  681.       @newstat_windowtwo.contents.draw_text( @L2_X, @L2_Y, 300, 20,@L2_HEADER) if (@L2_STAT <= @LCOUNT) and (@L2_STAT != 4)
  682.       if @L2_STAT < 0
  683.         p 'ERROR: @L2_STAT < 0 for player 2. Please set to a valid value.'
  684.       end
  685.            case @L2_STAT
  686.       when 1
  687.         @newstat_windowtwo.contents.draw_text( (@L2_X + @L2_X2) , @L2_Y, 300, 20,hitpoints[(ac - 1)])
  688.       when 2
  689.         @newstat_windowtwo.contents.draw_text( (@L2_X + @L2_X2) , @L2_Y, 300, 20,magpoints[(ac - 1)])
  690.       when 3
  691.         @newstat_windowtwo.contents.draw_text( (@L2_X + @L2_X2) , @L2_Y, 300, 20,lev[(ac - 1)])
  692.       end
  693.  
  694.       if @L2_STAT > @LCOUNT
  695.          p 'L2_STAT > LCOUNT for (Player 2) - Please check your LCOUNT #.'
  696.       end
  697.     end
  698.  
  699. #Line Three
  700.  
  701.     #Set Color
  702.     @newstat_windowtwo.contents.font.color = @newstat_windowtwo.normal_color
  703.  
  704.     if @LINETHREE_ONOFF == true
  705.       @newstat_windowtwo.contents.draw_text( @L3_X, @L3_Y, 300, 20,@L3_HEADER) if (@L3_STAT <= @LCOUNT) and (@L3_STAT != 4)
  706.       if @L3_STAT < 0
  707.         p 'ERROR: @L3_STAT < 0 for player 2. Please set to a valid value.'
  708.       end
  709.       if @L3_STAT == 1
  710.         @newstat_windowtwo.contents.draw_text( (@L3_X + @L3_X2) , @L3_Y, 300, 20,hitpoints[(ac - 1)])
  711.       end
  712.       if @L3_STAT == 2
  713.         @newstat_windowtwo.contents.draw_text( (@L3_X + @L3_X2) , @L3_Y, 300, 20,magpoints[(ac - 1)])
  714.       end
  715.       if @L3_STAT == 3
  716.         @newstat_windowtwo.contents.draw_text( (@L3_X + @L3_X2) , @L3_Y, 300, 20,lev[(ac - 1)])
  717.       end
  718.  
  719.       if @L3_STAT > @LCOUNT
  720.          p 'L3_STAT > LCOUNT for (Player 2) - Please check your LCOUNT #.'
  721.       end
  722.     end  
  723.  
  724. #Line Four (Off by default)   
  725. if @LINEFOUR_ONOFF == true
  726.       @newstat_windowtwo.contents.draw_text( @L4_X, @L4_Y, 300, 20,@L4_HEADER) if (@L4_STAT <= @LCOUNT)
  727.  
  728.  
  729.       if @L4_STAT < 0
  730.         p 'ERROR: @L4_STAT < 0 for player 2. Please set to a valid value.'
  731.       end
  732.       if @L4_STAT == 1
  733.         @newstat_windowtwo.contents.draw_text( (@L4_X + @L4_X2) , @L4_Y, 300, 20,hitpoints[(ac - 1)])
  734.       end
  735.       if @L4_STAT == 2
  736.         @newstat_windowtwo.contents.draw_text( (@L4_X + @L4_X2) , @L4_Y, 300, 20,magpoints[(ac - 1)])
  737.       end
  738.        if @L4_STAT == 3
  739.         @newstat_windowtwo.contents.draw_text( (@L4_X + @L4_X2) , @L4_Y, 300, 20,lev[(ac - 1)])
  740.       end
  741.       if @L4_STAT == 4
  742. #       @newstat_windowtwo.contents.draw_text( (@L4_X + @L4_X2), @L4_Y, 300, 20,$game_party.gold)
  743.         @newstat_windowtwo.draw_actor_state($game_party.members[1], @L4_X , @L4_Y, 120)
  744.       end
  745.  
  746.       if @L4_STAT > @LCOUNT
  747.          p 'L4_STAT > LCOUNT for (Player 2) - Please check your LCOUNT #.'
  748.       end
  749.       end
  750.  
  751.     @LASTX = (@LASTX + @NS_LOCATION)
  752.     end
  753.  
  754.  
  755. # Party member 3's Box
  756.     def create_newstat_windowthree (ac)
  757.  
  758.     member = []
  759.     hitpoints = []
  760.     magpoints = []
  761.     lev = []
  762.     @item_max = $game_party.members.size
  763.     for actor in $game_party.members
  764.     member.push (actor.name)
  765.     hitpoints.push (actor.hp)
  766.     magpoints.push (actor.mp)
  767.     lev.push (actor.level.to_s)
  768.     end  
  769.  
  770.     width = @BOX_W
  771.     height = @BOX_H
  772.     x = ((@LASTX) /2) - (width/2)
  773.     y = (@BOX_Y + 10)
  774.     @newstat_windowthree = Window_Base.new(x, y, width, height)
  775.  
  776.  
  777.     @newstat_windowthree.create_contents
  778.  
  779.     #Name Line
  780.     if @NAME_ONOFF == true
  781.     @newstat_windowthree.contents.font.color = @newstat_windowthree.normal_color  
  782.     @newstat_windowthree.contents.draw_text(@N_X, @N_Y, 300, 20, member[(ac - 1)])
  783.     end
  784.  
  785. #Line One
  786.  
  787.     #Set Color
  788.     @newstat_windowthree.contents.font.color = @newstat_windowthree.normal_color
  789.  
  790.     if @LINEONE_ONOFF == true
  791.       @newstat_windowthree.contents.draw_text( @L1_X, @L1_Y, 300, 20,@L1_HEADER) if (@L1_STAT <= @LCOUNT) and (@L1_STAT != 4)
  792.       if @L1_STAT < 0
  793.         p 'ERROR: @L1_STAT < 0 for player 3. Please set to a valid value.'
  794.       end
  795.       if @L1_STAT == 1
  796.         @newstat_windowthree.contents.draw_text( (@L1_X + @L1_X2) , @L1_Y, 300, 20,hitpoints[(ac - 1)])
  797.       end
  798.       if @L1_STAT == 2
  799.         @newstat_windowthree.contents.draw_text( (@L1_X + @L1_X2) , @L1_Y, 300, 20,magpoints[(ac - 1)])
  800.       end
  801.       if @L1_STAT == 3
  802.         @newstat_windowthree.contents.draw_text( (@L1_X + @L1_X2) , @L1_Y, 300, 20,lev[(ac - 1)])
  803.       end
  804.       if @L1_STAT > @LCOUNT
  805.          p 'L1_STAT > LCOUNT for (Player 3) - Please check your LCOUNT #.'
  806.       end
  807.     end
  808.  
  809. #Line Two
  810.  
  811.     #Set Color
  812.     @newstat_windowthree.contents.font.color = @newstat_windowthree.normal_color
  813.  
  814.     if @LINETWO_ONOFF == true  
  815.       @newstat_windowthree.contents.draw_text( @L2_X, @L2_Y, 300, 20,@L2_HEADER) if (@L2_STAT <= @LCOUNT) and (@L2_STAT != 4)
  816.       if @L2_STAT < 0
  817.         p 'ERROR: @L2_STAT < 0 for player 3. Please set to a valid value.'
  818.       end
  819.       if @L2_STAT == 1
  820.         @newstat_windowthree.contents.draw_text( (@L2_X + @L2_X2) , @L2_Y, 300, 20,hitpoints[(ac - 1)])
  821.       end
  822.       if @L2_STAT == 2
  823.         @newstat_windowthree.contents.draw_text( (@L2_X + @L2_X2) , @L2_Y, 300, 20,magpoints[(ac - 1)])
  824.       end
  825.       if @L2_STAT == 3
  826.         @newstat_windowthree.contents.draw_text( (@L2_X + @L2_X2) , @L2_Y, 300, 20,lev[(ac - 1)])
  827.       end
  828.       if @L2_STAT > @LCOUNT
  829.          p 'L2_STAT > LCOUNT for (Player 3) - Please check your LCOUNT #.'
  830.       end
  831.     end
  832.  
  833. #Line Three
  834.  
  835.     #Set Color
  836.     @newstat_windowthree.contents.font.color = @newstat_windowthree.normal_color
  837.  
  838.     if @LINETHREE_ONOFF == true
  839.       @newstat_windowthree.contents.draw_text( @L3_X, @L3_Y, 300, 20,@L3_HEADER) if (@L3_STAT <= @LCOUNT) and (@L3_STAT != 4)
  840.       if @L3_STAT < 0
  841.         p 'ERROR: @L3_STAT < 0 for player 3. Please set to a valid value.'
  842.       end
  843.       if @L3_STAT == 1
  844.         @newstat_windowthree.contents.draw_text( (@L3_X + @L3_X2) , @L3_Y, 300, 20,hitpoints[(ac - 1)])
  845.       end
  846.       if @L3_STAT == 2
  847.         @newstat_windowthree.contents.draw_text( (@L3_X + @L3_X2) , @L3_Y, 300, 20,magpoints[(ac - 1)])
  848.       end
  849.       if @L3_STAT == 3
  850.         @newstat_windowthree.contents.draw_text( (@L3_X + @L3_X2) , @L3_Y, 300, 20,lev[(ac - 1)])
  851.       end
  852.       if @L3_STAT > @LCOUNT
  853.          p 'L3_STAT > LCOUNT for (Player 3) - Please check your LCOUNT #.'
  854.       end
  855.     end  
  856.     #Line Four (Off by default)   
  857. if @LINEFOUR_ONOFF == true
  858.       @newstat_windowthree.contents.draw_text( @L4_X, @L4_Y, 300, 20,@L4_HEADER) if (@L4_STAT <= @LCOUNT)
  859.  
  860.  
  861.       if @L4_STAT < 0
  862.         p 'ERROR: @L4_STAT < 0 for player 3. Please set to a valid value.'
  863.       end
  864.       if @L4_STAT == 1
  865.         @newstat_windowthree.contents.draw_text( (@L4_X + @L4_X2) , @L4_Y, 300, 20,hitpoints[(ac - 1)])
  866.       end
  867.       if @L4_STAT == 2
  868.         @newstat_windowthree.contents.draw_text( (@L4_X + @L4_X2) , @L4_Y, 300, 20,magpoints[(ac - 1)])
  869.       end
  870.        if @L4_STAT == 3
  871.         @newstat_windowthree.contents.draw_text( (@L4_X + @L4_X2) , @L4_Y, 300, 20,lev[(ac - 1)])
  872.       end
  873.       if @L4_STAT == 4
  874. #       @newstat_windowthree.contents.draw_text( (@L4_X + @L4_X2), @L4_Y, 300, 20,$game_party.gold)
  875.         @newstat_windowthree.draw_actor_state($game_party.members[2], @L4_X, @L4_Y, 120)
  876.       end
  877.  
  878.       if @L4_STAT > @LCOUNT
  879.          p 'L4_STAT > LCOUNT for (Player 3) - Please check your LCOUNT #.'
  880.       end
  881.       end
  882.  
  883.     @LASTX = (@LASTX + @NS_LOCATION)
  884.     end
  885. #Party Member 4's box
  886.     def create_newstat_windowfour (ac)
  887.  
  888.     member = []
  889.     hitpoints = []
  890.     magpoints = []
  891.     lev = []
  892.     @item_max = $game_party.members.size
  893.     for actor in $game_party.members
  894.     member.push (actor.name)
  895.     hitpoints.push (actor.hp)
  896.     magpoints.push (actor.mp)
  897.     lev.push (actor.level.to_s)
  898.     end  
  899.  
  900.     width = @BOX_W
  901.     height = @BOX_H
  902.     x = ((@LASTX) /2) - (width/2)
  903.     y = (@BOX_Y + 10)
  904.     @newstat_windowfour = Window_Base.new(x, y, width, height)
  905.  
  906.  
  907.     @newstat_windowfour.create_contents
  908.  
  909.         #Name Line
  910.     if @NAME_ONOFF == true
  911.     @newstat_windowfour.contents.font.color = @newstat_windowfour.normal_color  
  912.     @newstat_windowfour.contents.draw_text(@N_X, @N_Y, 300, 20, member[(ac - 1)])
  913.     end
  914.  
  915. #Line One
  916.  
  917.     #Set Color
  918.     @newstat_windowfour.contents.font.color = @newstat_windowfour.normal_color
  919.  
  920.     if @LINEONE_ONOFF == true   
  921.       @newstat_windowfour.contents.draw_text( @L1_X, @L1_Y, 300, 20,@L1_HEADER) if (@L1_STAT <= @LCOUNT) and (@L1_STAT != 4)
  922.       if @L1_STAT < 0
  923.         p 'ERROR: @L1_STAT < 0 for player 4. Please set to a valid value.'
  924.       end
  925.       if @L1_STAT == 1
  926.         @newstat_windowfour.contents.draw_text( (@L1_X + @L1_X2) , @L1_Y, 300, 20,hitpoints[(ac - 1)])
  927.       end
  928.       if @L1_STAT == 2
  929.         @newstat_windowfour.contents.draw_text( (@L1_X + @L1_X2) , @L1_Y, 300, 20,magpoints[(ac - 1)])
  930.       end
  931.       if @L1_STAT == 3
  932.         @newstat_windowfour.contents.draw_text( (@L1_X + @L1_X2) , @L1_Y, 300, 20,lev[(ac - 1)])
  933.       end
  934.       if @L1_STAT > @LCOUNT
  935.         p 'L1_STAT > LCOUNT for (Player 4) - Please check your LCOUNT #.'
  936.       end
  937.     end
  938.  
  939. #Line Two
  940.  
  941.     #Set Color
  942.     @newstat_windowfour.contents.font.color = @newstat_windowfour.normal_color
  943.  
  944.     if @LINETWO_ONOFF == true
  945.       @newstat_windowfour.contents.draw_text( @L2_X, @L2_Y, 300, 20,@L2_HEADER) if (@L2_STAT <= @LCOUNT) and (@L2_STAT != 4)
  946.       if @L2_STAT < 0
  947.         p 'ERROR: @L2_STAT < 0 for player 4. Please set to a valid value.'
  948.       end
  949.       if @L2_STAT == 1
  950.         @newstat_windowfour.contents.draw_text( (@L2_X + @L2_X2) , @L2_Y, 300, 20,hitpoints[(ac - 1)])
  951.       end
  952.       if @L2_STAT == 2
  953.         @newstat_windowfour.contents.draw_text( (@L2_X + @L2_X2) , @L2_Y, 300, 20,magpoints[(ac - 1)])
  954.       end
  955.       if @L2_STAT == 3
  956.         @newstat_windowfour.contents.draw_text( (@L2_X + @L2_X2) , @L2_Y, 300, 20,lev[(ac - 1)])
  957.       end
  958.       if @L2_STAT > @LCOUNT
  959.         p 'L2_STAT > LCOUNT for (Player 4) - Please check your LCOUNT #.'
  960.       end
  961.     end
  962.  
  963. #Line Three
  964.  
  965.     #Set Color
  966.     @newstat_windowfour.contents.font.color = @newstat_windowfour.normal_color
  967.  
  968.     if @LINETHREE_ONOFF == true
  969.       @newstat_windowfour.contents.draw_text( @L3_X, @L3_Y, 300, 20,@L3_HEADER) if (@L3_STAT <= @LCOUNT) and (@L3_STAT != 4)
  970.       if @L3_STAT < 0
  971.         p 'ERROR: @L3_STAT < 0 for player 4. Please set to a valid value.'
  972.       end
  973.       if @L3_STAT == 1
  974.         @newstat_windowfour.contents.draw_text( (@L3_X + @L3_X2) , @L3_Y, 300, 20,hitpoints[(ac - 1)])
  975.       end
  976.       if @L3_STAT == 2
  977.         @newstat_windowfour.contents.draw_text( (@L3_X + @L3_X2) , @L3_Y, 300, 20,magpoints[(ac - 1)])
  978.       end
  979.       if @L3_STAT == 3
  980.         @newstat_windowfour.contents.draw_text( (@L3_X + @L3_X2) , @L3_Y, 300, 20,lev[(ac - 1)])
  981.       end
  982.       if @L3_STAT > @LCOUNT
  983.         p 'L3_STAT > LCOUNT for (Player 4) - Please check your LCOUNT #.'
  984.       end
  985.     end
  986.   #Line Four (Off by default)   
  987. if @LINEFOUR_ONOFF == true
  988.       @newstat_windowfour.contents.draw_text( @L4_X, @L4_Y, 300, 20,@L4_HEADER) if (@L4_STAT <= @LCOUNT)
  989.  
  990.  
  991.       if @L4_STAT < 0
  992.         p 'ERROR: @L4_STAT < 0 for player 4. Please set to a valid value.'
  993.       end
  994.       if @L4_STAT == 1
  995.         @newstat_windowfour.contents.draw_text( (@L4_X + @L4_X2) , @L4_Y, 300, 20,hitpoints[(ac - 1)])
  996.       end
  997.       if @L4_STAT == 2
  998.         @newstat_windowfour.contents.draw_text( (@L4_X + @L4_X2) , @L4_Y, 300, 20,magpoints[(ac - 1)])
  999.       end
  1000.        if @L4_STAT == 3
  1001.         @newstat_windowfour.contents.draw_text( (@L4_X + @L4_X2) , @L4_Y, 300, 20,lev[(ac - 1)])
  1002.       end
  1003.       if @L4_STAT == 4
  1004. #       @newstat_windowfour.contents.draw_text( (@L4_X + @L4_X2), @L4_Y, 300, 20,$game_party.gold)
  1005.         @newstat_windowfour.draw_actor_state($game_party.members[3], @L4_X, @L4_Y, 120)
  1006.       end
  1007.  
  1008.       if @L4_STAT > @LCOUNT
  1009.         p 'L4_STAT > LCOUNT for (Player 4) - Please check your LCOUNT #.'
  1010.       end
  1011.       end      
  1012.     @LASTX = (@LASTX + @NS_LOCATION)
  1013.     end
  1014.  
  1015. # End Character Boxes
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021. def create_command_window
  1022.  
  1023.         s1 = DQ_Menu_Setup::ITEM_1_NAME
  1024.         s2 = DQ_Menu_Setup::ITEM_2_NAME
  1025.         s3 = DQ_Menu_Setup::ITEM_3_NAME
  1026.         s4 = DQ_Menu_Setup::ITEM_4_NAME
  1027.         s5 = DQ_Menu_Setup::ITEM_5_NAME
  1028.         s6 = DQ_Menu_Setup::ITEM_6_NAME
  1029.   s7 = DQ_Menu_Setup::ITEM_7_NAME
  1030.   s8 = DQ_Menu_Setup::ITEM_8_NAME
  1031.   s9 = DQ_Menu_Setup::ITEM_9_NAME
  1032.   s10 = DQ_Menu_Setup::ITEM_10_NAME
  1033.   s11 = DQ_Menu_Setup::ITEM_11_NAME
  1034.   s12 = DQ_Menu_Setup::ITEM_12_NAME
  1035.   if DQ_Menu_Setup::NUM_OF_ITEMS == 0
  1036.   p 'ERROR: Number of items on the main menu is set to 0 or garbage.' while 1 == 1
  1037.     end
  1038.     if DQ_Menu_Setup::NUM_OF_ITEMS == 1  
  1039.   @command_window = Window_Command.new(140, [s1],DQ_Menu_Setup::NUM_COL,DQ_Menu_Setup::NUM_ROWS)
  1040. end
  1041.   if DQ_Menu_Setup::NUM_OF_ITEMS == 2
  1042.   @command_window = Window_Command.new(140, [s1, s2],DQ_Menu_Setup::NUM_COL,DQ_Menu_Setup::NUM_ROWS)
  1043. end
  1044.   if DQ_Menu_Setup::NUM_OF_ITEMS == 3
  1045.   @command_window = Window_Command.new(140, [s1, s2, s3],DQ_Menu_Setup::NUM_COL,DQ_Menu_Setup::NUM_ROWS)
  1046. end
  1047.   if DQ_Menu_Setup::NUM_OF_ITEMS == 4
  1048.   @command_window = Window_Command.new(140, [s1, s2, s3, s4],DQ_Menu_Setup::NUM_COL,DQ_Menu_Setup::NUM_ROWS)
  1049. end
  1050.   if DQ_Menu_Setup::NUM_OF_ITEMS == 5
  1051.   @command_window = Window_Command.new(140, [s1, s2, s3, s4, s5],DQ_Menu_Setup::NUM_COL,DQ_Menu_Setup::NUM_ROWS)
  1052.   end
  1053.  
  1054.   if DQ_Menu_Setup::NUM_OF_ITEMS == 6
  1055.   @command_window = Window_Command.new(140, [s1, s2, s3, s4, s5, s6],DQ_Menu_Setup::NUM_COL,DQ_Menu_Setup::NUM_ROWS)
  1056.   end
  1057.  
  1058.   if DQ_Menu_Setup::NUM_OF_ITEMS == 7
  1059.   @command_window = Window_Command.new(140, [s1, s2, s3, s4, s5, s6, s7],DQ_Menu_Setup::NUM_COL,DQ_Menu_Setup::NUM_ROWS)
  1060.   end
  1061.   if DQ_Menu_Setup::NUM_OF_ITEMS == 8
  1062.   @command_window = Window_Command.new(140, [s1, s2, s3, s4, s5, s6, s7,s8],DQ_Menu_Setup::NUM_COL,DQ_Menu_Setup::NUM_ROWS)
  1063.   end
  1064.   if DQ_Menu_Setup::NUM_OF_ITEMS == 9
  1065.   @command_window = Window_Command.new(140, [s1, s2, s3, s4, s5, s6, s7,s8,s9],DQ_Menu_Setup::NUM_COL,DQ_Menu_Setup::NUM_ROWS)
  1066.   end  
  1067.   if DQ_Menu_Setup::NUM_OF_ITEMS == 10
  1068.   @command_window = Window_Command.new(140, [s1, s2, s3, s4, s5, s6, s7,s8,s9,s10],DQ_Menu_Setup::NUM_COL,DQ_Menu_Setup::NUM_ROWS)
  1069. end
  1070.   if DQ_Menu_Setup::NUM_OF_ITEMS == 11
  1071.   @command_window = Window_Command.new(140, [s1, s2, s3, s4, s5, s6, s7,s8,s9,s10,s11],DQ_Menu_Setup::NUM_COL,DQ_Menu_Setup::NUM_ROWS)
  1072. end
  1073.   if DQ_Menu_Setup::NUM_OF_ITEMS == 12
  1074.   @command_window = Window_Command.new(140, [s1, s2, s3, s4, s5, s6, s7,s8,s9,s10,s11,s12],DQ_Menu_Setup::NUM_COL,DQ_Menu_Setup::NUM_ROWS)
  1075. end
  1076.   if DQ_Menu_Setup::NUM_OF_ITEMS > 12
  1077.   p "出错了: 主菜单上的项目数大于12.", "你需要写更多的行号。" while 1 == 1
  1078.     end
  1079.         @command_window.index = @menu_index
  1080.         @command_window.x = (140 /2) - (@command_window.width/2) # 主菜单 X轴 MENU_WINDOW_X
  1081.         @command_window.y = Wor_Litemenu::MENU_WINDOW_Y
  1082.  
  1083. if $game_party.members.size == 0
  1084. p 'error - 0 party members. Lock the menu here.'
  1085. end
  1086.  
  1087. if $game_system.save_disabled
  1088.           @command_window.draw_item(4, false)
  1089. end
  1090.  
  1091. end
  1092.  
  1093. # Command Selection Re-Write
  1094.  
  1095. def update_command_selection
  1096.  
  1097.     if Input.trigger?(Input::B)
  1098.       Sound.play_cancel
  1099.       $scene = Scene_Map.new
  1100.     elsif Input.trigger?(Input::C)
  1101.       if $game_party.members.size == 0 and @command_window.index < 4 #- 4
  1102.         Sound.play_buzzer
  1103.         return
  1104.       elsif $game_system.save_disabled and @command_window.index == 4 #- 4
  1105.         Sound.play_buzzer
  1106.         return
  1107.       end
  1108.       Sound.play_decision
  1109.  
  1110.  
  1111.       case @command_window.index
  1112.  
  1113.  
  1114.       when 0      # Item 1 on the menu
  1115.  
  1116.         #$scene = DQ_Menu_Setup::ITEM_1_STRING if DQ_Menu_Setup::ITEM_1_TYPE == 1
  1117.         start_DQStatus_selection if DQ_Menu_Setup::ITEM_1_TYPE == 3
  1118.         $scene = Scene_File.new(true, false, false) if DQ_Menu_Setup::ITEM_1_TYPE == 5
  1119.         $scene = Scene_End.new if DQ_Menu_Setup::ITEM_1_TYPE == 6
  1120.         $scene = Scene_Item.new if DQ_Menu_Setup::ITEM_1_TYPE == 7
  1121.         @dqwhotype = 'oldstatus' if DQ_Menu_Setup::ITEM_1_TYPE == 8
  1122.         start_DQWho_selection if DQ_Menu_Setup::ITEM_1_TYPE == 8
  1123.  
  1124.         @dqwhotype = 'oldskill' if DQ_Menu_Setup::ITEM_1_TYPE == 9
  1125.         start_DQWho_selection if DQ_Menu_Setup::ITEM_1_TYPE == 9
  1126.  
  1127.         @dqwhotype = 'oldequip' if DQ_Menu_Setup::ITEM_1_TYPE == 10
  1128.         start_DQWho_selection if DQ_Menu_Setup::ITEM_1_TYPE == 10
  1129.       when 1  
  1130.         # @dqwhotype = 'equip' # left this here as a reminder. Should be placed for
  1131.         #item type for equip menu
  1132.         #start_DQWho_selection
  1133.         start_DQStatus_selection if DQ_Menu_Setup::ITEM_2_TYPE == 3
  1134.         $scene = Scene_File.new(true, false, false) if DQ_Menu_Setup::ITEM_2_TYPE == 5
  1135.         $scene = Scene_End.new if DQ_Menu_Setup::ITEM_2_TYPE == 6
  1136.         $scene = Scene_Item.new if DQ_Menu_Setup::ITEM_2_TYPE == 7
  1137.         @dqwhotype = 'oldstatus' if DQ_Menu_Setup::ITEM_2_TYPE == 8
  1138.         start_DQWho_selection if DQ_Menu_Setup::ITEM_2_TYPE == 8
  1139.  
  1140.         @dqwhotype = 'oldskill' if DQ_Menu_Setup::ITEM_2_TYPE == 9
  1141.         start_DQWho_selection if DQ_Menu_Setup::ITEM_2_TYPE == 9
  1142.  
  1143.         @dqwhotype = 'oldequip' if DQ_Menu_Setup::ITEM_2_TYPE == 10
  1144.         start_DQWho_selection if DQ_Menu_Setup::ITEM_2_TYPE == 10
  1145.       when 2  # Skill, equipment, status
  1146.         start_DQStatus_selection if DQ_Menu_Setup::ITEM_3_TYPE == 3
  1147.         $scene = Scene_File.new(true, false, false) if DQ_Menu_Setup::ITEM_3_TYPE == 5
  1148.         $scene = Scene_End.new if DQ_Menu_Setup::ITEM_3_TYPE == 6
  1149.         $scene = Scene_Item.new if DQ_Menu_Setup::ITEM_3_TYPE == 7
  1150.         @dqwhotype = 'oldstatus' if DQ_Menu_Setup::ITEM_3_TYPE == 8
  1151.         start_DQWho_selection if DQ_Menu_Setup::ITEM_3_TYPE == 8
  1152.  
  1153.         @dqwhotype = 'oldskill' if DQ_Menu_Setup::ITEM_3_TYPE == 9
  1154.         start_DQWho_selection if DQ_Menu_Setup::ITEM_3_TYPE == 9
  1155.  
  1156.         @dqwhotype = 'oldequip' if DQ_Menu_Setup::ITEM_3_TYPE == 10
  1157.         start_DQWho_selection if DQ_Menu_Setup::ITEM_3_TYPE == 10
  1158.  
  1159.       when 3      
  1160.         start_DQStatus_selection if DQ_Menu_Setup::ITEM_4_TYPE == 3
  1161.         $scene = Scene_File.new(true, false, false) if DQ_Menu_Setup::ITEM_4_TYPE == 5
  1162.         $scene = Scene_End.new if DQ_Menu_Setup::ITEM_4_TYPE == 6
  1163.         $scene = Scene_Item.new if DQ_Menu_Setup::ITEM_4_TYPE == 7
  1164.         @dqwhotype = 'oldstatus' if DQ_Menu_Setup::ITEM_4_TYPE == 8
  1165.         start_DQWho_selection if DQ_Menu_Setup::ITEM_4_TYPE == 8
  1166.  
  1167.         @dqwhotype = 'oldskill' if DQ_Menu_Setup::ITEM_4_TYPE == 9
  1168.         start_DQWho_selection if DQ_Menu_Setup::ITEM_4_TYPE == 9
  1169.  
  1170.         @dqwhotype = 'oldequip' if DQ_Menu_Setup::ITEM_4_TYPE == 10
  1171.         start_DQWho_selection if DQ_Menu_Setup::ITEM_4_TYPE == 10
  1172.       when 4
  1173.         start_DQStatus_selection if DQ_Menu_Setup::ITEM_5_TYPE == 3
  1174.         $scene = Scene_File.new(true, false, false) if DQ_Menu_Setup::ITEM_5_TYPE == 5
  1175.         $scene = Scene_End.new if DQ_Menu_Setup::ITEM_5_TYPE == 6
  1176.         $scene = Scene_Item.new if DQ_Menu_Setup::ITEM_5_TYPE == 7
  1177.         @dqwhotype = 'oldstatus' if DQ_Menu_Setup::ITEM_5_TYPE == 8
  1178.         start_DQWho_selection if DQ_Menu_Setup::ITEM_5_TYPE == 8
  1179.  
  1180.         @dqwhotype = 'oldskill' if DQ_Menu_Setup::ITEM_5_TYPE == 9
  1181.         start_DQWho_selection if DQ_Menu_Setup::ITEM_5_TYPE == 9
  1182.  
  1183.         @dqwhotype = 'oldequip' if DQ_Menu_Setup::ITEM_5_TYPE == 10
  1184.         start_DQWho_selection if DQ_Menu_Setup::ITEM_5_TYPE == 10
  1185.       when 5      
  1186.         start_DQStatus_selection if DQ_Menu_Setup::ITEM_6_TYPE == 3
  1187.         $scene = Scene_File.new(true, false, false) if DQ_Menu_Setup::ITEM_6_TYPE == 5
  1188.         $scene = Scene_End.new if DQ_Menu_Setup::ITEM_6_TYPE == 6
  1189.         $scene = Scene_Item.new if DQ_Menu_Setup::ITEM_6_TYPE == 7
  1190.         @dqwhotype = 'oldstatus' if DQ_Menu_Setup::ITEM_6_TYPE == 8
  1191.         start_DQWho_selection if DQ_Menu_Setup::ITEM_6_TYPE == 8
  1192.  
  1193.         @dqwhotype = 'oldskill' if DQ_Menu_Setup::ITEM_6_TYPE == 9
  1194.         start_DQWho_selection if DQ_Menu_Setup::ITEM_6_TYPE == 9
  1195.  
  1196.         @dqwhotype = 'oldequip' if DQ_Menu_Setup::ITEM_6_TYPE == 10
  1197.         start_DQWho_selection if DQ_Menu_Setup::ITEM_6_TYPE == 10
  1198.       when 6
  1199.         start_DQStatus_selection if DQ_Menu_Setup::ITEM_7_TYPE == 3
  1200.         $scene = Scene_File.new(true, false, false) if DQ_Menu_Setup::ITEM_7_TYPE == 5
  1201.         $scene = Scene_End.new if DQ_Menu_Setup::ITEM_7_TYPE == 6
  1202.         $scene = Scene_Item.new if DQ_Menu_Setup::ITEM_7_TYPE == 7
  1203.         @dqwhotype = 'oldstatus' if DQ_Menu_Setup::ITEM_7_TYPE == 8
  1204.         start_DQWho_selection if DQ_Menu_Setup::ITEM_7_TYPE == 8
  1205.  
  1206.         @dqwhotype = 'oldskill' if DQ_Menu_Setup::ITEM_7_TYPE == 9
  1207.         start_DQWho_selection if DQ_Menu_Setup::ITEM_7_TYPE == 9
  1208.  
  1209.         @dqwhotype = 'oldequip' if DQ_Menu_Setup::ITEM_7_TYPE == 10
  1210.         start_DQWho_selection if DQ_Menu_Setup::ITEM_7_TYPE == 10
  1211.       when 7
  1212.         start_DQStatus_selection if DQ_Menu_Setup::ITEM_8_TYPE == 3
  1213.         $scene = Scene_File.new(true, false, false) if DQ_Menu_Setup::ITEM_8_TYPE == 5
  1214.         $scene = Scene_End.new if DQ_Menu_Setup::ITEM_8_TYPE == 6
  1215.         $scene = Scene_Item.new if DQ_Menu_Setup::ITEM_8_TYPE == 7
  1216.         @dqwhotype = 'oldstatus' if DQ_Menu_Setup::ITEM_8_TYPE == 8
  1217.         start_DQWho_selection if DQ_Menu_Setup::ITEM_8_TYPE == 8
  1218.  
  1219.         @dqwhotype = 'oldskill' if DQ_Menu_Setup::ITEM_8_TYPE == 9
  1220.         start_DQWho_selection if DQ_Menu_Setup::ITEM_8_TYPE == 9
  1221.  
  1222.         @dqwhotype = 'oldequip' if DQ_Menu_Setup::ITEM_8_TYPE == 10
  1223.         start_DQWho_selection if DQ_Menu_Setup::ITEM_8_TYPE == 10
  1224.         when 8
  1225.         start_DQStatus_selection if DQ_Menu_Setup::ITEM_9_TYPE == 3
  1226.         $scene = Scene_File.new(true, false, false) if DQ_Menu_Setup::ITEM_9_TYPE == 5
  1227.         $scene = Scene_End.new if DQ_Menu_Setup::ITEM_9_TYPE == 6
  1228.         $scene = Scene_Item.new if DQ_Menu_Setup::ITEM_9_TYPE == 7
  1229.         @dqwhotype = 'oldstatus' if DQ_Menu_Setup::ITEM_9_TYPE == 8
  1230.         start_DQWho_selection if DQ_Menu_Setup::ITEM_9_TYPE == 8
  1231.  
  1232.         @dqwhotype = 'oldskill' if DQ_Menu_Setup::ITEM_9_TYPE == 9
  1233.         start_DQWho_selection if DQ_Menu_Setup::ITEM_9_TYPE == 9
  1234.  
  1235.         @dqwhotype = 'oldequip' if DQ_Menu_Setup::ITEM_9_TYPE == 10
  1236.         start_DQWho_selection if DQ_Menu_Setup::ITEM_9_TYPE == 10
  1237.           when 9
  1238.         start_DQStatus_selection if DQ_Menu_Setup::ITEM_10_TYPE == 3
  1239.         $scene = Scene_File.new(true, false, false) if DQ_Menu_Setup::ITEM_10_TYPE == 5
  1240.         $scene = Scene_End.new if DQ_Menu_Setup::ITEM_10_TYPE == 6
  1241.         $scene = Scene_Item.new if DQ_Menu_Setup::ITEM_10_TYPE == 7
  1242.         @dqwhotype = 'oldstatus' if DQ_Menu_Setup::ITEM_10_TYPE == 8
  1243.         start_DQWho_selection if DQ_Menu_Setup::ITEM_10_TYPE == 8
  1244.  
  1245.         @dqwhotype = 'oldskill' if DQ_Menu_Setup::ITEM_10_TYPE == 9
  1246.         start_DQWho_selection if DQ_Menu_Setup::ITEM_10_TYPE == 9
  1247.  
  1248.         @dqwhotype = 'oldequip' if DQ_Menu_Setup::ITEM_10_TYPE == 10
  1249.         start_DQWho_selection if DQ_Menu_Setup::ITEM_10_TYPE == 10   
  1250.             when 10
  1251.         start_DQStatus_selection if DQ_Menu_Setup::ITEM_11_TYPE == 3
  1252.         $scene = Scene_File.new(true, false, false) if DQ_Menu_Setup::ITEM_11_TYPE == 5
  1253.         $scene = Scene_End.new if DQ_Menu_Setup::ITEM_11_TYPE == 6