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

Project1

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

RTAB敌人SP不够使用技能时依然吟唱的BUG

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
601 小时
注册时间
2007-8-14
帖子
635

短篇七彩虹组冠军

跳转到指定楼层
1
发表于 2009-5-16 01:58:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如果敌人要使用某一技能而SP又不够,此技能又有吟唱,他就只能先吟唱完,再什么也不做……
有没有办法直接让敌人进行普通攻击且舍弃那个无用的吟唱呢?
版务信息:本贴由楼主自主结贴~
填坑填坑填坑填坑填坑填坑填坑填坑填坑

Lv1.梦旅人

夜天の主

梦石
0
星屑
124
在线时间
1552 小时
注册时间
2008-4-13
帖子
2347

开拓者第4届短篇游戏比赛亚军

2
发表于 2009-5-16 02:59:13 | 只看该作者
看错了..自我屏蔽..
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
601 小时
注册时间
2007-8-14
帖子
635

短篇七彩虹组冠军

3
 楼主| 发表于 2009-5-16 03:55:31 | 只看该作者
在连击计算里面改了如下:
(BY 紫苏 http://rpg.blue/viewthread.php?tid=124789)

  #--------------------------------------------------------------------------
  # ● スキルアクション 準備
  #--------------------------------------------------------------------------
  def make_skill_action_preparation(battler)
    # スキルを取得
    @skill = $data_skills[battler.current_action.skill_id]
    # 連携スキルであるかどうか確認
    speller = synthe?(battler)
    # 強制アクションでなければ
    unless battler.current_action.forcing
      # SP 切れなどで使用できなくなった場合
      if speller == nil
   #     unless battler.skill_can_use?(@skill.id)
          # ステップ 6 に移行
   #       battler.phase = 6
   #      return false
   #     end
   #   end
   # end
     ##########################################
        unless battler.skill_can_use?(@skill.id)
        if battler.class == Game_Enemy
         # 设置行动为攻击
         battler.current_action.kind = 0
         battler.current_action.basic = 0
         make_basic_action_result(battler)
       else
          # ステップ 6 に移行
          battler.phase = 1
       end
       # 清除强制行动对像的战斗者
       $game_temp.forcing_battler = nil
       return
      end
      end
    end
    ##########################################


现在倒是能修正为普攻,但是吟唱还在,就是先吟唱,再普攻|||||||||
填坑填坑填坑填坑填坑填坑填坑填坑填坑
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
4
发表于 2009-5-16 11:43:30 | 只看该作者
六饭的那个整合版 RTAB 原本应该是 sp 不足时直接什么也不做的,可能 make_action 被改过?
在 RTAB战斗系统 Ver 1.16 中找到这个方法的定义,应该有蓝色部分的判断,然后添加红色部分就可以在技能无法使用时普攻了~
  #--------------------------------------------------------------------------
  # ● アクション作成
  #--------------------------------------------------------------------------
  def make_action
    # カレントアクションをクリア
    self.current_action.clear
    # 動けない場合
    unless self.inputable?
      # メソッド終了
      return
    end
    # 現在有効なアクションを抽出
    available_actions = []
    rating_max = 0
    for action in self.actions
      # ターン 条件確認
      n = $game_temp.battle_turn
      a = action.condition_turn_a
      b = action.condition_turn_b
      if (b == 0 and n != a) or
         (b > 0 and (n < 1 or n < a or n % b != a % b))
        next
      end
      # HP 条件確認
      if self.hp * 100.0 / self.maxhp > action.condition_hp
        next
      end
      # レベル 条件確認
      if $game_party.max_level < action.condition_level
        next
      end
      # スイッチ 条件確認
      switch_id = action.condition_switch_id
      if switch_id > 0 and $game_switches[switch_id] == false
        next
      end
      # スキル使用可能 条件確認
      if action.kind == 1
        unless self.skill_can_use?(action.skill_id)
          available_actions.push(RPG::Enemy::Action.new)
          next
        end
      end

      # 条件に該当 : このアクションを追加
      available_actions.push(action)
      if action.rating > rating_max
        rating_max = action.rating
      end
    end
    # 最大のレーティング値を 3 として合計を計算 (0 以下は除外)
    ratings_total = 0
    for action in available_actions
      if action.rating > rating_max - 3
        ratings_total += action.rating - (rating_max - 3)
      end
    end
    # レーティングの合計が 0 ではない場合
    if ratings_total > 0
      # 乱数を作成
      value = rand(ratings_total)
      # 作成した乱数に対応するものをカレントアクションに設定
      for action in available_actions
        if action.rating > rating_max - 3
          if value < action.rating - (rating_max - 3)
            self.current_action.kind = action.kind
            self.current_action.basic = action.basic
            self.current_action.skill_id = action.skill_id
            self.current_action.decide_random_target_for_enemy
            return
          else
            value -= action.rating - (rating_max - 3)
          end
        end
      end
    end
  end

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
601 小时
注册时间
2007-8-14
帖子
635

短篇七彩虹组冠军

5
 楼主| 发表于 2009-5-16 18:31:41 | 只看该作者
弄好了,再次多谢紫苏TvT
另外make_action确实是被重定义了,我用了一个技能冷却系统=v=b
填坑填坑填坑填坑填坑填坑填坑填坑填坑
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-15 07:08

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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