お世話になります。
戦闘時の行動回数ですが、標準だと同じアクターもしくはエネミーが2、3回行動する時、連続で行動しますが、
続けて連続行動ではなく、
アクターA 攻撃
エネミーB 攻撃
アクターA スキル
エネミーB 攻撃
アクターB 防御
エネミーA スキル
といった具合に、行動順が入り乱れる感じのスクリプトが欲しいため、リクエストさせていただきました。
また、出来るだけ選択したコマンド順で実行される仕様の方が嬉しいです。
是非、宜しくお願い致します。
【解決済み】戦闘時の行動回数
【解決済み】戦闘時の行動回数
最後に編集したユーザー 鼻毛ぷいぷい [ 2017年7月13日(木) 01:41 ], 累計 1 回
Re: 戦闘時の行動回数
>>TOMO様
ご返信ありがとうございます。
一応私の方からも鳥小屋.txt様のスクリプトを拝見し、理想に近いスクリプトだったのですが、
どうやらスキルの速度依存で各選択したコマンドが実行されるようでして、
攻撃→防御→スキル といった順番にコマンド選択しても実際には速度依存の関係で
防御→攻撃→スキル といった感じに実行されてしまいます。
どちらかというとDAIpage様がRGSS2素材として公開されている「戦闘時複数回行動」というスクリプトの方が理想に近いかもしれません。
ご返信ありがとうございます。
一応私の方からも鳥小屋.txt様のスクリプトを拝見し、理想に近いスクリプトだったのですが、
どうやらスキルの速度依存で各選択したコマンドが実行されるようでして、
攻撃→防御→スキル といった順番にコマンド選択しても実際には速度依存の関係で
防御→攻撃→スキル といった感じに実行されてしまいます。
どちらかというとDAIpage様がRGSS2素材として公開されている「戦闘時複数回行動」というスクリプトの方が理想に近いかもしれません。
Re: 戦闘時の行動回数
敏捷性や速度補正等を無視した仕様となってますが、これでいいのですか?
コード: 全て選択
module BattleManager
def self.make_action_orders
@action_battlers = []
unless @surprise # 不意打ちでない
$game_party.members.each do |member|
@action_battlers += [member] * member.actions.size # 行動回数分バトラー追加
end
end
unless @preemptive # 先制でない
$game_troop.members.each do |member|
@action_battlers += [member] * member.actions.size # 行動回数分バトラー追加
end
end
@action_battlers.sort_by!{rand} # ランダム順にソート
end
end
現在サポート終了中
Re: 戦闘時の行動回数
>>TOMO様
ご対応してくださり誠にありがとうございます!
選択したコマンド通りに実行されるという所が理想にピッタリの仕様だったのですが、
誠に恐れながら、敏捷性の方は考慮されるという仕様に出来ませんでしょうか?
具体的には、2回目以降は敏捷性が落ちて行動順が遅れていく、という仕様には出来ませんでしょうか?
出来れば%形式での敏捷性低下のが嬉しいです。
そうすれば正に
敏捷性100 アクターA 攻撃
敏捷性 90 エネミーB 攻撃
敏捷性 80 アクターA スキル
敏捷性 70 エネミーB 攻撃
敏捷性 60 アクターB 防御
敏捷性 50 エネミーA スキル
のような理想にピッタリのスクリプトになりそうです。
どうか宜しくお願い致します。
ご対応してくださり誠にありがとうございます!
選択したコマンド通りに実行されるという所が理想にピッタリの仕様だったのですが、
誠に恐れながら、敏捷性の方は考慮されるという仕様に出来ませんでしょうか?
具体的には、2回目以降は敏捷性が落ちて行動順が遅れていく、という仕様には出来ませんでしょうか?
出来れば%形式での敏捷性低下のが嬉しいです。
そうすれば正に
敏捷性100 アクターA 攻撃
敏捷性 90 エネミーB 攻撃
敏捷性 80 アクターA スキル
敏捷性 70 エネミーB 攻撃
敏捷性 60 アクターB 防御
敏捷性 50 エネミーA スキル
のような理想にピッタリのスクリプトになりそうです。
どうか宜しくお願い致します。
Re: 戦闘時の行動回数
多分これで出来ます
一回毎に10%低下するようにしてます
(「n = 10」の所の数値を変えて下さい)
ちなみに、速度補正がマイナスのスキルがある場合、
その補正で順番が後ろの方になる事があります
元々そういう仕様だったので、特に弄ってません
あと、前のランダム順のスクリプトを使う人は、
上記スクリプトの「Scene_Battle」の所の処理を入れて使って下さい
(入れないと、間に他キャラが割り込めません)
コード: 全て選択
module BattleManager
def self.make_action_orders
n = 10
battlers = {}
@action_battlers = []
unless @surprise
$game_party.members.each do |member|
member.actions.size.times do |i|
battlers[member.make_speed * ((100.0 - n * i) / 100)] = member
end
end
end
unless @surprise
$game_troop.members.each do |member|
member.actions.size.times do |i|
battlers[member.make_speed * ((100.0 - n * i) / 100)] = member
end
end
end
battlers.sort{|a, b| b[0] - a[0] }.each do |data|
@action_battlers.push(data[1])
end
end
end
class Scene_Battle
alias tomo_action_order_process_action process_action
def process_action
tomo_action_order_process_action
@subject = BattleManager.next_subject
end
end
(「n = 10」の所の数値を変えて下さい)
ちなみに、速度補正がマイナスのスキルがある場合、
その補正で順番が後ろの方になる事があります
元々そういう仕様だったので、特に弄ってません
あと、前のランダム順のスクリプトを使う人は、
上記スクリプトの「Scene_Battle」の所の処理を入れて使って下さい
(入れないと、間に他キャラが割り込めません)
現在サポート終了中
Re: 戦闘時の行動回数
>>TOMO様
おお、正に理想的なスクリプトです、ありがとうございます!
選択したコマンド順で実行され且つ敏捷性が考慮される素晴らしいスクリプトです!
ただ、テストバトルしてみた結果、どうも行動が途中で終わるっぽいんです…
アクターA 攻撃
アクターB 防御
アクターB 攻撃
エネミーA 攻撃
2ターン目開始
アクターAとエネミーAがそれぞれまだ一つ行動が残されてるのに関わらず、これで1ターン目が終わり、2ターン目開始、といった感じです。
全員分の行動が最後まで終わってから2ターン目開始、という感じには出来ませんでしょうか?
何度もお願いして本当に申し訳ございません…
おお、正に理想的なスクリプトです、ありがとうございます!
選択したコマンド順で実行され且つ敏捷性が考慮される素晴らしいスクリプトです!
ただ、テストバトルしてみた結果、どうも行動が途中で終わるっぽいんです…
アクターA 攻撃
アクターB 防御
アクターB 攻撃
エネミーA 攻撃
2ターン目開始
アクターAとエネミーAがそれぞれまだ一つ行動が残されてるのに関わらず、これで1ターン目が終わり、2ターン目開始、といった感じです。
全員分の行動が最後まで終わってから2ターン目開始、という感じには出来ませんでしょうか?
何度もお願いして本当に申し訳ございません…
Re: 戦闘時の行動回数
多分私の方が悪いので気にしなくていいです
スクリプト内の
を、両方とも
としてみて下さい
これで直るはずです
スクリプト内の
コード: 全て選択
member.make_speed * ((100.0 - n * i) / 100)
コード: 全て選択
member.make_speed * ((100.0 - n * i) / 100) + rand
これで直るはずです
現在サポート終了中
Re: 戦闘時の行動回数
>>TOMO様
おお、出来ました!!
これで文句無しの理想のスクリプトになりました!
お忙しい中リクエストに応えてくださって誠にありがとうございました!!
これにて解決済みとさせていただきます。
本当にありがとうございました!
おお、出来ました!!
これで文句無しの理想のスクリプトになりました!
お忙しい中リクエストに応えてくださって誠にありがとうございました!!
これにて解決済みとさせていただきます。
本当にありがとうございました!