RPGツクール2000/自作戦闘
アクションRPGの戦闘システムを作る
■ダメージ&命中率の計算
(更新:2010/11/27)


主人公から敵キャラへの攻撃時、
または敵キャラから主人公へ攻撃時のダメージ量命中率の計算を行います。

ダメージの計算処理は、通常攻撃のダメージの計算処理の設定を使います。
【通常攻撃のダメージの計算処理のページを見る】

命中率の計算処理は、通常攻撃の命中率の計算処理の設定を使います。
【通常攻撃のダメージの計算処理のページを見る】


このページは続きとなっているページです
このページは、アクションRPGの戦闘システムを作るから続いているページです。
制作内容もアクションRPGの戦闘システムを作るのページからご覧頂かないと、
分からないような作りになっています。
【アクションRPGの戦闘システムを作るのページを開く】
このページは、敵の設定のページの応用として用意されています。
敵の設定のページをご覧の上で、このページをご覧ください。
【敵の設定のページを開く】

この色のイベント設定は、
敵の設定のイベント設定と同じ設定である事を示しています。



☆命中率について
攻撃を行えば必ず当たるとする場合は、命中率の設定は不要です。

命中率は、装備している武器マス単位で変える事ができます。

同じ敵キャラでも、敵キャラごとに命中率を変える事ができます。



☆スイッチ・変数
使用するスイッチと変数の名前使用内容は以下の通りです。

スイッチ
番号 名前 使用内容 初使用ページ
0021 戦闘システム起動 定期的に並列処理するのイベントを起動します。 主人公の攻撃処理

変数
番号 名前 使用内容 初使用ページ
0001 キー入力 キー入力の処理で使います。 主人公の攻撃処理
0002 X位置 当たり判定のX座標を記憶します。 主人公の攻撃処理
0003 Y位置 当たり判定のY座標を記憶します。 主人公の攻撃処理
0004 イベントID 敵キャラの有無を調べる時に使います。 主人公の攻撃処理
0005 正面マスへ±X 当たり判定のX座標を変える時に使います。 主人公の攻撃処理
0006 正面マスへ±Y 当たり判定のY座標を変える時に使います。 主人公の攻撃処理
0007 左手マスへ±X 当たり判定のX座標を変える時に使います。 主人公の攻撃処理
0008 左手マスへ±Y 当たり判定のY座標を変える時に使います。 主人公の攻撃処理
0009 地形ID 障害物があるかどうかを調べる時に使います。 主人公の攻撃処理
0013 無敵時間 向き変更や攻撃を受けた時に無敵時間を設定。1以上=無敵。 敵の設定
0014 主人公の向き 現在の主人公の向きを代入します。 敵の設定
0015 主人公の前の向き 変数14番の値と比較して向き変更を監視します。 敵の設定
 
0021 敵イベントID開始番 一番小さい敵イベントIDを設定します。 敵の設定
0022 1ページ目 敵キャラの1ページ目を呼び出す時に使います。 敵の設定
0023 敵HP変数番号 敵HPの変数番号を設定します。 敵の設定
0024 敵HP 敵HPを呼び出す時に使います。 敵の設定
0025 倒した敵移動X 倒した敵を壁のあるマスへ移動する時に使います。 敵の設定
0026 倒した敵移動Y 倒した敵を壁のあるマスへ移動する時に使います。 敵の設定
 
0041 Aの攻撃力 Aの攻撃力を設定。 ダメージ&命中率の計算
0044 Aの敏捷性 Aの敏捷性を設定。 ダメージ&命中率の計算
0045 Aの基本命中率 Aの基本命中率を設定。 ダメージ&命中率の計算
0047 Bの防御力 Bの防御力を設定。 ダメージ&命中率の計算
0049 Bの敏捷性 Bの敏捷性を設定。 ダメージ&命中率の計算
 
0051 ダメージ量 主人公のHPを減らす量を設定。 ダメージ&命中率の計算
0052 防御力計算 ダメージ量の計算処理で使用。 ダメージ&命中率の計算
0053 命中率 算出した命中率を設定します。 ダメージ&命中率の計算
0054 敏捷性計算 命中率の計算処理で使用。 ダメージ&命中率の計算
 
0102 敵HP02 イベントID2番の敵HPを記憶します。 敵の設定

となっている変数には、攻撃を行う者の能力値を設定してください。
となっている変数には、攻撃を受ける者の能力値を設定してください。

