敵の撃破数を個別に数える

p-sight: Annex - Count Specific Enemies Defeat

Tag: 戦闘関連 / 数値処理

説明

個別の敵の撃破数をカウントして$game_partyに新たに保存します。

使い方

イベントの「スクリプト」で下記のように書くことで 任意のIDの敵を撃破した数を変数に代入ができます。
「get_defeat_count(代入する変数のID, 取得したい敵のID)」
※下記の使用例ではエネミー ID が 2 の敵を今までに撃破した数を変数 1 に代入しています。

get_defeat_count(1, 2)

仕様

敵の撃破数のカウントは、倒した瞬間に行われます。
そのため、戦闘途中で逃走した場合も、それまでに敵を撃破していた場合はその数がカウントされます。
また、敵が復活呪文等を使って復活した場合は撃破数が減算されます。

イベント設定用メモ

例えば「任意の時点から倒したゴースト(ID1の敵)の撃破数が一定に達したらイベント発生」 といったイベントを作成したい場合は下記のようにすることで実行可能です。
(下記の例では10体倒したらイベント実行)

スクリプトから下記を実行
  get_defeat_count(1, 1) # 変数 1 に 現在の撃破数を保存
変数の操作で変数 1 に 10 を加算。

コモンイベントの並列処理等で敵との戦闘後にスクリプトから下記を実行
  get_defeat_count(2, 1) # 変数 2 に 現在の撃破数を保存
とし、変数 2 の値が 変数 1 の値より大きくなった時にスイッチをONにし、 イベントを自動実行する。

詳しい設定方法などは書いていませんが、上記のような流れをとることで、 「ゴーストを10体倒すまで開かない扉」などを作成することが可能です。

スクリプト開発者用メモ

スクリプトの改造や、魔物辞書などを作成したりする場合に、 「今までの敵の撃破数」を取得したり「全部で何体の敵を倒したか」などを取得する必要性が生じるかもしれません。
それらはすべて$game_partyから以下のように取得することが可能です。

任意IDの敵の撃破数を取得

$game_partyにあるメソッドdef get_defeat_count(enemy_id)で取得できます。

@enemy_defeat[i] = $game_party.get_defeat_count(i) # ID i の撃破数を取得

全撃破数の取得

$game_partyにあるメソッドdef get_total_defeat_countで取得できます。

@enemy_defeat_total = $game_party.get_total_defeat_count # 今までの撃破数合計を取得

他のスクリプトとの競合について

再定義しているメソッド

なし

aliasを使って再定義しているメソッド

正常に動作しない場合は、以下のメソッドが他のRGSS素材で再定義されていないかなどを確認してください。

class Game_Party
 def initialize

class Game_Enemy < Game_Battler
 def initialize

ソースと導入方法

導入方法

スクリプトの「Game_Battler」より下、「Main」よりも上に以下のソースを丸々挿入してください。

ソースと更新履歴

Count Specific Enemies Defeat: ソース

更新履歴

2006 9/25 公開。


2006 12/11 デバッグ用に使っていたprint文を削除。

以下の一行を削除。

print enemy_id


This page is written in Japanese(Shift_JIS)
(c) T-Akf, in p-sight