【RGSS3】小ネタスクリプト改造03

執筆者:神凪洸


  • 追加更新:「分散度によるダメージ減少を軽減したい!」「分散度の結果を均等にしたい!」

これらは全てVXAce(RGSS3)の小ネタです。

この記事では、■戦闘系 を集めてあります。

変更する箇所は、その部分をコピペしてコメントアウトして取っておき

どこを変更したかわかりやすいよう、 #記号などで目印をつけておくと便利っすよ!



■戦闘開始・終了系

◆マップBGMやBGSをそのまま引き継ぎたい!!

BattleManagerの60行目あたりにある ●戦闘BGMの演奏 を探しましょう。

$game_system.battle_bgm.play と RPG::BGS.stop をコメントアウトするだけっす!!

さらに応用ヽ(`Д´)ノ

それぞれの末尾に unless $game_switches[n]$game_variables[n]==a などをいれて

指定条件の時にだけデフォルト状態にしたり、引き継いだりすることができるようになるっすよ!


◆戦闘画面に移行した時もトランジション再生!

Game_Battleの●開始処理の下辺りに

#-------------------------------------------------------------------------- #

● フェードイン時トランジション再生

#--------------------------------------------------------------------------

def perform_transition

Graphics.transition(20, "Graphics/System/BattleStart", 100)

Graphics.update

end

を追加するっす。すると、フェードイントランジションしてくれるっす。

別のトランジション画像を用意して、ファイル名(BattleStart)を変えたりしてもいいっすね!


◆トランジションの速度もっと早くしたい!

 or遅くしたい!

Game_Mapの●戦闘前トランジション実行 を探しましょう。

Graphics.transition(60, "Graphics/System/BattleStart", 100)の60がスピードっす。

小さくすると速く、大きくすると遅くなるっす。

さらに応用!!ヽ(`Д´)ノ

100の部分を弄ると、フェードアウトしてく滑らかさが変わるっす。

小さくするとギザギザに…… 使いドコロはワカラナイ。


◆戦闘背景未指定のあのぐるぐるどうにかしたい!

Spriteset_Battleの●マップ画像を加工した戦闘背景用ビットマップの作成 を探しましょう。

bitmap.radial_blur(120, 16) をコメントアウトするだけっす。


◆逃走成功率を手軽に変えたい!

BattleManagerの●逃走成功率の作成 を探しましょう。

@escape_ratio = 以降のスクリプトを自由に設定するだけっす。

ちなみに @escape_ratio = 1.0 にすると必ず逃げられるようになるっす。

さらに応用!!ヽ(`Д´)ノ

$game_switches[id] や $game_variables[id]を使う事で、

特定の戦闘だけ逃げやすくなる、絶対に逃げられる等も作れるっす。

@escape_ratio = 1.0 if $game_switches[id] でスイッチIDがONの時、必ず逃げれる。

@escape_ratio = 0.5 if $game_variables[id] <= 数値 で指定変数が数値以下の時、

2分の1の確率で逃げれる。

注意として、当てはまらなかった場合の指定を必ずする事っす。


◆戦闘不能時にMPとTPも0にしたい!

 又は、特定数値にしたい!

Game_Battlerの●戦闘不能になる を探しましょう。

@hp = 0 の下に

@mp = 数値

@tp = 数値 をいれるだけっす。


◆戦闘不能から復活した時の回復値を変更したい!

戦闘に負けて、マップ画面に移行した時戦闘不能者が復活しますが

回復はたったの1!!!これを好きな値で復活させることができるっす!

BattleManagerの261行目あたりにある ●戦闘メンバーの復活(敗北時) を探しましょう。

その中の数値を変更するだけ!!

さらに応用ヽ(`Д´)ノ

数値の代わりに以下も入れられるっす。

actor.mhp #全回復

$game_variables[n] #指定した変数の値回復

actor.mhp / 2 #最大HPの半分回復  ……etc


◆戦闘勝利の雰囲気に合うME素材が

 中々見つからない……

BattleManagerの●勝利の処理 を探しましょう。

play_battle_end_me の下に

Audio.se_play("Audio/SE/ファイル名", 音量, ピッチ)

Audio.se_play("Audio/SE/ファイル名", 音量, ピッチ) を追加する事で、MEがなくても、

SEの組み合わせ再生でかっこいい勝利MEが作れちゃう!!かも?

SEをMEフォルダにいれれば、出来ますがSEでもそのファイルを使う場合は

その分容量が増えるので、この技法は容量節約にもなるっすよ。


■戦闘スキル系

◆特定ステートがかかってる時にダメージを受けると、即死するステートを作りたい!

Game_Battlerの●被ダメージ時の処理 を探しましょう。

charge_tp_by_damage(value.to_f / mhp) の下に

self.add_state(1) if self.state?(id)

とする事で、特定ステートにかかってる状態で、

1ダメでも喰らうと即死しちゃうステートが、作れるっすよ!


◆分散度によるダメージ減少を軽減したい!

Game_Battlerの●分散度の適用 を探しましょう。

var = rand(amp + 1) + rand(amp + 1) - amp の下に

var >= 0 ? var : var = var + amp * p #分散度による減少軽減 

とする事で、分散度によるダメージ減少が軽減されます。

pには0.1~の好きな数値を入れてください。※0.5以上の方が実感しやすくなる。

分散度を高くし、分散0で4桁以上出る場合、ダメージ結果が通常よりも

大きく減ってしまう事があります。

分散度を高くして確率でいつもより大きなダメージが出ることがあるよ!

みたいなスキルを作る際には有効な手立てです。


さらに応用ヽ(`Д´)ノ

追加した処理を書き換えて、

var >= 0 ? var : var = var - amp * p  逆にダメージ減少を増やしたり

var >= 0 ? var : var = 0       ダメージ減少はなしにしたり

var >= 0 ? var = 0 : var       ダメージ増加をあえてなしにする

var >= 0 ? var : var = var + amp * $game_variables[p]      変数の値によって、減少度が変わる

などにも可能です。


※変数に小数点以下の数値をいれるには、イベントコマンド「スクリプト」で

$game_variables[n] = 0.1 などといれてください。


◆分散度の結果を均等にしたい!

デフォルトの分散度計算は、中央値が算出されやすくなっています。

例えば分散度10にした場合、ダメージ100の時

90~110の間の数値が出やすく90や110は出にくいということです。

これをきちんと90~110までバランスよく出るようにできます。


Game_Battlerの●分散度の適用 を探しましょう。

var = rand(amp + 1) + rand(amp + 1) - amp を

var = rand(amp * 2 + 1) - amp とするだけです。


0コメント

  • 1000 / 1000