変数[0045:Aの基本命中率]と書いてある変数は、
本来は「武器の基本命中率」となっているものです。
装備している武器によって命中率を変えたい時には、
この変数[0045:Aの基本命中率]の値を変えてください。

【スイッチ・変数の一覧表を開く】



☆ダメージ&命中率の計算
ダメージ&命中率の計算処理を行うイベントを、
コモンイベントに設定します。

■コモンイベント「ダメージ計算処理」
イベント開始条件:呼び出されたときのみ
◆注釈:------------------------------------------------------------
:  :ダメージ量の計算
:  : 

◆変数の操作:[0051:ダメージ量]代入,変数[0041]の値<Aの攻撃力を代入
◆変数の操作:[0051:ダメージ量]除算,2
◆変数の操作:[0052:防御力計算]代入,変数[0047]の値<Bの防御力を代入
◆変数の操作:[0052:防御力計算]除算,4
◆変数の操作:[0051:ダメージ量]減算,変数[0052]の値
◆変数の操作:[0051:ダメージ量]乗算,乱数[80〜120]
◆変数の操作:[0051:ダメージ量]除算,100
◆条件分岐:変数[0051:ダメージ量]が0以下<ダメージ量が無い時
 ◆変数の操作:[0051:ダメージ量]代入,1<最低「1」は減るようにします
 ◆
:分岐終了
◆注釈:------------------------------------------------------------
:  :命中率の計算
:  : 

◆変数の操作:[0053:命中率]代入,100
◆変数の操作:[0053:命中率]減算,変数[0045]の値<基本命中率を設定
◆変数の操作:[0054:敏捷性]代入,変数[0049]の値<Bの敏捷性を代入
◆変数の操作:[0054:敏捷性]乗算,100
◆変数の操作:[0054:敏捷性]除算,変数[0044]の値<Aの敏捷性を代入
◆変数の操作:[0054:敏捷性]減算,100
◆変数の操作:[0054:敏捷性]除算,2
◆変数の操作:[0054:敏捷性]加算,100
◆変数の操作:[0054:敏捷性]乗算,変数[0053]の値
◆変数の操作:[0054:敏捷性]除算,100
◆変数の操作:[0053:命中率]代入,100
◆変数の操作:[0053:命中率]減算,変数[0054]の値
◆変数の操作:[0053:命中率]加算,乱数[0〜99]




☆主人公が敵に攻撃する時の設定
主人公の攻撃処理の中に、敵HPを減らす設定の削除を行います。
※命中率は100%にしています。

■コモンイベント「主人公の攻撃処理」
イベント開始条件:定期的に並列処理する
出現条件スイッチ:[0021:戦闘システム起動]
◆キー入力の処理:[0001:キー入力](決定/オプション:ON)
◆キャラクターの動作指定:主人公,一時停止(動作を繰り返す:ON)
◆変数の操作:[0002:X座標]代入,主人公のX座標
◆変数の操作:[0003:Y座標]代入,主人公のY座標
◆変数の操作:[0005〜0008]代入,0
◆条件分岐:主人公が上を向いている
 ◆変数の操作:[0006:正面マスへ±Y]代入,-1
 ◆変数の操作:[0007:左手マスへ±X]代入,-1
 ◆戦闘アニメの表示:剣A 上向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が下を向いている
 ◆変数の操作:[0006:正面マスへ±Y]代入,1
 ◆変数の操作:[0007:左手マスへ±X]代入,1
 ◆戦闘アニメの表示:剣A 下向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が左を向いている
 ◆変数の操作:[0005:正面マスへ±X]代入,-1
 ◆変数の操作:[0008:左手マスへ±Y]代入,1
 ◆戦闘アニメの表示:剣A 左向き,主人公
 ◆
:分岐終了
◆条件分岐:主人公が右を向いている
 ◆変数の操作:[0005:正面マスへ±X]代入,1
 ◆変数の操作:[0008:左手マスへ±Y]代入,-1
 ◆戦闘アニメの表示:剣A 右向き,主人公
 ◆
:分岐終了
◆変数の操作:[0041:Aの攻撃力]代入,主人公01の攻撃力
◆変数の操作:[0044:Aの敏捷性]代入,主人公01の敏捷性
◆変数の操作:[0045:Aの基本命中率]代入,100

