フィールドマップではマップチップごとに戦闘背景が切り替わりますが、
ダンジョンでは1つのみしか設定できません。
フィールドマップのようにマップチップごとに戦闘背景を割り振るにはどうすればいいですか?
+α
マップチップごとに戦闘にも影響を出すことってできますか?
森の中なら「自然」系の能力値が上がる・・・とか
毒の沼では毎ターンダメージを喰らう・・・とか
同じ質問がすでにあればすみません。
返答おまちしております・・・。
マップチップごとに戦闘背景を変えたい。+α
-
- 記事: 715
- 登録日時: 2018年12月23日(日) 13:55
Re: マップチップごとに戦闘背景を変えたい。+α
こんにちは。
以下の手順で、実現可能かと思います。
【手順】
1.マップの戦闘背景を変更したい部分にそれぞれに応じたリージョンIDを設定する。
2.マップのどこか適当な場所に並列処理のイベントを作成する。
4.下記のコマンドを追加する。
5.戦闘背景を変更用の下記のコマンドを必要な分だけ追加する。
以上
+αに関してですが、
毒の沼だけでなく、ダメージ床に乗っているときは毎ターンダメージになってます。
コード内にも書いてありますが競合対策ができてませんのでご注意ください。
問題は、
これは、特定のタイル上で対応する魔法/スキルの属性有効度が上がるようにしたい、例えば、
雪原のタイル上にいるときは氷属性の魔法/スキルを使用したときの属性有効度を上げたい。
という趣旨でよろしいのでしょうか。
この趣旨だと、(特にフィールドマップにおいて)地形ごとに敵の設定をし、おそらく、その地形の属性に耐性のある敵を出現させるであろうと予測される中で、ほぼ意味の無いものに思えるのですが。
趣旨をもう少し具体的に教えて頂けると助かります。
マップごとに設定しなければなりませんが(マップ数が増えるとちょっと面倒)、フィールドマップではマップチップごとに戦闘背景が切り替わりますが、
ダンジョンでは1つのみしか設定できません。
フィールドマップのようにマップチップごとに戦闘背景を割り振るにはどうすればいいですか?
以下の手順で、実現可能かと思います。
【手順】
1.マップの戦闘背景を変更したい部分にそれぞれに応じたリージョンIDを設定する。
2.マップのどこか適当な場所に並列処理のイベントを作成する。
4.下記のコマンドを追加する。
コード: 全て選択
◆注釈:まず、このマップ標準の戦闘背景に変更しておく。
◆戦闘背景の変更:’標準の戦闘背景(床)’ & ’標準の戦闘背景(壁)’
◆注釈:プレイヤーの足元のリージョンIDを取得
◆変数の操作:[0001:プレイヤーX座標] = プレイヤー の マップ X
◆変数の操作:[0002:プレイヤーY座標] = プレイヤー の マップ Y
◆指定位置の情報取得:[0003], リージョン ID, 変数 [0001][0002]
コード: 全て選択
◆条件分岐:変数[0003:リージョンID] == リージョンID
◆戦闘背景の変更:’変更したい戦闘背景(床)’ & ’変更したい戦闘背景(壁)’
◆
:分岐終了
+αに関してですが、
に関しては下記のスクリプトを入れれば実現できると思います。毒の沼では毎ターンダメージを喰らう
毒の沼だけでなく、ダメージ床に乗っているときは毎ターンダメージになってます。
コード: 全て選択
=begin
============================================================================
■RGSS3
■ダメージ床に乗っているとき戦闘中ターン終了時にダメージを受けるスクリプト
2019/05/15 by ecf5DTTzl6h6lJj02
----------------------------------------------------------------------------
表題のとおりです。
HP の再生 のメソッド中で処理しており、スリップダメージとして扱っています。
戦闘開始時の文言以外は特にいじる部分は無いです。
競合対策はできていないので、HP の再生のメソッドを変更しているスクリプトが
入っているときは、競合で動作がおかしくなる可能性が高いです。
============================================================================
=end
if true #このスクリプト全体使わないときはfalseに変更
#------------------↓この囲みの中はtrueのときのみ有効↓----------------------
module BattleManager
#--------------------------------------------------------------------------
# ● 戦闘開始
# 2019/05/12
# ダメージ床の中にいるのでダメージを受ける旨のメッセージ表示を追加
# 文言は好みに合わせて変更してください
# 必要ない場合、このモジュールを消去してもかまわないです。
#--------------------------------------------------------------------------
def self.battle_start
$game_system.battle_count += 1
$game_party.on_battle_start
$game_troop.on_battle_start
$game_troop.enemy_names.each do |name|
$game_message.add(sprintf(Vocab::Emerge, name))
end
if @preemptive
$game_message.add(sprintf(Vocab::Preemptive, $game_party.name))
elsif @surprise
$game_message.add(sprintf(Vocab::Surprise, $game_party.name))
end
wait_for_message
unless $BTEST #戦闘テスト時除外
if $game_player.on_damage_floor? #ダメージ床上にいる
#ダメージ床の上にいる旨を表示
$game_message.add("ダメージ床滞在中\n毎ターン終了時ダメージを受けます")
wait_for_message
end
end
end
end
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# ● HP の再生
#--------------------------------------------------------------------------
def regenerate_hp
damage = -(mhp * hrg).to_i
#ダメージ床によるダメージ適用(戦闘テスト時は除外)
damage += execute_floor_damage if !$BTEST && $game_player.on_damage_floor?
perform_map_damage_effect if $game_party.in_battle && damage > 0
@result.hp_damage = [damage, max_slip_damage].min
self.hp -= @result.hp_damage
end
#--------------------------------------------------------------------------
# ● 床ダメージの処理
#--------------------------------------------------------------------------
def execute_floor_damage
return (basic_floor_damage * fdr).to_i
end
#--------------------------------------------------------------------------
# ● 床ダメージの基本値を取得
#--------------------------------------------------------------------------
def basic_floor_damage
return 10
end
end
#------------------↑この囲みの中はtrueのときのみ有効↑----------------------
end
問題は、
の部分です。森の中なら「自然」系の能力値が上がるとか
これは、特定のタイル上で対応する魔法/スキルの属性有効度が上がるようにしたい、例えば、
雪原のタイル上にいるときは氷属性の魔法/スキルを使用したときの属性有効度を上げたい。
という趣旨でよろしいのでしょうか。
この趣旨だと、(特にフィールドマップにおいて)地形ごとに敵の設定をし、おそらく、その地形の属性に耐性のある敵を出現させるであろうと予測される中で、ほぼ意味の無いものに思えるのですが。
趣旨をもう少し具体的に教えて頂けると助かります。
Re: マップチップごとに戦闘背景を変えたい。+α
返信遅れました!
なるほど!ありがとうございます!
なるほど!ありがとうございます!