特定の兵隊を、経験値やアイテムをドロップしないようにするにはどうすればいいですか

過去の敵を使ったバトルセットを作成したいのですが、この戦いでEXPやアイテムを獲得しないようにしたいです。何か解決策はありますか?

ターン0で何かを切り替えて、敵が戦利品を落とさないようにすることはできますか?

ターン0でスクリプトコマンドを使ってこれを実現できると思います。戦闘イベントページの条件を「ターン0」に設定し、スパンを「バトル」に設定して、スクリプトコマンドに以下を入力してください:

$gameTroop.members().forEach(enemy => {

enemy.exp = () => 0;

enemy.makeDropItems = () => [];

});

これはその戦闘中の敵にのみ変更を加えるため、他の戦闘やデータベース内の敵には影響しません。MZとMVの両方で動作するはずです。ゴールドも消去したい場合は、同じ箇所に enemy.gold = () => 0; を追加してください。

別の方法としては、データベース内でEXPを0にし、ドロップアイテムなしの敵の複製を作成し、これらの部隊でその複製を使用する方法もあります。

vxace mbの指定を忘れてしまいました

RPG Maker(RM)システムでは、プレイヤーが戦闘に勝利した後に受け取る報酬は、通常「敵キャラ」セクションで設定した内容によって決まります。

プレイヤーに報酬を提供しない敵キャラを作成するか、「戦闘中止」コマンドを使用して戦闘を強制的に終了させる方法が考えられます。

あるいは、敵キャラを切り替える方法もあります。

VX AceはRubyで動作するため、以前のコードは機能しませんが、スイッチを使ってターン0のトグル機能を実現できます。スクリプトエディタ(F11)を開き、「Materials」の下に新しいスロットを挿入して、以下を貼り付けてください:

class Game_Troop < Game_Unit
  NO_REWARD_SWITCH = 10

  alias no_reward_exp_total exp_total
  def exp_total
    $game_switches[NO_REWARD_SWITCH] ? 0 : no_reward_exp_total
  end

  alias no_reward_gold_total gold_total
  def gold_total
    $game_switches[NO_REWARD_SWITCH] ? 0 : no_reward_gold_total
  end

  alias no_reward_make_drop_items make_drop_items
  def make_drop_items
    $game_switches[NO_REWARD_SWITCH] ? [] : no_reward_make_drop_items
  end

  alias no_reward_on_battle_end on_battle_end
  def on_battle_end
    no_reward_on_battle_end
    $game_switches[NO_REWARD_SWITCH] = false
  end
end

10を未使用のスイッチ番号に変更してください。次に、戦闘イベントにおいて、条件を「ターン0」に設定し、スパンを「バトル中」に設定、さらに「スイッチ操作」コマンドでそのスイッチをONにします。このスイッチはバトル終了時に自動的にOFFになります。

これらの戦闘でゴールドを獲得させたい場合は、gold_totalの部分を削除してください。