赞 | 2 |
VIP | 143 |
好人卡 | 1 |
积分 | 1 |
经验 | 216792 |
最后登录 | 2019-10-10 |
在线时间 | 24 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 61
- 在线时间
- 24 小时
- 注册时间
- 2008-8-5
- 帖子
- 1924
|
六饭的那个整合版 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感谢您的热情解答~ |
|