[解決しました]倒した敵の数をカウントするシステム

KAP
記事: 6
登録日時: 2019年2月06日(水) 12:06

[解決しました]倒した敵の数をカウントするシステム

投稿記事by KAP » 2019年2月12日(火) 21:28

倒した敵の数をカウントするシステム(特定の敵を1体倒すごとに特定の変数に1加算する)を
作りたいのですが中々上手くいきません。


例えば、スライムが3体出現したとします。その際、それぞれのスライム1体につき

 バトルイベント 条件:敵キャラ[スライムのHP0%以下]
  ◆変数の操作:[0001:スライム討伐数]+=1
(特定のスライムの体力が0になった時、変数「スライム討伐数」(スライムを倒した数を格納する変数)に
1加算する)

といったイベントを作成します。


1体目と2体目を倒した際は、上記のイベントが実行され変数が1ずつ加算されるのですが
最後の1体(3体目)を倒した際は、イベントを組み込んでもどういうわけか変数が加算されず
(本来ならば、スライムを3体倒したので変数の値は3になるはずなのですが実際にF9ボタンで確認しても
変数は2になっていました)
なお、敵キャラにステート「不死身」を入れて変数が加算されたときにステート「不死身」を解除すれば
最後に倒した1体の変数も加算されるのですが、体力ゲージが一旦ギリギリまで残ってから
その後倒したことになるのでテンポが悪いです。

よろしければ、ステート「不死身」を使用せずに倒した敵キャラ数分の変数を加算するスクリプトの作成を
お願いします。
(的確な討伐数を敵キャラ別にカウントできるようになればOKです)

使用ソフトは『RPGツクールVX ace』 です。どうぞよろしくお願いします。
最後に編集したユーザー KAP on 2019年2月13日(水) 21:27 [ 編集 1 回目 ]

TOMO
記事: 343
登録日時: 2015年11月16日(月) 20:12
連絡を取る:

Re: 倒した敵の数をカウントするシステム

投稿記事by TOMO » 2019年2月13日(水) 18:11

CodeCrush様の「撃破数カウンタ」とかはどうですか?
KAP
記事: 6
登録日時: 2019年2月06日(水) 12:06

Re: 倒した敵の数をカウントするシステム

投稿記事by KAP » 2019年2月13日(水) 18:39

申し訳ございません。利用規約に引っ掛かるため、使用できそうにありません。
TOMO
記事: 343
登録日時: 2015年11月16日(月) 20:12
連絡を取る:

Re: 倒した敵の数をカウントするシステム

投稿記事by TOMO » 2019年2月13日(水) 20:01

とりあえず作ってみました

コード: 全て選択

class << BattleManager
  #--------------------------------------------------------------------------
  # ● 勝利の処理
  #--------------------------------------------------------------------------
  alias tomo_enemy_defeat_count_process_victory process_victory
  def process_victory
    $game_troop.dead_members.each do |member|
      $game_system.enemy_defeat_count ||= {}
      $game_system.enemy_defeat_count[member.enemy_id] ||= 0
      $game_system.enemy_defeat_count[member.enemy_id] += 1
    end
    tomo_enemy_defeat_count_process_victory
  end
  #--------------------------------------------------------------------------
  # ● 中断の処理
  #--------------------------------------------------------------------------
  alias tomo_enemy_defeat_count_process_abort process_abort
  def process_abort
    $game_troop.dead_members.each do |member|
      $game_system.enemy_defeat_count ||= {}
      $game_system.enemy_defeat_count[member.enemy_id] ||= 0
      $game_system.enemy_defeat_count[member.enemy_id] += 1
    end
    tomo_enemy_defeat_count_process_abort
  end
  #--------------------------------------------------------------------------
  # ● 敗北の処理
  #--------------------------------------------------------------------------
  alias tomo_enemy_defeat_count_process_defeat process_defeat
  def process_defeat
    $game_troop.dead_members.each do |member|
      $game_system.enemy_defeat_count ||= {}
      $game_system.enemy_defeat_count[member.enemy_id] ||= 0
      $game_system.enemy_defeat_count[member.enemy_id] += 1
    end
    tomo_enemy_defeat_count_process_defeat
  end
end

class Game_System
  attr_accessor   :enemy_defeat_count
end

class Game_Interpreter
  def defeat_count(enemy_id)
    $game_system.enemy_defeat_count ||= {}
    $game_system.enemy_defeat_count[enemy_id] || 0
  end
end


コード: 全て選択

defeat_count(id)

で取得できるので、それを変数に代入して下さい
(idは敵キャラID)
KAP
記事: 6
登録日時: 2019年2月06日(水) 12:06

Re: 倒した敵の数をカウントするシステム

投稿記事by KAP » 2019年2月13日(水) 20:36

スプリクトどうもありがとうございます。
早速、説明通り変数に代入してみたのですが使い方が違うのか上手く作動しませんでした。

お手数をお掛けしますが、もう少し具体的な使用方法をご教授願えますでしょうか?
KAP
記事: 6
登録日時: 2019年2月06日(水) 12:06

Re: 倒した敵の数をカウントするシステム

投稿記事by KAP » 2019年2月13日(水) 21:26

TOMO様

先程上手くいかないと返信しましたが、その後やり方を変えたところ上手く作動しました。
どうもありがとうございました。 :D

“VX / Ace:スクリプト素材のリクエスト” へ戻る