ページ 11

解決済【Ace】Atelier RGSS「Battle Result」で控えにも経験値を

Posted: 2018年2月18日(日) 05:50
by 沫那環
こんにちは。時々お世話になっています。
今回、Atelier RGSSにあるVX Ace用の「Battle Result」について、この場を借りて質問させていただきます。

今回、こちらのBattle Resultを制作中のRPGに導入したところ、バトルメンバーにしか経験値が入らなかったため、
控えのメンバーにも経験値が入るように自力で改造しようとしたのですが、ソースコードを見てもどこをどう変えればいいのか見当がつきません。
そこで、経験値を控えのキャラにも入るようにするには、どのように手を加えればいいですか?
また、既に他者様が同様の機能を持つパッチを作っていらっしゃるのであれば、そのURLを教えて下さる形でも構いません。
どうしてもできない場合は、控えに経験値が入らないのは仕様と割り切るつもりではあります。
難しい問題だと思われますが、どなたでも構いませんので対応してくださると幸いです。

Re: 【Ace】Atelier RGSS「Battle Result」で控えにも経験値を

Posted: 2018年2月18日(日) 13:28
by faida
こんにちは。
おそらく、データベースの「システム」タブの「控えメンバーも経験値を獲得」がオフになっていると思われます。
ここのチェックをオンにしないと、スクリプトの導入を問わず控えに経験値が入りません。

が、試していて気づいたことが一つあったので追加で回答を。
このスクリプトで表示されるアクターはバトルメンバーのみで、控えは表示されません。
つまり控えがレベルアップしても立ち絵による表示はないわけです。
これを改造するには「Battle Result」内「def check_level_up」の

コード: 全て選択

if @result_member_id > $game_party.battle_members.size
  $game_temp.level_parameter = []
  $game_temp.level_parameter_old = []
  next
end
をコメントアウトすればよいかと思われます。

Re: 【Ace】Atelier RGSS「Battle Result」で控えにも経験値を

Posted: 2018年2月18日(日) 15:45
by 沫那環
>faidaさん
お忙しい中、ありがとうございます。
faidaさんからのレスを見て、最初の書き込みの時に「『控えメンバーも経験値を取得』にはチェックを入れてある」という、とても大事なことを書き忘れていた事を思い出しました……。おお、何とも恥ずかしい。
チェックを入れた状態でも入らなかったので、なんでだろうと首をかしげていたのです。
お教えいただいた方法、試してみます。

Re: 【Ace】Atelier RGSS「Battle Result」で控えにも経験値を

Posted: 2018年2月18日(日) 16:24
by 沫那環
faidaさんからいただいたアドバイス通り、「控えメンバーも(以下略)」のところにチェックを入れ、
該当する箇所をコメントアウトしてやってみたのですが、それでもバトルメンバーのところにしか経験値が入りませんでした。
申し訳ないのですが、今回の件に関しては、仕様だと割り切って使うことにします……。
手を煩わせてしまい、申し訳ありませんでした。

Re: 【Ace】Atelier RGSS「Battle Result」で控えにも経験値を

Posted: 2018年2月19日(月) 01:24
by faida
こちらもAtelier RGSS様が配布されているマスタープロジェクトで確認したので、単体の仕様ではないと思います。
簡潔に言えば競合ですね。というか、他のスクリプトの仕様かなと。
まぁどんなスクリプトを使用しているか私にはわからないのでこれ以上は何とも言えませんが。

ちなみにアクターの経験値を加算する処理は「Game_Actor」の「gain_exp」で、
戦闘シーンでの加算処理は「BattleManager」の「gain_exp」です。
これらを中心に検索すれば見つかるかと思います。

控えに経験値が入るようになりました

Posted: 2018年2月19日(月) 03:02
by 沫那環
あの書き込みの後、もう少し何とかできないか? とあがいていたのですが、

・update_victory_item内の

コード: 全て選択

if $data_system.opt_extra_exp
         @result_member_max = $game_party.members.size
      else


・check_level_up内の

コード: 全て選択

 actor_result = $game_party.members[@result_member_id]


・show_level_result内の

コード: 全て選択

@actor_result = $game_party.members[@result_member_id - 1] rescue nil


上記三か所の「$game_party.members.size」を「$game_party.all_members.size」にすることで、
控えメンバーにも経験値が入るようになりました。
また、最初にfaidaさんにアドバイスをいただいた箇所のコメントアウトと合わせて、
控えのレベルアップ時にもリザルトが表示されるようになりました。
これで、自分が求めていたものの形になんとかなりそうです。
本当にありがとうございました。
これで、解決とさせていただきます。