Project1

标题: 无盾牌时战斗中“防御”选项无效。 [打印本页]

作者: he11120    时间: 2012-4-14 19:44
标题: 无盾牌时战斗中“防御”选项无效。
求解做法。dsu_plus_rewardpost_czw
作者: hys111111    时间: 2012-4-14 19:59
从Scene_Battle3那里的第137行到when 3那里开始改成如下:
  1. when 2  # 防御
  2.         # 演奏确定 SE
  3.         if $game_actors[@actor_index].armor != nil
  4.           $game_system.se_play($data_system.decision_se)
  5.           # 设置行动
  6.           @active_battler.current_action.kind = 0
  7.           @active_battler.current_action.basic = 1
  8.           # 转向下一位角色的指令输入
  9.           phase3_next_actor
  10.         else
  11.           # 演奏冻结 SE
  12.           $game_system.se_play($data_system.buzzer_se)
  13.         end
  14.       when 3  # 物品
复制代码

作者: 忧雪の伤    时间: 2012-4-14 20:05
本帖最后由 忧雪の伤 于 2012-4-14 20:14 编辑
  1. class Scene_Battle
  2.   alias yukinoshyan_phase3_setup_command_window phase3_setup_command_window
  3.   def phase3_setup_command_window *args
  4.     yukinoshyan_phase3_setup_command_window *args
  5.     if @active_battler.armor1_id.zero?
  6.       @actor_command_window.disable_item 2
  7.     else
  8.       @actor_command_window.refresh
  9.     end
  10.   end
  11.   def update_phase3_basic_command
  12.     if Input.trigger?(Input::B)
  13.       $game_system.se_play($data_system.cancel_se)
  14.       phase3_prior_actor
  15.       return
  16.     end
  17.     if Input.trigger?(Input::C)
  18.       case @actor_command_window.index
  19.       when 0
  20.         $game_system.se_play($data_system.decision_se)
  21.         @active_battler.current_action.kind = 0
  22.         @active_battler.current_action.basic = 0
  23.         start_enemy_select
  24.       when 1
  25.         $game_system.se_play($data_system.decision_se)
  26.         @active_battler.current_action.kind = 1
  27.         start_skill_select
  28.       when 2
  29.         if @active_battler.armor1_id.zero?
  30.           return $game_system.se_play($data_system.buzzer_se)
  31.         end
  32.         $game_system.se_play($data_system.decision_se)
  33.         @active_battler.current_action.kind = 0
  34.         @active_battler.current_action.basic = 1
  35.         phase3_next_actor
  36.       when 3  
  37.         $game_system.se_play($data_system.decision_se)
  38.         @active_battler.current_action.kind = 2
  39.         start_item_select
  40.       end
  41.       return
  42.     end
  43.   end
  44. end
复制代码

