先制攻撃を実装する

p-sight: Annex - Implementation First Attack System

Tag: 戦闘関連

説明

戦闘開始時に一定確率で先制攻撃を行える、あるいは先制攻撃を受けることになります。
※導入の際に任意の属性を計算から除外するを導入しておかないと属性計算に不具合が生じます。

設定可能な項目

FA_STATE_NAMES

先制攻撃計算に影響するステートを格納したハッシュです。
下記の設定の場合、「電光石火」のステートにかかっている場合は先制攻撃時の補正が+10となり、 「鈍足化」のステートにかかっている場合は先制攻撃時の補正が-10になります。

FA_STATE_NAMES = { "電光石火" => 10, "鈍足化" => -10}

FORCE_FA_VARIABLE

イベント戦などによって「強制的先制攻撃」や「先制攻撃の計算を行わない」などの条件を設定できるように、 その設定に使う変数のIDを指定します。
下記の場合「変数ID が 1 の変数の値」によって先制攻撃の計算が変化します。

FORCE_FA_VARIABLE = 1

FIRST_ATTACK_ACTOR

FIRST_ATTACK_ENEMY

先制攻撃時、あるいは敵の先制攻撃の際に戦闘開始時に表示されるヘルプテキストです。
「""」とすれば省略可能ですが、その場合いきなり敵の先制になった場合など混乱する可能性が高いです。

# アクター先制時のテキスト
FIRST_ATTACK_ACTOR = "先制攻撃に成功した!"
# エネミー先制時のテキスト
FIRST_ATTACK_ENEMY = "魔物がいきなり襲い掛かってきた!"

使い方

※上記の設定を行った後、技の属性を設定しますが、 便宜上、全て上で書いた初期値のままであると仮定します。

まず先制攻撃計算に関して、計算式は下記にいくつかのテンプレートを準備していますので、 そちらを参考にして手を加えるなどを行ってください。
それら計算式テンプレートはこのソースよりも下に入れることで使用可能になります。

変数ID FORCE_FA_VARIABLE(デフォルトでは1)の値によって、以下の四パターンの設定が可能になります。
FORCE_FA_VARIABLEの値ではなく、変数IDが「FORCE_FA_VARIABLE」の値だという点に留意してください。

変数の値 戦闘開始前の先制攻撃計算方法
0 通常通り、どちらが先制になるかを計算する
1 必ず通常戦闘となり、絶対にどちらも先制攻撃にならない。
2 必ずアクター側の先制攻撃となる。
3 必ずエネミー側の先制攻撃となる。

上記の設定は必ず戦闘が始まる前に行うこと。
「バトルイベント」などで設定しても正確に反映されません。

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

再定義しているメソッド

なし

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

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

class Scene_Battle
 def start_phase1
 def start_phase2
 def update_phase2_escape
 def make_action_orders

先制攻撃の計算式のテンプレート集

class Scene_Battleに新たに定義した「def first_attack_calculate」で先制攻撃の計算式を決定しています。
デフォルトでは非常に複雑な計算式ですが、計算式の書き方やこちらで準備した具体例などをいくつか公開しています。
これらテンプレート集もまた、通常の素材と同じように貼り付けることで動作しますが、
その場合は公開している先制攻撃実装スクリプトよりも下に貼り付けてください。
また、複数のテンプレートを貼り付けた場合、その中でも一番下に定義されたものが適用されます。

更新履歴

2006 11/09 二点公開。

ソースと導入方法

導入方法

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

ソースと更新履歴

Implementation First Attack System: ソース

更新履歴

2006 11/09 公開。


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