◆変数の操作:[0002:X座標]加算,変数[0005]の値
◆変数の操作:[0003:Y座標]加算,変数[0006]の値
◆指定位置の地形ID取得:(V[0002],V[0003]),[0009:地形ID]
◆条件分岐:変数[0009:地形ID]が2
 ◆指定ラベルへ飛ぶ:1番
 ◆
:分岐終了
◆指定位置のイベントID取得:(V[0002],V[0003]),[0004:イベントID]
◆条件分岐:変数[0004:イベントID]がV[0021]以上
 ◆注釈:------------------------------
 :  :攻撃処理
 :  : 

 ◆変数の操作:[0023:敵HP変数番号]代入,変数[0004]の値
 ◆変数の操作:[0023:敵HP変数番号]加算,100
 ◆変数の操作:[0024:敵HP]代入,変数[V[0023]]の値
 ◆条件分岐:変数[0024:敵HP]が1以上
  ◆変数の操作:[0024:敵HP]減算,1<削除
  ◆変数の操作:[V[0023]]代入,変数[0024]の値
  ◆イベントの呼び出し:V[4][V[22]]
  ◆指定ラベルへ飛ぶ:1番
  ◆
 :分岐終了
 ◆
:分岐終了
◆変数の操作:[0002:X座標]加算,変数[0005]の値
◆変数の操作:[0003:Y座標]加算,変数[0006]の値
◆指定位置のイベントID取得:(V[0002],V[0003]),[0004:イベントID]
◆条件分岐:変数[0004:イベントID]がV[0013]以上
 ◆注釈:------------------------------
 :  :攻撃処理
 :  : 

 ◆変数の操作:[0023:敵HP変数番号]代入,変数[0004]の値
 ◆変数の操作:[0023:敵HP変数番号]加算,100
 ◆変数の操作:[0024:敵HP]代入,変数[V[0023]]の値
 ◆条件分岐:変数[0024:敵HP]が1以上
  ◆変数の操作:[0024:敵HP]減算,1<削除
  ◆変数の操作:[V[0023]]代入,変数[0024]の値
  ◆イベントの呼び出し:V[4][V[22]]
  ◆
 :分岐終了
 ◆
:分岐終了
◆ラベルの設定:1番
◆ウェイト:0.2秒
◆キャラクターの動作指定:主人公



敵キャラの1ページ目にダメージ計算処理を呼び出す設定を追加します。

■マップイベント「敵キャラID:02」※イベントID=2番の時
▼1ページ目
イベント出現条件:変数[0102:敵HP02]が1以上
イベント開始条件:決定キーが押されたとき
◆変数の操作:[0047:Bの防御力]代入,4<この敵の防御力
◆変数の操作:[0049:Bの敏捷性]代入,8<この敵の敏捷性
◆イベントの呼び出し:ダメージ計算処理<コモンイベントを呼び出す
◆条件分岐:変数[0053:命中率]が99以下<攻撃ミスの時
 ◆イベント処理の中断
 ◆
:分岐終了
◆変数の操作:[0102:敵HP02]減算,変数[0051]の値<この敵のHPを減らす

◆キャラクターのフラッシュ:このイベント,0.5秒(赤31、緑0、青0、強さ31)
◆キャラクターの動作指定:このイベント,向き固定,主人公から逃げる,向き固定解除
◆条件分岐:変数[0102:敵HP02]が1以上(オプション:ON)
 ◆効果音の演奏:斬る1
 ◆
:それ以外の場合
 ◆効果音の演奏:消滅2
 ◆イベントの位置を設定:このイベント(V[0025],V[0026])
 ◆
:分岐終了


▼2ページ目
イベント出現条件:変数[0102:敵HP02]が1以上
イベント開始条件:イベントから触れたとき
グラフィック:敵キャラの絵
移動タイプ:主人公に近寄る
◆条件分岐:決定キーでこのイベントを開始した
 ◆イベント処理の中断
 ◆
:分岐終了
◆条件分岐:変数[0013:無敵時間]が1以上
 ◆イベント処理の中断
 ◆