作者: he11120    时间: 2012-4-14 22:10
本帖最后由 he11120 于 2012-4-14 22:10 编辑
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. #==============================================================================
  5. # 选项动态加强
  6. # 作者:carol3
  7. #==============================================================================
  8. # ■ Window_Command
  9. #------------------------------------------------------------------------------
  10. #  一般的命令选择行窗口。
  11. #==============================================================================

  12. class Window_Command < Window_Selectable
  13.   #--------------------------------------------------------------------------
  14.   # ● 初始化对像
  15.   # width : 窗口的宽
  16.   # commands : 命令字符串序列
  17.   #--------------------------------------------------------------------------
  18.   def initialize(width, commands)
  19.     # 由命令的个数计算出窗口的高
  20.     super(0, 0, width, commands.size * 32 + 32)
  21.     @item_max = commands.size
  22.     @commands = commands
  23.     self.contents = Bitmap.new(width - 32, @item_max * 32)
  24.     @item = []
  25.     self.index = 0
  26.     refresh
  27.     @oldindex = 0
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● 刷新
  31.   #--------------------------------------------------------------------------
  32.   def refresh
  33.     self.contents.clear
  34.     for i in 0...@item_max
  35.       if i != self.index
  36.         draw_item_dis(i)
  37.       else
  38.         draw_item_active(i,@item[i])
  39.       end
  40.     end
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 描绘项目
  44.   # index : 项目编号
  45.   # color : 文字色
  46.   #--------------------------------------------------------------------------
  47.   def draw_item_dis(index)
  48.     self.contents.font.size -= 2
  49.     self.contents.font.color = disabled_color
  50.     rect = Rect.new(4+5, 32 * index, self.contents.width - 24, 32)
  51.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  52.     self.contents.draw_text(rect, @commands[index])
  53.     self.contents.font.size += 2
  54.   end
  55.   def draw_item_active(index, type)
  56.     self.contents.font.color = Color.new(0,0,0,255)
  57.     self.contents.draw_text(5,32*index+1,self.contents.width,32, @commands[index])
  58.     if type==1
  59.       self.contents.font.color = disabled_color
  60.     else
  61.       self.contents.font.color = Color.new(255,255,0,255)
  62.     end
  63.     self.contents.draw_text(4,32*index,self.contents.width,32, @commands[index])
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   # ● 项目无效化
  67.   # index : 项目编号
  68.   #--------------------------------------------------------------------------
  69.   def disable_item(index)
  70.     @item[index] = 1
  71.   end  
  72.   #--------------------------------------------------------------------------
  73.   # ● 刷新方法更新
  74.   #--------------------------------------------------------------------------
  75.   def update
  76.     super
  77.     #——这里使用的刷新方法比直接refresh节约很多内存
  78.     if self.index != @oldindex
  79.       @oldindex = self.index
  80.       refresh
  81.     end
  82.   end
  83. end

  84. #==============================================================================
  85. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  86. #==============================================================================
复制代码
我用了这个动态菜单选项的,选项灰度有点问题。(如果一个角色有盾牌,另一个没有,第二轮(同一场战斗)有盾牌的“防御”选项也变成灰的.(但还可以用)
作者: 忧雪の伤    时间: 2012-4-15 09:50
本帖最后由 忧雪の伤 于 2012-4-15 09:53 编辑
he11120 发表于 2012-4-14 22:10
我用了这个动态菜单选项的,选项灰度有点问题。(如果一个角色有盾牌,另一个没有,第二轮(同一场战斗)有 ...
  1. class Scene_Battle
  2.   alias yukinoshyan_phase3_setup_command_window phase3_setup_command_window
  3.   def phase3_setup_command_window *args
  4.     @actor_command_window.instance_variable_get(:@item)[2] = 0
  5.     yukinoshyan_phase3_setup_command_window *args
  6.     if @active_battler.armor1_id.zero? || @active_battler.mp < 30
  7.       @actor_command_window.disable_item 2
  8.     else
  9.       @actor_command_window.refresh
  10.     end
  11.   end
  12.   def update_phase3_basic_command
  13.     if Input.trigger?(Input::B)
  14.       $game_system.se_play($data_system.cancel_se)
  15.       phase3_prior_actor
  16.       return
  17.     end
  18.     if Input.trigger?(Input::C)
  19.       case @actor_command_window.index
  20.       when 0
  21.         $game_system.se_play($data_system.decision_se)
  22.         @active_battler.current_action.kind = 0
  23.         @active_battler.current_action.basic = 0
  24.         start_enemy_select
  25.       when 1
  26.         $game_system.se_play($data_system.decision_se)
  27.         @active_battler.current_action.kind = 1
  28.         start_skill_select
  29.       when 2
  30.         if @active_battler.armor1_id.zero? || @active_battler.mp < 30
  31.           return $game_system.se_play($data_system.buzzer_se)
  32.         end
  33.         $game_system.se_play($data_system.decision_se)
  34.         @active_battler.mp = @active_battler.mp - 30
  35.         @active_battler.current_action.kind = 0
  36.         @active_battler.current_action.basic = 1
  37.         phase3_next_actor
  38.       when 3  
  39.         $game_system.se_play($data_system.decision_se)
  40.         @active_battler.current_action.kind = 2
  41.         start_item_select
  42.       end
  43.       return
  44.     end
  45.   end
  46. end
复制代码

作者: TCRL    时间: 2012-4-15 09:54
能冒昧问句:你这防御能减少多少伤害?要不然我们防御还打算回血回魔的,你这里还掉魔。
(善意提醒,可以无视,哈)




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1