:分岐終了
◆変数の操作:[0014:主人公の向き代入,主人公の向き
◆条件分岐:変数[0014:主人公の向き]がV[0015]以外
 ◆イベント処理の中断
 ◆
:分岐終了
◆注釈:------------------------------------------------------------
:  :敵の攻撃
:  : 

◆効果音の演奏:打撃1
◆キャラクターのフラッシュ:主人公,0.5秒(赤31、緑0、青0、強さ31)
◆HPの増減:メンバー全員のHPを1減らす
◆変数の操作:[0013:無敵時間]代入,30




☆敵が主人公に攻撃する時の設定
敵キャラの2ページ目にダメージ計算処理を呼び出す設定を追加します。

■マップイベント「敵キャラID:02」※イベントID=2番の時
▼1ページ目
イベント出現条件:変数[0102:敵HP02]が1以上
イベント開始条件:決定キーが押されたとき
◆キャラクターのフラッシュ:このイベント,0.5秒(赤31、緑0、青0、強さ31)
◆キャラクターの動作指定:このイベント,向き固定,主人公から逃げる,向き固定解除
◆条件分岐:変数[0024:敵HP]が1以上(オプション:ON)
 ◆効果音の演奏:斬る1
 ◆
:それ以外の場合
 ◆効果音の演奏:消滅2
 ◆イベントの位置を設定:このイベント(V[0025],V[0026])
 ◆
:分岐終了


▼2ページ目
イベント出現条件:変数[0102:敵HP02]が1以上
イベント開始条件:イベントから触れたとき
グラフィック:敵キャラの絵
移動タイプ:主人公に近寄る
◆条件分岐:決定キーでこのイベントを開始した
 ◆イベント処理の中断
 ◆
:分岐終了
◆条件分岐:変数[0013:無敵時間]が1以上
 ◆イベント処理の中断
 ◆
:分岐終了
◆変数の操作:[0014:主人公の向き代入,主人公の向き
◆条件分岐:変数[0014:主人公の向き]がV[0015]以外
 ◆イベント処理の中断
 ◆
:分岐終了
◆注釈:------------------------------------------------------------
:  :敵の攻撃
:  : 

◆変数の操作:[0041:Aの攻撃力]代入,12<この敵の攻撃力
◆変数の操作:[0044:Aの敏捷性]代入,8<この敵の敏捷性
◆変数の操作:[0045:Aの基本命中率]代入,90<この敵の攻撃命中率
◆変数の操作:[0047:Bの防御力]代入,主人公01の防御力
◆変数の操作:[0049:Bの敏捷性]代入,主人公01の敏捷性
◆イベントの呼び出し:ダメージ計算処理<コモンイベントを呼び出す
◆条件分岐:変数[0053:命中率]が99以下<攻撃ミスの時
 ◆イベント処理の中断
 ◆
:分岐終了

◆効果音の演奏:打撃1
◆キャラクターのフラッシュ:主人公,0.5秒(赤31、緑0、青0、強さ31)
◆HPの増減:メンバー全員のHPをV[0051]減らす<計算したダメージ量の分だけHPを減らす
◆変数の操作:[0013:無敵時間]代入,30




ページタイトル 内容
備考
基礎ページ 制作を始める前に必ず見ておく基礎ページです。
必見!
制作に必要な情報を見る事ができます。
イベントIDの管理 イベントIDの管理に関するページです。
制作テクニックです。
主人公の攻撃処理 決定キーを押すと攻撃を行う処理。
必要な処理。
様々な攻撃範囲の設定 様々な攻撃範囲の設定方法を紹介。
「主人公の攻撃処理」の後に見てください。
武器とキー処理 武器装備時、または溜め攻撃時の攻撃範囲の変更を紹介。
「主人公の攻撃処理」の後に見てください。
敵の設定 基本的な敵キャラの設定方法を紹介。
必要な処理。「主人公の攻撃処理」の後に見てください。
ダメージ&命中率の計算 攻撃力や防御力を使ったダメージ&命中率の計算を設定。
「敵の設定」の後に見てください。
マップごとに敵HPを管理 別のマップへ移動しても敵HPが初期化しないように設定。
「敵の設定」の後に見てください。
敵の位置を記憶 別のマップへ移動する前に敵の位置を記憶します。
「敵の設定」の後に見てください。
戦闘アニメの表示制限 宝箱などを調べても戦闘アニメが表示されないように設定。
「敵の設定」の後に見てください。
主人公のHPを表示 主人公のHP表示を設定します。
敵の設定までが終わりましたらご覧ください。
敵のHPを表示 敵のHP表示を設定します。
敵の設定までが終わりましたらご覧ください。


YADOTトップ  このサイトは何?  気紛れな空間へ戻る  メール