WOLF RPGエディター(ウディタ)/変数【サイトトップへ戻る】
■【使用例】「変数呼び出し値」「X番の変数呼出」
(更新:2024/01/19)


「変数呼び出し値」「X番の変数呼出」を使った使用例を紹介します。


ショートカット
■「1000000+10*Y+X(指定したマップイベントのセルフ変数)
┣◆【使用例】主人公の目の前にいるマップイベントのセルフ変数を操作
┗◆【使用例】マウスポインタの位置にあるマップイベントのセルフ変数を表示
■「1100000+X(実行中のマップイベントのセルフ変数)
┣◆【使用例】コモンイベントで呼び出し元のマップイベントのセルフ変数を操作
┗◆【使用例】ピクチャでマップイベントの頭に「?」を表示
■「15000000+100*Y+X(指定したコモンイベントのセルフ変数)
┣◆【使用例】1つ下のコモンイベントIDのセルフ変数を取得
┗◆【使用例】コモンイベント[183:X[戦]技能エフェクト描画]
■「1600000+X(実行中のコモンイベントのセルフ変数)
┗◆【使用例】敏捷性の大きい順に並べる
■「2000000+X」「2000000+100000*Y+X(通常変数・予備変数)
┣◆【使用例】全ての予備変数1の値を「0」に戻す
┗◆【使用例】全ての予備変数1の値を加算して合計を出す
■「3000000+X(文字列変数)
┣◆【使用例】プレイヤーが入力した文字列(数値)を数値系変数に代入する
┣◆【使用例】セーブデータのファイル名を設定
┗◆【使用例】[文章の表示]や[選択肢]の文字列を50個まで保存
■「8000000+X(乱数作成)
┗◆【使用例】移動頻度をランダム化する
■「9000000+X(システム変数)
┣◆【使用例】オリジナルのマウスポインタを表示
┗◆【使用例】ゲーム画面の下に向かって徐々に暗くする
■「9900000+X(システム文字列)
■「9180000+10*Y+X(主人公と仲間の設定)
┣◆【使用例】主人公の座標を取得
┗◆【使用例】主人公と仲間を浮遊させる
■「9100000+10*Y+X(指定したマップイベントの設定)
┣◆【使用例】主人公とマップイベントとの座標の差を算出
┗◆【使用例】マップイベントを浮遊させる
■「9190000+X(実行中のマップイベントの設定)
┗◆【使用例】主人公の画像を調べたマップイベントと同じ画像にする
■「1000000000(10AABBBBCC)(ユーザーDB)
┣【使用例】基本戦闘のBGMを変更
┣【使用例】お店の商品価格を変える(一部のみ)
┗【使用例】お店の商品価格を変える(一括)
■「1100000000(11AABBBBCC)(可変DB)
┗【使用例】回数付きループの回数をパーティー人数で設定
■「1300000000(13AABBBBCC)(システムDB)
┗【使用例】文字色を一時的に変更する



「変数」に関する基本説明は、別ページに記載しています。
【変数の説明を開く】

「変数呼び出し値」「X番の変数呼出」に関する基本説明は、別ページに記載しています。
【「変数呼び出し値」「X番の変数呼出」の説明を開く】

★注意
X番の変数呼出」は基本的に自作システム(自作メニューや自作戦闘など)を作る時に使うものであり、
当ページの使用例は、ウディタ初心者には難しいかもしれません。



当ページの設定例の中で…
■変数操作: V[CSelf15[変数呼び出し値]] += 1 + 0
のように水色で表示している部分は「X番の変数呼出」の設定になります。

また【文字列操作】の…
■文字列操作:S0[[サンプル]一時文字列] = 位置[このEvのセルフ変数0]の文字列
水色の部分も「X番の変数呼出」の設定になります。



  
■「1000000+10*Y+X」(指定したマップイベントのセルフ変数)

呼び出し値「1000000+10*Y+X」は指定したマップイベントのセルフ変数を呼び出す時に使います。



マップイベント[3]セルフ変数[5]の変数呼び出し値は…
+1000000
+30 (マップイベントID[3]×10)
+5
の設定によって「1000035」になります。



マップイベントのセルフ変数は、通常では[Self]の一覧から選択して設定します。



しかし「主人公の目の前にいるマップイベントのセルフ変数を操作する」と言った場合、
主人公の目の前にいるマップイベントが固定ではないので、
上図のようなマップイベントを指定してセルフ変数を操作する事ができません。

そんな時にこの変数呼び出し値「1000000+10*Y+X」を使います。


  
▼【使用例】主人公の目の前にいるマップイベントのセルフ変数を操作

サブキー(Shift)を押すと、主人公の目の前にいるマップイベントのセルフ変数[9]が「加算1」になるように設定します。

▼動作イメージ


移動幅が「0.5マス」の場合、主人公とマップイベントの位置によっては、
マップイベントの方に向かってサブキーを押しても反応しない事があります。
そのため下記設定では、0.5マスのずれにも対応した設定になっています。

移動幅が「0.5マス」ではなく「1マス」の場合は…
▼ 0.5マス用の処理
の以降の設定は不要です。

【イベントコード表示】【コモン出力ファイル】

■コモンイベント

起動条件:並列実行(常時)

■キー入力:CSelf10[キー][入力待ち] サブキー(12)
■変数操作+: CSelf11[X座標] = 主人公 の X座標(標準)
■変数操作+: CSelf12[Y座標] = 主人公 の Y座標(標準)
■変数操作+: CSelf13[向き] = 主人公 の 向き(1〜9)
■条件分岐(変数): 【1】 CSelf13[向き] が 1 と同じ
         【2】 CSelf13[向き] が 2 と同じ
         【3】 CSelf13[向き] が 3 と同じ
-◇分岐: 【1】 [ CSelf13[向き] が 1 と同じ ]の場合↓
|■変数操作: CSelf11[X座標] -= 1 + 0
|■変数操作: CSelf12[Y座標] += 1 + 0
|■
-◇分岐: 【2】 [ CSelf13[向き] が 2 と同じ ]の場合↓
|■変数操作: CSelf12[Y座標] += 1 + 0
|■
-◇分岐: 【3】 [ CSelf13[向き] が 3 と同じ ]の場合↓
|■変数操作: CSelf11[X座標] += 1 + 0
|■変数操作: CSelf12[Y座標] += 1 + 0
|■
-◇上記以外
|■条件分岐(変数): 【1】 CSelf13[向き] が 4 と同じ
          【2】 CSelf13[向き] が 6 と同じ
|-◇分岐: 【1】 [ CSelf13[向き] が 4 と同じ ]の場合↓
||■変数操作: CSelf11[X座標] -= 1 + 0
||■
|-◇分岐: 【2】 [ CSelf13[向き] が 6 と同じ ]の場合↓
||■変数操作: CSelf11[X座標] += 1 + 0
||■
|-◇上記以外
||■条件分岐(変数): 【1】 CSelf13[向き] が 7 と同じ
          【2】 CSelf13[向き] が 8 と同じ
          【3】 CSelf13[向き] が 9 と同じ
||-◇分岐: 【1】 [ CSelf13[向き] が 7 と同じ ]の場合↓
|||■変数操作: CSelf11[X座標] -= 1 + 0
|||■変数操作: CSelf12[Y座標] -= 1 + 0
|||■
||-◇分岐: 【2】 [ CSelf13[向き] が 8 と同じ ]の場合↓
|||■変数操作: CSelf12[Y座標] -= 1 + 0
|||■
||-◇分岐: 【3】 [ CSelf13[向き] が 9 と同じ ]の場合↓
|||■変数操作: CSelf11[X座標] += 1 + 0
|||■変数操作: CSelf12[Y座標] -= 1 + 0
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■
◇分岐終了◇
■変数操作+: CSelf14[イベントID] = X:CSelf11[X座標] Y:CSelf12[Y座標]のイベントID
■条件分岐(変数): 【1】 CSelf14[イベントID] が 0 以上
-◇分岐: 【1】 [ CSelf14[イベントID] が 0 以上 ]の場合↓
|■変数操作: CSelf15[変数呼び出し値] = CSelf14[イベントID] * 10
|■変数操作: CSelf15[変数呼び出し値] += 1000009 + 0
|■変数操作: V[CSelf15[変数呼び出し値]] += 1 + 0
|■変数操作: CSelf16[マップセルフ9の値] = V[CSelf15[変数呼び出し値]] + 0
|■文章:イベントID「\cself[14]」のセルフ変数[9]は「\cself[16]」です。
|■イベント処理中断
|■
◇分岐終了◇
▼ 0.5マス用の処理
■変数操作+: CSelf17[X座標(0.5用)] = 主人公 の X座標(精密)
■変数操作+: CSelf18[Y座標(0.5用)] = 主人公 の Y座標(精密)
■変数操作: CSelf17[X座標(0.5用)]〜CSelf18[Y座標(0.5用)] %= 2 + 0
■変数操作: CSelf17[X座標(0.5用)] += CSelf11[X座標] + 0
■変数操作: CSelf18[Y座標(0.5用)] += CSelf12[Y座標] + 0
■条件分岐(変数): 【1】 CSelf11[X座標] が CSelf17[X座標(0.5用)] 以外
-◇分岐: 【1】 [ CSelf11[X座標] が CSelf17[X座標(0.5用)] 以外 ]の場合↓
|■変数操作+: CSelf14[イベントID] = X:CSelf17[X座標(0.5用)] Y:CSelf12[Y座標]のイベントID
|■条件分岐(変数): 【1】 CSelf14[イベントID] が 0 以上
|-◇分岐: 【1】 [ CSelf14[イベントID] が 0 以上 ]の場合↓
||■変数操作: CSelf15[変数呼び出し値] = CSelf14[イベントID] * 10
||■変数操作: CSelf15[変数呼び出し値] += 1000009 + 0
||■変数操作: V[CSelf15[変数呼び出し値]] += 1 + 0
||■変数操作: CSelf16[マップセルフ9の値] = V[CSelf15[変数呼び出し値]] + 0
||■文章:イベントID「\cself[14]」のセルフ変数[9]は「\cself[16]」です。
||■イベント処理中断
||■
|◇分岐終了◇
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf12[Y座標] が CSelf18[Y座標(0.5用)] 以外
-◇分岐: 【1】 [ CSelf12[Y座標] が CSelf18[Y座標(0.5用)] 以外 ]の場合↓
|■変数操作+: CSelf14[イベントID] = X:CSelf11[X座標] Y:CSelf18[Y座標(0.5用)]のイベントID
|■条件分岐(変数): 【1】 CSelf14[イベントID] が 0 以上
|-◇分岐: 【1】 [ CSelf14[イベントID] が 0 以上 ]の場合↓
||■変数操作: CSelf15[変数呼び出し値] = CSelf14[イベントID] * 10
||■変数操作: CSelf15[変数呼び出し値] += 1000009 + 0
||■変数操作: V[CSelf15[変数呼び出し値]] += 1 + 0
||■変数操作: CSelf16[マップセルフ9の値] = V[CSelf15[変数呼び出し値]] + 0
||■文章:イベントID「\cself[14]」のセルフ変数[9]は「\cself[16]」です。
||■
|◇分岐終了◇
|■
◇分岐終了◇

この処理の活用例としては、例えばアクションゲームで目の前にいるマップイベントにダメージを与えるような処理で使えます。

マップイベントの起動条件に…
「self9:セルフ変数9」が「2」「以下」
を設定し、マップイベントに向かってサブキーで3回実行するとマップイベントが消滅します。




  
▼【使用例】マウスポインタの位置にあるマップイベントのセルフ変数を表示

マウスポインタをマップイベントの上に置くと、そのマップイベントのセルフ変数が画面上に表示される設定を行います。

▼動作イメージ


この処理はテストプレイの時に使うデバッグ用の処理ですが、
例えばクリックするとセルフ変数の値が変わるような処理(攻撃するなどの処理)も作れます。

【イベントコード表示】【コモン出力ファイル】

■コモンイベント

起動条件:並列実行(常時)

■変数操作+: CSelf10[イベントID] = マウス座標にあるEvID
■条件分岐(変数): 【1】 CSelf10[イベントID] が -1 と同じ
-◇分岐: 【1】 [ CSelf10[イベントID] が -1 と同じ ]の場合↓
|■ピクチャ消去:1 / 0(0)フレーム
|■イベント処理中断
|■
◇分岐終了◇
■変数操作: CSelf11[変数呼び出し値] = CSelf10[イベントID] * 10
■変数操作: CSelf11[変数呼び出し値] += 1000000 + 0
■変数操作: CSelf12[コモンセルフ20-29] = 1600020 + 0
■回数付きループ [ 10 ]回
|■変数操作: V[CSelf12[コモンセルフ20-29]] = V[CSelf11[変数呼び出し値]] + 0
|■変数操作: CSelf11[変数呼び出し値]〜CSelf12[コモンセルフ20-29] += 1 + 0
|■
◇ループここまで◇◇
■ピクチャ表示:1 [左上]文字列[\E▼マップイベン] X:0 Y:0 / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]

マップイベントのセルフ変数は、ゲーム開始時は全ての値が「0」なので、
上記の設定が正常に動いているのかどうかが判りにくいかもしれません。

例えば以下のようにマップイベントを調べるとセルフ変数の値がランダムに変わるようにすると、
上記の設定が正常に動いている事が判るでしょう。

【イベントコード表示】

■変数操作: このEvのセルフ変数0〜このEvのセルフ変数9 = 0 〜 999

▼設定例


▼動作イメージ



▲トップへ戻る▲


  
■「1100000+X」(実行中のマップイベントのセルフ変数)

呼び出し値「1100000+X」は実行中のマップイベントのセルフ変数を呼び出す時に使います。



実行中のマップイベントのセルフ変数[8]の変数呼び出し値は…
+1100000
+8
の設定によって「1100008」になります。



変数呼び出し値「1000000+10*Y+X」でもマップイベントのセルフ変数を操作する事ができますが、
変数呼び出し値「1000000+10*Y+X」の場合は「どのマップイベントを操作するのか」を決める必要があります。

呼び出し値「1100000+X」の場合は「実行中のマップイベントのセルフ変数」になるため、
マップイベントのイベントID[0]の中で実行したら「イベントID[0]のセルフ変数」、
マップイベントのイベントID[1]の中で実行したら「イベントID[1]のセルフ変数」になります。



実行中のマップイベントのセルフ変数は、[Self]の一覧から選択する事ができます。




しかし【回数付きループ】などの[Self]のボタンが無い所では、変数呼び出し値「1100000+X」を使って設定します。

▼【回数付きループ】の設定例


【イベントコード表示】

■回数付きループ [ このEvのセルフ変数0 ]回
|■
◇ループここまで◇◇


  
▼【使用例】コモンイベントで呼び出し元のマップイベントのセルフ変数を操作

マップイベントからコモンイベントを呼び出した場合、
その呼び出したコモンイベントの中で変数呼び出し値「1100000+X」を使用すると、
呼び出し元のマップイベントのセルフ変数を操作する事ができます。



以下の設定例は…
マップセルフ[0〜9]コモンセルフ[10〜19]
コモンセルフ[10〜19]マップセルフ[0〜9]
のやり取りを設定したものです。

ループ処理を使わない設定例使った設定例の両方を記載しています。
どちらか良いと思う方を設定してください。

▼ループ未使用「マップセルフ[0〜9]→コモンセルフ[10〜19]」
【イベントコード表示】

■変数操作: CSelf10 = このEvのセルフ変数0 + 0
■変数操作: CSelf11 = このEvのセルフ変数1 + 0
■変数操作: CSelf12 = このEvのセルフ変数2 + 0
■変数操作: CSelf13 = このEvのセルフ変数3 + 0
■変数操作: CSelf14 = このEvのセルフ変数4 + 0
■変数操作: CSelf15 = このEvのセルフ変数5 + 0
■変数操作: CSelf16 = このEvのセルフ変数6 + 0
■変数操作: CSelf17 = このEvのセルフ変数7 + 0
■変数操作: CSelf18 = このEvのセルフ変数8 + 0
■変数操作: CSelf19 = このEvのセルフ変数9 + 0

▼ループ使用「マップセルフ[0〜9]→コモンセルフ[10〜19]」
【イベントコード表示】

■変数操作: CSelf20[マップのセルフ] = 1100000 + 0
■変数操作: CSelf21[コモンのセルフ] = 1600010 + 0
■回数付きループ [ 10 ]回
|■変数操作: V[CSelf21[コモンのセルフ]] = V[CSelf20[マップのセルフ]] + 0
|■変数操作: CSelf20[マップのセルフ]〜CSelf21[コモンのセルフ] += 1 + 0
|■
◇ループここまで◇◇

▼ループ未使用「コモンセルフ[10〜19]→マップセルフ[0〜9]
【イベントコード表示】

■変数操作: CSelf20[マップのセルフ] = 1100000 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf10 + 0
■変数操作: CSelf20[マップのセルフ] += 1 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf11 + 0
■変数操作: CSelf20[マップのセルフ] += 1 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf12 + 0
■変数操作: CSelf20[マップのセルフ] += 1 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf13 + 0
■変数操作: CSelf20[マップのセルフ] += 1 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf14 + 0
■変数操作: CSelf20[マップのセルフ] += 1 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf15 + 0
■変数操作: CSelf20[マップのセルフ] += 1 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf16 + 0
■変数操作: CSelf20[マップのセルフ] += 1 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf17 + 0
■変数操作: CSelf20[マップのセルフ] += 1 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf18 + 0
■変数操作: CSelf20[マップのセルフ] += 1 + 0
■変数操作: V[CSelf20[マップのセルフ]] = CSelf19 + 0

▼ループ使用「コモンセルフ[10〜19]→マップセルフ[0〜9]
【イベントコード表示】

■変数操作: CSelf20[マップのセルフ] = 1100000 + 0
■変数操作: CSelf21[コモンのセルフ] = 1600010 + 0
■回数付きループ [ 10 ]回
|■変数操作: V[CSelf20[マップのセルフ]] = V[CSelf21[コモンのセルフ]] + 0
|■変数操作: CSelf20[マップのセルフ]〜CSelf21[コモンのセルフ] += 1 + 0
|■
◇ループここまで◇◇


  
▼【使用例】ピクチャでマップイベントの頭に「?」を表示

マップイベントの頭上に「?」を表示します。



「?」の表示はピクチャを使って表示します。
ピクチャの表示位置は、マップイベントの画面位置をセルフ変数[0][1]に取得し、
変数呼び出し値「1100000」「1100001」を使って表示します。



【イベントコード表示】

■マップイベント

起動条件:決定キーで実行

■変数操作+: このEvのセルフ変数0 = このマップイベント の 画面X座標
■変数操作+: このEvのセルフ変数1 = このマップイベント の 画面Y座標
■変数操作: このEvのセルフ変数1 -= 20 + 0
■ピクチャ表示:1 [中心]文字列[\E?] X:このEvのセルフ変数0 Y:このEvのセルフ変数1 / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■文章:にゃ?
■ピクチャ消去:1 / 0(0)フレーム

ちなみに今回は文字を使って「?」を表示していますが、画像を使って「?」を表示する事もできます。

また【ピクチャエフェクト】を使ってアニメーションを行う事もできます。


▲トップへ戻る▲


  
■「15000000+100*Y+X」(指定したコモンイベントのセルフ変数)

変数呼び出し値「15000000+100*Y+X」は指定したコモンイベントのセルフ変数を呼び出す時に使います。



コモンイベント[215]セルフ変数[30]の変数呼び出し値は…
+15000000
+21500 (コモンイベントID[215]×100)
+30
の設定によって「15021530」になります。



変数呼び出し値「15000000+100*Y+X」は通常の制作ではあまり使う事が無く、
他のコモンイベントとの情報のやり取りには、通常変数(予備変数)文字列変数可変DBなどを使う事が多いです。

もちろん変数呼び出し値「15000000+100*Y+X」を使っても良いのですが、
呼び出し先のコモンイベントの設定場所(コモンID)が変わったり、
呼び出し先のコモンイベントのセルフ変数の使い方(変数番号)を変わったりすると、
その都度変数呼び出し値「15000000+100*Y+X」を修正する必要があり、修正し忘れによるバグが発生する可能性があります。

そのため、通常変数(予備変数)文字列変数可変DBなどを使う事が多いです。

但し第三者が利用する「コモン素材」を作る時には、通常変数(予備変数)文字列変数を使わずに作る事があり、
また可変DBを用意するほどのものではない時には、変数呼び出し値「15000000+100*Y+X」を使う事があります。


  
▼【使用例】1つ下のコモンイベントIDのセルフ変数を取得

実行中のコモンイベントの1つ下のコモンイベントIDセルフ変数[14]の値を取得します。

例えばコモンイベント[215]の中で実行した場合は、コモンイベント[216]セルフ変数[14]の値を呼び出します。

【イベントコード表示】

■変数操作+: CSelf10[呼び出すコモンID] = このコモンイベントID(コモンでなければ-1)
■変数操作: CSelf10[呼び出すコモンID] += 1 + 0
■変数操作: CSelf11[変数呼び出し値] = CSelf10[呼び出すコモンID] * 100
■変数操作: CSelf11[変数呼び出し値] += 15000000 + 14
■変数操作: CSelf12[呼び出した値] = V[CSelf11[変数呼び出し値]] + 0

■デバッグ文:\cself[12](コモンID[\cself[10]]のセルフ[14]の値)


  
▼【使用例】コモンイベント[183:X[戦]技能エフェクト描画]

基本システムのコモンイベントの中では、
コモンイベント[183:X[戦]技能エフェクト描画]15〜21行目変数呼び出し値「15000000+100*Y+X」が使われています。



この15〜21行目の処理は、ユーザーDB[1:┗ アニメーション]項目[14:コモンEvで処理[全設定無視]の設定にて、
コモンイベントを呼び出す設定を行っている時に実行されます。



この項目[14:コモンEvで処理[全設定無視]に呼び出すコモンイベントを設定すると、
アニメーションの表示処理を実行した時に、この設定したコモンイベントが呼び出され、
制作者が設定したオリジナルのエフェクトアニメを表示する事ができます。

15〜21行目の処理では、その呼び出すコモンイベントのセルフ変数に以下の数値を渡しています。

呼び出し先のセルフ変数 呼び出し先に渡す情報
セルフ変数[0] ユーザーDB[1:┗ アニメーション]データID
セルフ変数[1] 対象となるキャラがいるX表示位置
セルフ変数[2] 対象となるキャラがいるY表示位置


▲トップへ戻る▲


  
■「1600000+X」(実行中のコモンイベントのセルフ変数)

変数呼び出し値「1600000+X」は実行中のコモンイベントのセルフ変数を呼び出す時に使います。



実行中のコモンイベントのセルフ変数[30]の変数呼び出し値は…
+1600000
+30
の設定によって「1600030」になります。



実行中のコモンイベントのセルフ変数は、[Self]の一覧から選択する事ができます。




しかし【回数付きループ】などの[Self]のボタンが無い所では、変数呼び出し値「1600000+X」を使って設定します。

▼【回数付きループ】の設定例


【イベントコード表示】

■回数付きループ [ CSelf0 ]回
|■
◇ループここまで◇◇


  
▼【使用例】敏捷性の大きい順に並べる

敏捷性の大きい順に主人公IDをセルフ変数[20]から並べます。

例えば主人公ID[0〜3]の4人がいて…
主人公ID 敏捷性
0 50
1 80
2 30
3 40
のような敏捷性である場合は、セルフ変数[20〜23]には…
セルフ変数 主人公ID 敏捷性
20 1 80
21 0 50
22 3 40
23 2 30
と並べます。


敏捷性の値は、可変DB[17:×主人公一時DB]項目[6:[一時]計算済み敏捷性]から取得します。



この可変DB[17:×主人公一時DB]項目[6:[一時]計算済み敏捷性]には、
可変DB[0:主人公ステータス]項目[14:基本敏捷性]の値に装備品や状態異常などで増減した敏捷性が設定されています。


大きい順に並び替える処理は、例えば…
順位 主人公ID 敏捷性
1位 セルフ変数[20]=1 セルフ変数[30]=80
2位 セルフ変数[21]=0 セルフ変数[31]=50
3位 セルフ変数[22]=2 セルフ変数[32]=30
と3人分が設定されているとします。

そこに4人目(主人公ID[3]、敏捷性[40])の主人公を追加する場合は、
まずは一番下の4位の所に新しい主人公を追加します。
順位 主人公ID 敏捷性
1位 セルフ変数[20]=1 セルフ変数[30]=80
2位 セルフ変数[21]=0 セルフ変数[31]=50
3位 セルフ変数[22]=2 セルフ変数[32]=30
4位 セルフ変数[23]=3 セルフ変数[33]=40

そして3位と4位の敏捷性を比較します。
この場合は4位の敏捷性が大きいので、3位と4位の設定を入れ替えます。
順位 主人公ID 敏捷性
1位 セルフ変数[20]=1 セルフ変数[30]=80
2位 セルフ変数[21]=0 セルフ変数[31]=50
3位 セルフ変数[22]=3 セルフ変数[32]=40
4位 セルフ変数[23]=2 セルフ変数[33]=30

次に2位と3位の敏捷性を比較します。
この場合は2位の方が敏捷性が大きいので、これで順位が確定します。
なお、2位と3位が同じ敏捷性だった場合も入れ替えは無く、このまま順位が確定します。

【イベントコード表示】【コモン出力ファイル】

■コモンイベント

起動条件:呼び出しのみ

■変数操作: CSelf10[設定人数] = 0 + 0
■変数操作: CSelf11[可変6項目1-6] = 1 + 0
■変数操作: CSelf20[1番目:主人公]〜CSelf25[6番目:主人公] = -1 + 0
■変数操作: CSelf30[1番目:敏捷性]〜CSelf35[6番目:敏捷性] = -1 + 0
■回数付きループ [ 6 ]回
|■DB読込(可変): CSelf12[主人公ID] =
         可変DB[ パーティー情報 : 0 : CSelf11[可変6項目1-6] ] (6 : メイン設定 : -)
|■イベントの挿入[名]: ["X[移]一時ステ計算<初期化>"] <コモンEv 122> / CSelf12[主人公ID]
|■イベントの挿入[名]: ["X[移]一時ステ計算<装備補正>"] <コモンEv 123> / CSelf12[主人公ID]
|■イベントの挿入[名]: ["X[移]一時ステ計算<状態補正>"] <コモンEv 124> / CSelf12[主人公ID]
|■DB読込(可変): CSelf13[敏捷性:設定] =
         可変DB[ ×主人公一時DB : CSelf12[主人公ID] : [一時]計算済み敏捷性 ] (17 : - : 6)
|■変数操作: CSelf15[変数:20-25] = 1600020 + CSelf10[設定人数]
|■変数操作: CSelf16[変数:30-35] = 1600030 + CSelf10[設定人数]
|■変数操作: CSelf17[変数:20-25+1] = 1600021 + CSelf10[設定人数]
|■変数操作: CSelf18[変数:30-35+1] = 1600031 + CSelf10[設定人数]
|■ループ開始
||■変数操作: V[CSelf17[変数:20-25+1]] = CSelf12[主人公ID] + 0
||■変数操作: V[CSelf18[変数:30-35+1]] = CSelf13[敏捷性:設定] + 0
||■条件分岐(変数): 【1】 CSelf17[変数:20-25+1] が 1600020 と同じ
||-◇分岐: 【1】 [ CSelf17[変数:20-25+1] が 1600020 と同じ ]の場合↓
|||■ループ中断
|||■
||◇分岐終了◇
||■変数操作: CSelf14[敏捷性:30-35] = V[CSelf16[変数:30-35]] + 0
||■条件分岐(変数): 【1】 CSelf13[敏捷性:設定] が CSelf14[敏捷性:30-35] 以下
||-◇分岐: 【1】 [ CSelf13[敏捷性:設定] が CSelf14[敏捷性:30-35] 以下 ]の場合↓
|||■ループ中断
|||■
||◇分岐終了◇
||■変数操作: V[CSelf17[変数:20-25+1]] = V[CSelf15[変数:20-25]] + 0
||■変数操作: V[CSelf18[変数:30-35+1]] = V[CSelf16[変数:30-35]] + 0
||■変数操作: CSelf15[変数:20-25]〜CSelf18[変数:30-35+1] -= 1 + 0
||■
|◇ループここまで◇◇
|■変数操作: CSelf10[設定人数]〜CSelf11[可変6項目1-6] += 1 + 0
|■
◇ループここまで◇◇
■デバッグ文:▼処理結果
■変数操作: CSelf15[変数:20-25] = 1600020 + 0
■変数操作: CSelf16[変数:30-35] = 1600030 + 0
■回数付きループ [ CSelf10[設定人数] ]回
|■変数操作: CSelf12[主人公ID] = V[CSelf15[変数:20-25]] + 0
|■変数操作: CSelf13[敏捷性:設定] = V[CSelf16[変数:30-35]] + 0
|■デバッグ文:敏[\cself[13]] 主ID[\cself[12]](\cdb[0:\cself[12]:0])
|■変数操作: CSelf15[変数:20-25]〜CSelf16[変数:30-35] += 1 + 0
|■
◇ループここまで◇◇

上記イベントをマップイベントから呼び出すと、主人公IDが敏捷性順にセルフ変数[20〜25]に保存されます。

▼デバッグウィンドウの表示例
▼処理結果 -->[MapEv19/コモン215/36行]
敏[40] 主ID[12](ウルファール) -->[MapEv19/コモン215/42行]
敏[14] 主ID[4](パイレーツさん) -->[MapEv19/コモン215/42行]
敏[10] 主ID[3](プリーストさん) -->[MapEv19/コモン215/42行]
敏[8] 主ID[2](ウィッチさん) -->[MapEv19/コモン215/42行]
敏[6] 主ID[1](ファイターさん) -->[MapEv19/コモン215/42行]
敏[2] 主ID[0](ヒーローさん) -->[MapEv19/コモン215/42行]


▲トップへ戻る▲


  
■「2000000+X」「2000000+100000*Y+X」(通常変数・予備変数)

呼び出し値「2000000+X」は通常変数を呼び出す時に、
呼び出し値「2000000+100000*Y+X」は予備変数を呼び出す時に使います。



通常変数[5]の変数呼び出し値は…
+2000000
+5
の設定によって「2000005」になります。



予備変数は、例えば予備変数1の変数番号[5]の変数呼び出し値は…
+2000000
+100000 (100000×1)
+5
の設定によって「2100005」になります。

予備変数3の変数番号[5]の変数呼び出し値は…
+2000000
+300000 (100000×3)
+5
の設定によって「2300005」になります。



通常変数と予備変数の仕様は同じです。

通常変数と予備変数に分かれているのは、制作者の意向で使い分けができるようにするためです。

例えば…
【通常変数】ゲーム全体で使う重要な変数。
【予備変数1】複数のマップにまたがる謎解きイベント用。
【予備変数2】強制実行イベントの起動用。
などと、制作者が考えた使い分けができます。



通常変数・予備変数は、通常では[変]の一覧から選択する事ができます。



しかし【回数付きループ】などの[変]のボタンが無い所では、
変数呼び出し値「2000000+X」「2000000+100000*Y+X」を使って設定します。

▼【回数付きループ】の設定例


【イベントコード表示】

■回数付きループ [ V0[[サンプルゲーム]コック出現] ]回
|■
◇ループここまで◇◇


  
▼【使用例】全ての予備変数1の値を「0」に戻す

予備変数1の値を全て「0」(初期化)にする時には、通常では…
■変数操作: V1-0[]〜V1-4[] = 0 + 0
と言った設定を行います。

しかし上記設定の場合、予備変数1のデータ数を変えると、その都度初期化する変数番号の範囲を変える必要があります。

▼データ数を「4」から「12」に変更


▼【変数操作】の設定もデータ数[12](変数0〜11番)に合わせて変更


▼修正後の設定
■変数操作: V1-0[]〜V1-11[] = 0 + 0

データ数を増やしたあとに初期化する範囲の修正を忘れると、増やした部分の変数が初期化されなくなります。

逆にデータ数を減らしたあとに初期化イベントの修正を忘れると…
■変数操作: V1-0[]〜V1-11[×NoData] = 0 + 0
と言った表記になり、この状態でイベントを実行すると以下のようなエラーが発生します。



今回の設定では、予備変数1のデータ数(変数の総数)を取得し、
そのデータ数の数だけループ処理を実行し、変数番号順を1つ1つを初期化していきます。

【イベントコード表示】

■コモンイベント

起動条件:呼び出しのみ

■変数操作: CSelf10[変数番号 予備1] = 2100000 + 0
■DB読込(システム): CSelf11[データ数] = システムDB[タイプ予備変数1(15)のデータ数]
■回数付きループ [ CSelf11[データ数] ]回
|■変数操作: V[CSelf10[変数番号 予備1]] = 0 + 0
|■変数操作: CSelf10[変数番号 予備1] += 1 + 0
|■
◇ループここまで◇◇

上記設定はループ処理を使うので、1行だけで済む…
■変数操作: V1-0[]〜V1-9[] = 0 + 0
の設定よりもコマンド処理数が多くなり、非効率的です。

もしも巨大な自作システムを動かしていて、コマンド処理数を少しでも減らしたい場合は、
作品制作中はループ処理を使った初期化を行い、作品が完成したら1行で済む…
■変数操作: V1-0[]〜V1-9[] = 0 + 0
の設定に変えれば良いでしょう。


  
▼【使用例】全ての予備変数1の値を加算して合計を出す

全ての予備変数1の値を加算して合計値を算出する処理を設定します。

例えば、宝箱ごとに予備変数1の番号を割り当てて、「宝箱を開けた=1」にしている場合は、
予備変数1の合計値を出す事で「合計値=宝箱を開けた数」になります。

またステージをクリアしていくゲームで、ステージごとのクリア時間(フレーム時間)を予備変数1の番号ごとに保存した場合は、
合計値=全ステージのクリア時間」になります。

【イベントコード表示】

■コモンイベント

起動条件:呼び出しのみ

入力の数 / 結果を返す
設定 名前 返す値を保存したセルフ変数
返す値 合計値 コモンセルフ10[数]合計値

■変数操作: CSelf10[合計値] = 0 + 0
■変数操作: CSelf11[変数番号 予備1] = 2100000 + 0
■DB読込(システム): CSelf12[データ数] = システムDB[タイプ予備変数1(15)のデータ数]
■回数付きループ [ CSelf12[データ数] ]回
|■変数操作: CSelf10[合計値] += V[CSelf11[変数番号 予備1]] + 0
|■変数操作: CSelf11[変数番号 予備1] += 1 + 0
|■
◇ループここまで◇◇


▲トップへ戻る▲


  
■「3000000+X」(文字列変数)

変数呼び出し値「3000000+X」は文字列を保存する変数を呼び出す時に使います。



文字列変数[5]の変数呼び出し値は…
+3000000
+5
の設定によって「3000005」になります。



コモンイベントのセルフ変数には、文字列用のセルフ変数が用意されていますが、
マップイベントのセルフ変数には、文字列用のセルフ変数が無いため、
マップイベントで文字列を使う場合は、この文字列変数を使います。

▼サンプルゲームではマップイベント[09:コック(パン屋)]で使用




【文字列操作】にある「代入先を変数で設定」や「ロード位置を変数で指定」の設定は、
X番の変数呼出」と同じ処理になります。



例えばセルフ変数[0]に「3000008」を設定した上でセルフ変数[0]【文字列操作】の「代入先を変数で設定」に設定すると、
文字列変数[8]を操作する設定になります。

▼変数呼び出し値で文字列変数[8]を呼び出して、
 文字列変数[8]に「あいうえお」を代入する設定例

【イベントコード表示】

■変数操作: このEvのセルフ変数0 = 3000008 + 0
■文字列操作:V[このEvのセルフ変数0] = "あいうえお"


  
▼【使用例】プレイヤーが入力した文字列(数値)を数値系変数に代入する

【文字列操作】にある「キーボード入力」を使い、プレイヤーに数値を入力してもらい、
その入力された数値をセルフ変数[0]へ代入する設定を行います。




通常の設定では「文字列変数 → 数値系変数」の設定はできませんが、
変数呼び出し値「3000000+X」を使う事で「文字列変数 → 数値系変数」の設定が可能になります。



【イベントコード表示】

■文字列操作:S0[[サンプル]一時文字列] = キーボード入力 10文字 [キャンセル可]
■変数操作: このEvのセルフ変数0 = S0[[サンプル]一時文字列] + 0


コモンイベントの場合は、コモンイベントの文字列タイプのセルフ変数(5〜9)を使えば良いでしょう。

【イベントコード表示】

■文字列操作:CSelf5[キーボード入力] = キーボード入力 10文字
■変数操作: CSelf10[入力した値] = CSelf5[キーボード入力] + 0


  
▼【使用例】セーブデータのファイル名を設定

セーブデータはフォルダー[Save]の中に保存されますが、そのセーブデータのファイル名は、
例えばセーブ番号[1]で保存した場合は「SaveData01.sav」のファイル名で保存されます。


【セーブ・ロード操作】の設定画面を見てみると、セーブデータの番号を設定する画面になっています。




しかしセーブ番号を設定する所に変数呼び出し値「3000000+X」を設定する事で、
その変数呼び出し値で呼び出した文字列変数に保存されているファイル名でセーブデータを保存する事ができます。



【イベントコード表示】

■文字列操作:S0[[サンプル]一時文字列] = "Save/せーぶでーた.sav"
■データのセーブ: S0[[サンプル]一時文字列]

▼フォルダー[Save]の中




フォルダー[Save]の中にセーブファイルを保存する場合は…
■文字列操作:S0[[サンプル]一時文字列] = "Save/せーぶでーた.sav"
と言ったように、フォルダー[Save]を含めたファイル名で設定してください。

フォルダー[Save]を含めず、単に…
■文字列操作:S0[[サンプル]一時文字列] = "せーぶでーた.sav"
にした場合は「Game.exe」がある位置に保存されます。

なお、ファイル名の後ろに「.sav」の拡張子を付けていますが、この拡張子が無い…
■文字列操作:S0[[サンプル]一時文字列] = "せーぶでーた"
の状態でもセーブやロードの実行は可能です。


  
▼【使用例】[文章の表示]や[選択肢]の文字列を50個まで保存

イベントコマンド【文章の表示】で表示された文字列と、
イベントコマンド【選択肢】で選択した文字列を文字列変数[10〜59]に保存し、
マウスの操作(右クリックで表示ON/OFF、マウスホイールでスクロール)で見れるようにします。




予めシステムDB[4:文字列変数名]のデータ数を「60以上」に増やしてください。



文字列の保存は、データID[10〜59]に行います。


イベント処理では、表示された文章はシステム文字列[25:[読]文章表示の内容]]で取得し、
選択した選択肢の内容はシステム文字列[40:[読]選択肢1の内容]などで取得します。

様々な状況を考慮してイベントを設定しているため、イベントの処理構造がかなり複雑になっています。

【イベントコード表示】【コモン出力ファイル】

■コモンイベント「過去の文章表示を確認」

起動条件:並列実行(常時)

■変数操作: CSelf0[ピクチャ番号] = 1 + 0
■変数操作: CSelf1[開始:変数文字列] = 3000010 + 0
■変数操作: CSelf2[保存数] = 50 + 0
▼ 選択肢の保存
■変数操作+: CSelf10[現在:イベント行数] = 処理中のEv行数 [自動/接触/決定キー起動Ev]
■条件分岐(変数): 【1】 Sys20:選択肢カーソル現位置(0,1,2..非選択時:-1) が 0 以上
         【2】 Sys20:選択肢カーソル現位置(0,1,2..非選択時:-1) が -2 と同じ
-◇分岐: 【1】 [ Sys20:選択肢カーソル現位置(0,1,2..非選択時:-1) が 0 以上 ]の場合↓
|■条件分岐(変数): 【1】 CSelf10[現在:イベント行数] が CSelf11[保存:イベント行数] 以外
|-◇分岐: 【1】 [ CSelf10[現在:イベント行数] が CSelf11[保存:イベント行数] 以外 ]の場合↓
||■変数操作+: CSelf11[保存:イベント行数] = 処理中のEv行数 [自動/接触/決定キー起動Ev]
||■条件分岐(文字): 【1】 CSelf6[選択肢の文字]が "" 以外
||-◇分岐: 【1】 [ CSelf6[選択肢の文字] "" 以外 ]の場合↓
|||■条件分岐(変数): 【1】 Sys20:選択肢カーソル現位置(0,1,2..非選択時:-1) が 10 未満
|||-◇分岐: 【1】 [ Sys20:選択肢カーソル現位置(0,1,2..非選択時:-1) が 10 未満 ]の場合↓
||||▼ 選択肢で何かが選択された時
||||■変数操作: CSelf12[選択肢保存番号] = Sys20:選択肢カーソル現位置(0,1,2..非選択時:-1) + 2
||||■回数付きループ [ CSelf12[選択肢保存番号] ]回
|||||■文字列操作:CSelf7[一時処理用] =<上1行切出> CSelf6[選択肢の文字]
|||||■
||||◇ループここまで◇◇
||||■変数操作: CSelf16[変数:文字列保存] 下限= CSelf1[開始:変数文字列] + 0
||||■文字列操作:V[CSelf16[変数:文字列保存]] = "選択【\cself[7]】"
||||■変数操作: CSelf16[変数:文字列保存] += 1 + 0
||||■変数操作: CSelf15[超え:変数文字列] = CSelf1[開始:変数文字列] + CSelf2[保存数]
||||■条件分岐(変数): 【1】 CSelf16[変数:文字列保存] が CSelf15[超え:変数文字列] 以上
||||-◇分岐: 【1】 [ CSelf16[変数:文字列保存] が CSelf15[超え:変数文字列] 以上 ]の場合↓
|||||■変数操作: CSelf16[変数:文字列保存] -= CSelf2[保存数] + 0
|||||■
||||◇分岐終了◇
||||■文字列操作:SysS25[[読]文章表示の内容] = ""
||||■
|||◇分岐終了◇
|||■
||◇分岐終了◇
||■文字列操作:CSelf6[選択肢の文字] = "\cself[10]\n\sysS[40]\n\sysS[41]\n\sysS[42]\n\sysS[43]
        \n\sysS[44]\n\sysS[45]\n\sysS[46]\n\sysS[47]\n\sysS[48]\n\sysS[49]"
||■条件分岐(変数): 【1】 CSelf21[1=表示中] が 1 と同じ
||-◇分岐: 【1】 [ CSelf21[1=表示中] が 1 と同じ ]の場合↓
|||●ラベル「表示更新」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■
-◇分岐: 【2】 [ Sys20:選択肢カーソル現位置(0,1,2..非選択時:-1) が -2 と同じ ]の場合↓
|■条件分岐(文字): 【1】 CSelf6[選択肢の文字]が "" 以外
|-◇分岐: 【1】 [ CSelf6[選択肢の文字] "" 以外 ]の場合↓
||▼ 【キャンセル】を保存
||■文字列操作:CSelf6[選択肢の文字] = ""
||■変数操作: CSelf16[変数:文字列保存] 下限= CSelf1[開始:変数文字列] + 0
||■文字列操作:V[CSelf16[変数:文字列保存]] = "選択【キャンセル】"
||■変数操作: CSelf16[変数:文字列保存] += 1 + 0
||■変数操作: CSelf15[超え:変数文字列] = CSelf1[開始:変数文字列] + CSelf2[保存数]
||■条件分岐(変数): 【1】 CSelf16[変数:文字列保存] が CSelf15[超え:変数文字列] 以上
||-◇分岐: 【1】 [ CSelf16[変数:文字列保存] が CSelf15[超え:変数文字列] 以上 ]の場合↓
|||■変数操作: CSelf16[変数:文字列保存] -= CSelf2[保存数] + 0
|||■
||◇分岐終了◇
||■条件分岐(変数): 【1】 CSelf21[1=表示中] が 1 と同じ
||-◇分岐: 【1】 [ CSelf21[1=表示中] が 1 と同じ ]の場合↓
|||●ラベル「表示更新」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■
-◇上記以外
|■変数操作: CSelf11[保存:イベント行数] = -1 + 0
|■文字列操作:CSelf6[選択肢の文字] = ""
|■
◇分岐終了◇
▼ 文章の保存
■条件分岐(変数): 【1】 Sys12:メッセージ表示中?(1=ON) が 1 と同じ
-◇分岐: 【1】 [ Sys12:メッセージ表示中?(1=ON) が 1 と同じ ]の場合↓
|■条件分岐(文字): 【1】 CSelf5[表示した文字列]が SysS25[[読]文章表示の内容] 以外
|-◇分岐: 【1】 [ CSelf5[表示した文字列] SysS25[[読]文章表示の内容] 以外 ]の場合↓
||■文字列操作:CSelf5[表示した文字列] = SysS25[[読]文章表示の内容]
||■変数操作: CSelf16[変数:文字列保存] 下限= CSelf1[開始:変数文字列] + 0
||■文字列操作:V[CSelf16[変数:文字列保存]] = SysS25[[読]文章表示の内容]
||■文字列操作:V[CSelf16[変数:文字列保存]] =<から文字列を置換> "\!" → ""
||■文字列操作:V[CSelf16[変数:文字列保存]] =<から文字列を置換> "\." → ""
||■変数操作: CSelf16[変数:文字列保存] += 1 + 0
||■変数操作: CSelf15[超え:変数文字列] = CSelf1[開始:変数文字列] + CSelf2[保存数]
||■条件分岐(変数): 【1】 CSelf16[変数:文字列保存] が CSelf15[超え:変数文字列] 以上
||-◇分岐: 【1】 [ CSelf16[変数:文字列保存] が CSelf15[超え:変数文字列] 以上 ]の場合↓
|||■変数操作: CSelf16[変数:文字列保存] -= CSelf2[保存数] + 0
|||■
||◇分岐終了◇
||■条件分岐(変数): 【1】 CSelf21[1=表示中] が 1 と同じ
||-◇分岐: 【1】 [ CSelf21[1=表示中] が 1 と同じ ]の場合↓
|||●ラベル「表示更新」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■
-◇上記以外
|■条件分岐(変数): 【1】 CSelf10[現在:イベント行数] が -1 と同じ
|-◇分岐: 【1】 [ CSelf10[現在:イベント行数] が -1 と同じ ]の場合↓
||■文字列操作:CSelf5[表示した文字列] = ""
||■
|◇分岐終了◇
|■
◇分岐終了◇
▼ 【右クリック】ピクチャ表示切替
■変数操作+: CSelf20[右クリック・ホイール] = マウス右クリック状態
■条件分岐(変数): 【1】 CSelf20[右クリック・ホイール] が 2 と同じ
-◇分岐: 【1】 [ CSelf20[右クリック・ホイール] が 2 と同じ ]の場合↓
|■条件分岐(変数): 【1】 CSelf21[1=表示中] が 0 と同じ
|-◇分岐: 【1】 [ CSelf21[1=表示中] が 0 と同じ ]の場合↓
||●ラベル地点「表示更新」 <<<<<<<<<<<<<<<<<<<<<<<<★
||■変数操作: CSelf22[表示:変数番号] = CSelf16[変数:文字列保存] + 0
||■文字列操作:CSelf7[一時処理用] = ""
||■変数操作: CSelf23[文章番号] = 1 + 0
||■回数付きループ [ CSelf2[保存数] ]回
|||■変数操作: CSelf22[表示:変数番号] -= 1 + 0
|||■条件分岐(変数): 【1】 CSelf22[表示:変数番号] が CSelf1[開始:変数文字列] 未満
|||-◇分岐: 【1】 [ CSelf22[表示:変数番号] が CSelf1[開始:変数文字列] 未満 ]の場合↓
||||■変数操作: CSelf22[表示:変数番号] += CSelf2[保存数] + 0
||||■
|||◇分岐終了◇
|||■文字列操作:CSelf8[出力文字列] = 位置[CSelf22[表示:変数番号]]の文字列
|||■条件分岐(文字): 【1】 CSelf8[出力文字列]が "" と同じ
           【2】 CSelf8[出力文字列]が "<<ERROR>>" と同じ
           【3】 CSelf7[一時処理用]が "" と同じ
|||-◇分岐: 【1】 [ CSelf8[出力文字列] "" と同じ ]の場合↓
||||■
|||-◇分岐: 【2】 [ CSelf8[出力文字列] "<<ERROR>>" と同じ ]の場合↓
||||■
|||-◇分岐: 【3】 [ CSelf7[一時処理用] "" と同じ ]の場合↓
||||■文字列操作:CSelf7[一時処理用] = "\E▼1\n\cself[8]"
||||■
|||-◇上記以外
||||■変数操作: CSelf23[文章番号] += 1 + 0
||||■文字列操作:CSelf7[一時処理用] += "\N\f[\sys[8]]\font[0]\n
         ━━━━━━━━━━━━━━━━━━━━━━━━━\n\E▼\cself[23]つ前\n\csel..."
||||■
|||◇分岐終了◇
|||■
||◇ループここまで◇◇
||■条件分岐(文字): 【1】 CSelf7[一時処理用]が "" 以外
||-◇分岐: 【1】 [ CSelf7[一時処理用] "" 以外 ]の場合↓
|||■変数操作: CSelf21[1=表示中] = 1 + 0
|||■ピクチャ表示:CSelf0[ピクチャ番号] [左上]文字列[\cself[7]] X:10 Y:10 / 0(0)フレーム /
        パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|||■
||◇分岐終了◇
||■
|-◇上記以外
||■変数操作: CSelf21[1=表示中] = 0 + 0
||■ピクチャ消去:CSelf0[ピクチャ番号] / 0(0)フレーム
||■
|◇分岐終了◇
|■
◇分岐終了◇
▼ 【ホイール】ピクチャ表示位置移動
■変数操作+: CSelf20[右クリック・ホイール] = マウスホイール変化
■条件分岐(変数): 【1】 CSelf20[右クリック・ホイール] が 0 以外
-◇分岐: 【1】 [ CSelf20[右クリック・ホイール] が 0 以外 ]の場合↓
|■変数操作+: CSelf24[スクロール限界Y] = ピクチャ:CSelf0[ピクチャ番号] の 画像サイズ(縦)
|■条件分岐(変数): 【1】 CSelf24[スクロール限界Y] が 230 以下
|-◇分岐: 【1】 [ CSelf24[スクロール限界Y] が 230 以下 ]の場合↓
||■イベント処理中断
||■
|◇分岐終了◇
|■変数操作: CSelf20[右クリック・ホイール] *= 4 * Sys8:基本フォントサイズ
|■ピクチャ移動:CSelf0[ピクチャ番号] 相対X:0 Y:CSelf20[右クリック・ホイール] / 0(0)フレーム /
       パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
|■変数操作+: CSelf25[X] = ピクチャ:CSelf0[ピクチャ番号] の X座標
|■変数操作+: CSelf26[Y] = ピクチャ:CSelf0[ピクチャ番号] の Y座標
|■変数操作: CSelf24[スクロール限界Y] *= -1 + 0
|■変数操作: CSelf24[スクロール限界Y] += Sys117:[読]画面サイズY - 20
|■変数操作: CSelf24[スクロール限界Y] 上限= 10 + 0
|■条件分岐(変数): 【1】 CSelf26[Y] が 10 以上 【2】 CSelf26[Y] が CSelf24[スクロール限界Y] 以下
|-◇分岐: 【1】 [ CSelf26[Y] が 10 以上 ]の場合↓
||■ピクチャ移動:CSelf0[ピクチャ番号] X:CSelf25[X] Y:10 / 0(0)フレーム /
        パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
||■
|-◇分岐: 【2】 [ CSelf26[Y] が CSelf24[スクロール限界Y] 以下 ]の場合↓
||■ピクチャ移動:CSelf0[ピクチャ番号] X:CSelf25[X] Y:CSelf24[スクロール限界Y] / 0(0)フレーム /
        パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
||■
|◇分岐終了◇
|■
◇分岐終了◇

★注意点1

保存できる数を「50」よりも増やす事はできますが、
システムDB[4:文字列変数名]のデータ数を大量に増やすと、
イベントコマンドの文字列変数に関する設定画面で処理落ちが発生します。
★注意点2

上記の処理は、ある程度は正常に文字列が保存されますが、
【文章の表示】【選択肢】の設定状況によっては、うまく保存されない事があります。

例えば【選択肢の強制中断】を実行したり、
ループ処理の中で何度も同じ選択肢を表示したりすると、正常に読み取る事ができません。

通常この手の処理を作る時には、【文章の表示】【選択肢】を実行しているイベントの方で、
文字列が確実に保存されるような設定を行う事が多いです。

例えば選択肢で選択した項目が上手く保存できない場合は、
選択肢を選択した時に【イベントの挿入】コモンイベント[過去の文章表示を確認]を呼び出し、
選択肢で選んだ項目が確実に保存されるように設定する感じです。

並列実行のコモンイベントだけでどんな状況でも万能に処理させるのは、中々難しいと言えます。


▲トップへ戻る▲


  
■「8000000+X」(乱数作成)

変数呼び出し値「8000000+X」は「0」から指定した範囲までの乱数を出力する時に使います。



乱数の出力範囲が[0〜99]の場合の変数呼び出し値は…
+8000000
+99 (最大値)
の設定によって「8000099」になります。



変数呼び出し値「8000000+X」はあまり使われる事がありません。

乱数の設定は、通常では【変数操作】にある乱数の設定を使います。

▼【変数操作】による乱数[0〜99]の設定(真ん中の設定を「〜」にすると乱数の設定になる)



変数呼び出し値「8000000+X」を使った場合、乱数の設定範囲が必ず「0」からになります。

そのため、例えば乱数[6〜35]を設定する場合は、変数呼び出し値を[8000029]にして、
さらに「加算6」を設定し、乱数の範囲が[6〜35]になるように設定する必要があります。


しかしこれなら…

【変数操作】で設定した方が分かりやすく、
さらに「セルフ変数[1] 〜 セルフ変数[2]」などと乱数の範囲を変数で設定する場合は、
変数呼び出し値「8000000+X」で設定するのはかなり難しくなります。


  
▼【使用例】移動頻度をランダム化する

マップイベントの移動ルートの設定で「カスタム」にすると「ルート」の設定ができるようになります。



▼ルートの設定画面


ここで移動設定などを行い、「動作を繰り返す」にチェックを入れると同じ動きを何度も実行するようになりますが、
その実行するタイミングはいつも同じタイミングになります。

そこで「フレームだけウェイト」の設定に変数呼び出し値「8000000+X」を設定し、
60〜180フレーム(1〜3秒)」のウェイトがランダムで実行するように設定します。

動作設定は…
ランダム移動
ウェイト60フレーム
ウェイト乱数[0〜120]フレーム
と設定します。


ウェイト60フレーム」の設定は、
右上の数値を設定する所に「60」を設定してから「フレームだけウェイト」をクリックしてください。




ウェイト乱数[0〜120]フレーム」の設定は、
右上に「8000120」を設定してから「フレームだけウェイト」をクリックしてください。




移動頻度を「0:毎フレーム」にして、設定完了です。




▲トップへ戻る▲


  
■「9000000+X」(システム変数)

変数呼び出し値「9000000+X」はシステム変数の値を呼び出す時に使います。



システム変数[108:[読]現フレームのコマンド処理数]の変数呼び出し値は…
+9000000
+108
の設定によって「9000108」になります。



システム変数は、ウディタの内部処理の情報を取得&設定する時に使います。

例えばシステム変数[13:イベント実行中?(1=ON)]の場合は、
並列実行以外の何らかのイベント([決定キーで実行]や[自動実行]など)が実行している時に「1」になります。

このシステム変数[13:イベント実行中?(1=ON)]の情報を使う事で、
マップイベントと会話している時や戦闘中などの時には、
キャンセルキーを押してもメニュー画面が表示されないようにする事ができます。

他にもシステム変数[77〜82]を使うと現在の年月日時分秒を取得する事ができるなど、
様々な補助機能が用意されています。


  
▼【使用例】オリジナルのマウスポインタを表示

ピクチャをマウスポインタの位置に表示し、オリジナルのマウスポインタを表示します。



ピクチャの表示位置にはシステム変数[71:マウスX位置][72:マウスY位置]の変数呼び出し値を設定します。



イベント設定では、システム変数[74:マウスポインタ表示する?(1=ON)]]を設定して、
ゲーム画面上に通常のマウスポインタが表示されないように設定します。

【イベントコード表示】

起動条件:並列実行

■変数操作: Sys74:マウスポインタ表示する?(1=ON) = 0 + 0
■ピクチャ表示:1 [中心]文字列[+] X:Sys71:マウスX位置 Y:Sys72:マウスY位置 / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]


  
▼【使用例】ゲーム画面の下に向かって徐々に暗くする

ゲーム画面の下に向かって暗くなるピクチャを表示します。

通常 ピクチャを表示

メニュー画面の背景にも似たような表示があります。




画面をうす暗くする方法として、イベントコマンド【色調変更】の設定があります。



【色調変更】の場合は、画面全体を同じ色でうす暗くしますが、
ピクチャの場合は画像で表示する事ができるため、
画面の下に向かって徐々に暗くする」と言った表示も可能になります。



ピクチャ表示の生成サイズの設定には、
システム変数[116:[読]画面サイズX][117:[読]画面サイズY]の変数呼び出し値を設定します。
これにより、ゲーム画面のサイズと同じサイズの画像を表示する事ができます。

ファイル名は「<GRADY-888-111>」を設定します。

▼ピクチャの設定画面


【イベントコード表示】

■ピクチャ表示:1 [左上]ウィンドウ「<GRADY-888-111>」
       サイズ[Sys116:[読]画面サイズX,Sys117:[読]画面サイズY] X:0 Y:0 / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]


▲トップへ戻る▲


  
■「9900000+X」(システム文字列)

変数呼び出し値「9900000+X」はシステム文字列の文字列を呼び出す時に使います。



システム文字列[25:[読]文章表示の内容]]の変数呼び出し値は…
+9900000
+25
の設定によって「9900025」になります。



システム文字列は、ウディタの内部処理の情報を取得&設定する時に使います。

例えばシステム文字列[25:[読]文章表示の内容]]【文章の表示】で最後に表示された文字列が保存されます。



システム文字列は…

と言ったように、変数呼び出し値「9900000+X」を使わずに普通に設定して使用する事が多く、
変数呼び出し値「9900000+X」で設定する事がありません。

無理に設定すれば…
【イベントコード表示】

■文章選択肢:/ 【1】項目A / 【2】項目B / 【3】項目C / 【4】項目D
-◇選択肢:【1】 項目A の場合↓
|■
-◇選択肢:【2】 項目B の場合↓
|■
-◇選択肢:【3】 項目C の場合↓
|■
-◇選択肢:【4】 項目D の場合↓
|■
◇分岐終了◇
■変数操作: このEvのセルフ変数0 = Sys20:選択肢カーソル現位置(0,1,2..非選択時:-1) + 9900040
■文字列操作:S0[[サンプル]一時文字列] = 位置[このEvのセルフ変数0]の文字列
■文章:選択した文字【\s[0]】
と言ったように、システム文字列[40〜49](呼び出し値「9900040〜9900049」)から選択肢の項目の文字列を読み取り、
指定した文字列変数へ代入する事ができますが、これなら…
【イベントコード表示】

■文章選択肢:/ 【1】項目A / 【2】項目B / 【3】項目C / 【4】項目D
-◇選択肢:【1】 項目A の場合↓
|■文字列操作:S0[[サンプル]一時文字列] = SysS40[[読]選択肢1の内容]
|■
-◇選択肢:【2】 項目B の場合↓
|■文字列操作:S0[[サンプル]一時文字列] = SysS41[[読]選択肢2の内容]
|■
-◇選択肢:【3】 項目C の場合↓
|■文字列操作:S0[[サンプル]一時文字列] = SysS42[[読]選択肢3の内容]
|■
-◇選択肢:【4】 項目D の場合↓
|■文字列操作:S0[[サンプル]一時文字列] = SysS43[[読]選択肢4の内容]
|■
◇分岐終了◇
■文章:選択した文字【\s[0]】
と設定したり…
【イベントコード表示】

■文章選択肢:/ 【1】項目A / 【2】項目B / 【3】項目C / 【4】項目D
-◇選択肢:【1】 項目A の場合↓
|■文章:選択した文字【項目A】
|■
-◇選択肢:【2】 項目B の場合↓
|■文章:選択した文字【項目B】
|■
-◇選択肢:【3】 項目C の場合↓
|■文章:選択した文字【項目C】
|■
-◇選択肢:【4】 項目D の場合↓
|■文章:選択した文字【項目D】
|■
◇分岐終了◇
と設定した方が分かりやすいので、無理に変数呼び出し値「9900000+X」を使う必要がありません。

変数呼び出し値「9900000+X」を使った有効的な利用方法が思い付かないため、
変数呼び出し値「9900000+X」の使用例はありません。


▲トップへ戻る▲


  
■「9180000+10*Y+X」(主人公と仲間の設定)

変数呼び出し値「9180000+10*Y+X」は主人公と仲間の設定を呼び出す時に使います。



呼び出し値の[一の位]は呼び出したい内容を設定します。

一の位 処理名 取得 or 設定の内容
0 マップX座標(通常) 1マス単位
値を設定した場合は、その座標まですり抜け移動
1 マップY座標(通常) 1マス単位
値を設定した場合は、その座標まですり抜け移動
2 マップX座標(精密) 0.5マス単位
値を設定した場合は、その座標まですり抜け移動
3 マップY座標(精密) 0.5マス単位
値を設定した場合は、その座標まですり抜け移動
4 キャラの高さ 値が増えると画面上部へと浮く(ピクセル単位)
5 キャラの影番号 システムDB[9:キャラ影グラフィック名]のデータID
6 キャラの方向
7:左上 8:上 9:右上
4:左 5:下 6:右
1:左下 2:下 3:右下
7 ピクセル補正値X ピクセル単位でX表示位置を補正
8 ピクセル補正値Y ピクセル単位でY表示位置を補正
9 キャラのチップ画像 画像ファイルのアドレス(文字列)

例えば「5(影番号)」の変数呼び出し値は…
+9100000
+120 (マップイベントID[12]×10)
+5
の設定によって「9180005」になります。



変数呼び出し値「9180000+10*Y+X」の大きな特徴は、情報の取得だけでなく、情報の設定も可能な所です。

例えば主人公のマップX座標(通常)の変数呼び出し値は「9180000」ですが、
これを使って主人公の現在のX座標(通常)を取得するだけでなく、
主人公の位置を指定したX座標(通常)へ移動させる事もできます。

▼X位置「10」へ移動
【イベントコード表示】

■変数操作: このEvのセルフ変数0 = 9180000 + 0
■変数操作: V[このEvのセルフ変数0] = 10 + 0

移動はすり抜け状態であり、強制的にその座標へ移動します。

主人公を対象にした【動作指定】が実行していても、強制的に移動します。

欠点としては、主人公が移動しても主人公の後ろから仲間が付いてこない点と足踏み無しで移動する点です。


  
▼【使用例】主人公の座標を取得

主人公の座標の取得は【変数操作+】でも可能です。




しかし変数呼び出し値「9180000+10*Y+X」を使うと、
例えば「X座標+2」と言った計算を1個のイベントコマンドでまとめて設定する事ができます。



【イベントコード表示】

■変数操作: このEvのセルフ変数0 = 主人公のX座標(マップ) + 2


  
▼【使用例】主人公と仲間を浮遊させる

主人公と仲間を常に高さ[0〜7]の間で浮遊させます。



高さを変える処理では、高さの下限を[0〜2]、高さの上限を[6〜7]のランダムにして、
上下の動きが他のキャラとシンクロしないようにします。

なお、今回の処理は高速で処理する必要が無いので、
ウェイト:1フレーム」を設定して処理落ちの軽減対策を行っています。

そのため、処理としては「3回に1回の処理で高さを変更する」になっていますが、
時間にすると「6フレームに1回の割合で高さを変更する」になっています。

【イベントコード表示】【コモン出力ファイル】

■コモンイベント「主人公と仲間の浮遊」

起動条件:並列実行(常時)

入力の数 / 結果を返す
設定 名前 初期値 特殊指定
数値1 浮遊処理 1 [1]浮遊開始
[0]浮遊終了

■ウェイト:1 フレーム
■変数操作: CSelf13[変更時間] += 1 + 0
■変数操作: CSelf13[変更時間] %= 3 + 0
■条件分岐(変数): 【1】 CSelf13[変更時間] が 0 以外
-◇分岐: 【1】 [ CSelf13[変更時間] が 0 以外 ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf0[浮遊処理] が 0 と同じ
-◇分岐: 【1】 [ CSelf0[浮遊処理] が 0 と同じ ]の場合↓
|■変数操作: CSelf20[主:上へ0 下へ1]〜CSelf25[仲5:上へ0 下へ1] = 1 + 0
|■
◇分岐終了◇
■変数操作: CSelf10[変数 高さ] = 9180004 + 0
■変数操作: CSelf11[変数 上下] = 1600020 + 0
■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
|■変数操作: CSelf15[高さ] = V[CSelf10[変数 高さ]] + 0
|■変数操作: CSelf16[上下] = V[CSelf11[変数 上下]] + 0
|■条件分岐(変数): 【1】 CSelf16[上下] が 0 と同じ
|-◇分岐: 【1】 [ CSelf16[上下] が 0 と同じ ]の場合↓
||■変数操作: CSelf15[高さ] += 1 + 0
||■変数操作: CSelf17[乱数 高さ制限] = 6 〜 7
||■条件分岐(変数): 【1】 CSelf15[高さ] が CSelf17[乱数 高さ制限] 以上
||-◇分岐: 【1】 [ CSelf15[高さ] が CSelf17[乱数 高さ制限] 以上 ]の場合↓
|||■変数操作: V[CSelf11[変数 上下]] = 1 + 0
|||■
||◇分岐終了◇
||■
|-◇上記以外
||■変数操作: CSelf15[高さ] -= 1 + 0
||■変数操作: CSelf17[乱数 高さ制限] = 0 〜 2
||■変数操作: CSelf17[乱数 高さ制限] *= CSelf0[地面0 浮遊1] + 0
||■条件分岐(変数): 【1】 CSelf15[高さ] が CSelf17[乱数 高さ制限] 以下
||-◇分岐: 【1】 [ CSelf15[高さ] が CSelf17[乱数 高さ制限] 以下 ]の場合↓
|||■変数操作: V[CSelf11[変数 上下]] = 0 + 0
|||■変数操作: CSelf15[高さ] 下限= 0 + 0
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■変数操作: V[CSelf10[変数 高さ]] = CSelf15[高さ] + 0
|■変数操作: CSelf10[変数 高さ] += 10 + 0
|■変数操作: CSelf11[変数 上下] += 1 + 0
|■
◇ループここまで◇◇
■変数操作: CSelf18[6−パーティ人数] = 6 - 可変DB(18,4,0)[現在パーティー人数 数値 ]
■回数付きループ [ CSelf18[6−パーティ人数] ]回
|■変数操作: V[CSelf10[変数 高さ]] = 0 + 0
|■変数操作: V[CSelf11[変数 上下]] = 0 + 0
|■変数操作: CSelf10[変数 高さ] += 10 + 0
|■変数操作: CSelf11[変数 上下] += 1 + 0
|■
◇ループここまで◇◇



浮遊させる場合は、コモンイベント[主人公と仲間の浮遊]を「浮遊処理=[1]浮遊実行」で呼び出してください。



【イベントコード表示】

■イベントの挿入[名]: ["主人公と仲間の浮遊"] <コモンEv 215> / 1:浮遊開始



浮遊をやめる場合は、コモンイベント[主人公と仲間の浮遊]を「浮遊処理=[0]浮遊終了」で呼び出してください。

【イベントコード表示】

■イベントの挿入[名]: ["主人公と仲間の浮遊"] <コモンEv 215> / 0:浮遊終了

浮遊をやめると、ゆっくりと地面に着地します。


▲トップへ戻る▲


  
■「9100000+10*Y+X」(指定したマップイベントの設定)

変数呼び出し値「9100000+10*Y+X」は指定したマップイベントの設定を呼び出す時に使います。



呼び出し値の[一の位]は呼び出したい内容によって異なります。

一の位 処理名 取得 or 設定の内容
0 マップX座標(通常) 1マス単位
入力した場合は、その座標まですり抜け移動
1 マップY座標(通常) 1マス単位
入力した場合は、その座標まですり抜け移動
2 マップX座標(精密) 0.5マス単位
入力した場合は、その座標まですり抜け移動
3 マップY座標(精密) 0.5マス単位
入力した場合は、その座標まですり抜け移動
4 キャラの高さ 値が増えると画面上部へと浮く(ピクセル単位)
5 キャラの影番号 システムDB[9:キャラ影グラフィック名]のデータID
6 キャラの方向
7:左上 8:上 9:右上
4:左 5:下 6:右
1:左下 2:下 3:右下
7 ピクセル補正値X ピクセル単位でX表示位置を補正
8 ピクセル補正値Y ピクセル単位でY表示位置を補正
9 キャラのチップ画像 画像ファイルのアドレス(文字列)

マップイベント[12]の「5(影番号)」の変数呼び出し値は…
+9100000
+120 (マップイベントID[12]×10)
+5
の設定によって「9100125」になります。


  
▼【使用例】主人公とマップイベントとの座標の差を算出

主人公のマス座標と指定したマップイベント(イベントID[14])との距離(マス数)を算出します。



【イベントコード表示】

■変数操作: このEvのセルフ変数0 絶対値= 主人公のX座標(マップ) - Ev14のX座標(マップ)
■変数操作: このEvのセルフ変数1 絶対値= 主人公のY座標(マップ) - Ev14のY座標(マップ)
■変数操作: このEvのセルフ変数0 += このEvのセルフ変数1 + 0
■文章:距離は「\self[0]」マスです。



さらにイベントID[14]の高さを一時的に「高さ10」にする場合の設定例は以下のとおりです。

【イベントコード表示】

■変数操作: このEvのセルフ変数0 絶対値= 主人公のX座標(マップ) - Ev14のX座標(マップ)
■変数操作: このEvのセルフ変数1 絶対値= 主人公のY座標(マップ) - Ev14のY座標(マップ)
■変数操作: このEvのセルフ変数0 += このEvのセルフ変数1 + 0
■変数操作: このEvのセルフ変数2 = 9100144 + 0
■変数操作: V[このEvのセルフ変数2] = 10 + 0
■文章:距離は「\self[0]」マスです。
■変数操作: V[このEvのセルフ変数2] = 0 + 0

▼動作イメージ



  
▼【使用例】マップイベントを浮遊させる

指定したマップイベントを常に高さ[0〜7]の間で浮遊させます。

今回はイベントID[11]イベントID[14]を浮遊させます。





浮遊させる処理は【動作指定】を使ってもできます。



しかし動作指定の場合は、 会話中は【動作指定】が一時停止して上下移動が止まったり、
上下移動のランダム設定が難しいなどの問題があります。

今回設定する変数呼び出し値「9100000+10*Y+X」を使った浮遊処理の場合は、
マップイベントと会話を行っている時にも上下移動が続き、また上下の移動量もランダムに変化します。



上下に高さを変える処理では、高さの下限を[0〜2]、高さの上限を[6〜7]のランダムにして、
同じ動きの繰り返しにならないようにしています。

高さを変えるタイミングは、
イベントID[11]は「6フレームに1回
イベントID[14]は「8フレームに1回」としています。

なお、今回の処理は高速で処理する必要が無いので、「ウェイト:1フレーム」を設定して処理落ちの軽減対策を行っています。

そのため、「6フレームに1回」の処理は、実際には「3回に1回の処理で高さを変更する」になっています。



マップ内に浮遊処理用のマップイベントを設定してください。

マップイベントの設定場所は、壁や水などの移動不可のマスが良いでしょう。

マップイベントは1個の設定で、複数のマップイベントを浮遊させる事ができます。

浮遊に必要な情報(「高さを変える時間」と「上昇か下降か」)は、
その浮遊させるマップイベントのセルフ変数[8〜9]に保存します。

【イベントコード表示】

■マップイベント「浮遊処理」

起動条件:並列実行

▼ セルフ【0】イベントID
▼ セルフ【1】高さ
▼ セルフ【2】高さ変更時間
▼ セルフ【3】上昇=0 下降=1
▼ セルフ【4】乱数 高さ制限
▼ セルフ【7】変数呼び出し値「高さ」
▼ セルフ【8】変数呼び出し値「指定マップイベントのセルフ【8】」
▼ セルフ【9】変数呼び出し値「指定マップイベントのセルフ【9】」
▼ ■■■■■■■■■■■■■■■■■■■■

■変数操作: このEvのセルフ変数0 = 11 + 0
■変数操作: このEvのセルフ変数7〜このEvのセルフ変数9 = このEvのセルフ変数0 * 10
■変数操作: このEvのセルフ変数7 += 9100004 + 0
■変数操作: このEvのセルフ変数8 += 1000008 + 0
■変数操作: このEvのセルフ変数9 += 1000009 + 0
■変数操作: このEvのセルフ変数1 = V[このEvのセルフ変数7] + 0
■変数操作: このEvのセルフ変数2 = V[このEvのセルフ変数8] + 0
■変数操作: このEvのセルフ変数3 = V[このEvのセルフ変数9] + 0
■変数操作: このEvのセルフ変数2 += 1 + 0
■変数操作: このEvのセルフ変数2 %= 3 + 0
■変数操作: V[このEvのセルフ変数8] = このEvのセルフ変数2 + 0
■条件分岐(変数): 【1】 このEvのセルフ変数2 が 0 と同じ
-◇分岐: 【1】 [ このEvのセルフ変数2 が 0 と同じ ]の場合↓
|■条件分岐(変数): 【1】 このEvのセルフ変数3 が 0 と同じ
|-◇分岐: 【1】 [ このEvのセルフ変数3 が 0 と同じ ]の場合↓
||■変数操作: このEvのセルフ変数1 += 1 + 0
||■変数操作: このEvのセルフ変数4 = 6 〜 7
||■条件分岐(変数): 【1】 このEvのセルフ変数1 が このEvのセルフ変数4 以上
||-◇分岐: 【1】 [ このEvのセルフ変数1 が このEvのセルフ変数4 以上 ]の場合↓
|||■変数操作: V[このEvのセルフ変数9] = 1 + 0
|||■
||◇分岐終了◇
||■
|-◇上記以外
||■変数操作: このEvのセルフ変数1 -= 1 + 0
||■変数操作: このEvのセルフ変数4 = 0 〜 2
||■条件分岐(変数): 【1】 このEvのセルフ変数1 が このEvのセルフ変数4 以下
||-◇分岐: 【1】 [ このEvのセルフ変数1 が このEvのセルフ変数4 以下 ]の場合↓
|||■変数操作: V[このEvのセルフ変数9] = 0 + 0
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■変数操作: V[このEvのセルフ変数7] = このEvのセルフ変数1 + 0
|■
◇分岐終了◇
▼ ■■■■■■■■■■■■■■■■■■■■
■変数操作: このEvのセルフ変数0 = 14 + 0
■変数操作: このEvのセルフ変数7〜このEvのセルフ変数9 = このEvのセルフ変数0 * 10
■変数操作: このEvのセルフ変数7 += 9100004 + 0
■変数操作: このEvのセルフ変数8 += 1000008 + 0
■変数操作: このEvのセルフ変数9 += 1000009 + 0
■変数操作: このEvのセルフ変数1 = V[このEvのセルフ変数7] + 0
■変数操作: このEvのセルフ変数2 = V[このEvのセルフ変数8] + 0
■変数操作: このEvのセルフ変数3 = V[このEvのセルフ変数9] + 0
■変数操作: このEvのセルフ変数2 += 1 + 0
■変数操作: このEvのセルフ変数2 %= 4 + 0
■変数操作: V[このEvのセルフ変数8] = このEvのセルフ変数2 + 0
■条件分岐(変数): 【1】 このEvのセルフ変数2 が 0 と同じ
-◇分岐: 【1】 [ このEvのセルフ変数2 が 0 と同じ ]の場合↓
|■条件分岐(変数): 【1】 このEvのセルフ変数3 が 0 と同じ
|-◇分岐: 【1】 [ このEvのセルフ変数3 が 0 と同じ ]の場合↓
||■変数操作: このEvのセルフ変数1 += 1 + 0
||■変数操作: このEvのセルフ変数4 = 6 〜 7
||■条件分岐(変数): 【1】 このEvのセルフ変数1 が このEvのセルフ変数4 以上
||-◇分岐: 【1】 [ このEvのセルフ変数1 が このEvのセルフ変数4 以上 ]の場合↓
|||■変数操作: V[このEvのセルフ変数9] = 1 + 0
|||■
||◇分岐終了◇
||■
|-◇上記以外
||■変数操作: このEvのセルフ変数1 -= 1 + 0
||■変数操作: このEvのセルフ変数4 = 0 〜 2
||■条件分岐(変数): 【1】 このEvのセルフ変数1 が このEvのセルフ変数4 以下
||-◇分岐: 【1】 [ このEvのセルフ変数1 が このEvのセルフ変数4 以下 ]の場合↓
|||■変数操作: V[このEvのセルフ変数9] = 0 + 0
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■変数操作: V[このEvのセルフ変数7] = このEvのセルフ変数1 + 0
|■
◇分岐終了◇
▼ ■■■■■■■■■■■■■■■■■■■■
■ウェイト:1 フレーム


▲トップへ戻る▲


  
■「9190000+X」(実行中のマップイベントの設定)

変数呼び出し値「9190000+X」は実行中のマップイベントの設定を呼び出す時に使います。



呼び出し値の[一の位]は呼び出したい内容によって異なります。

一の位 処理名 取得 or 設定の内容
0 マップX座標(通常) 通常の1マス単位
入力した場合は、その座標まですり抜け移動
1 マップY座標(通常) 通常の1マス単位
入力した場合は、その座標まですり抜け移動
2 マップX座標(精密) 通常の1マスの1/2単位
入力した場合は、その座標まですり抜け移動
3 マップY座標(精密) 通常の1マスの1/2単位
入力した場合は、その座標まですり抜け移動
4 キャラの高さ 値が増えると画面上部へと浮く(ピクセル単位)
5 キャラの影番号 システムDB[9:キャラ影グラフィック名]のデータID
6 キャラの方向
7:左上 8:上 9:右上
4:左 5:下 6:右
1:左下 2:下 3:右下
7 ピクセル補正値X ピクセル単位でX表示位置を補正
8 ピクセル補正値Y ピクセル単位でY表示位置を補正
9 キャラのチップ画像 画像ファイルのアドレス(文字列)

実行中のマップイベントの「5(影番号)」の変数呼び出し値は…
+9190000
+5
の設定によって「9190005」になります。


  
▼【使用例】主人公の画像を調べたマップイベントと同じ画像にする

主人公のグラフィックを調べたマップイベントと同じグラフィックにします。



【イベントコード表示】

■マップイベント

起動条件:決定キーで実行

■変数操作: このEvのセルフ変数0 = 9180009 + 0
■文字列操作:V[このEvのセルフ変数0] = 位置[このEvのキャラチップ画像]の文字列

このグラフィック変更は一時的なものであり、「メンバーの増減」が行われると元のグラフィックに戻ります。



もしも「メンバーの増減」が行われても、変更したグラフィックをそのままにする場合は、
可変DB[主人公ステータス]項目[2:歩行グラフィック画像]の設定も変えてください。

【イベントコード表示】

■マップイベント

起動条件:決定キーで実行

■変数操作: このEvのセルフ変数0 = 9180009 + 0
■文字列操作:V[このEvのセルフ変数0] = 位置[このEvのキャラチップ画像]の文字列
■DB読込(可変): このEvのセルフ変数1 = 可変DB[ パーティー情報 : 0 : 1 ] (6 : メイン設定 : メンバー1)
■可変DB書込:DB[主人公ステータス:このEvのセルフ変数1:2](0:-:歩行グラフィック画像)=V[このEvのセルフ変数0]


▲トップへ戻る▲


  
■「1000000000(10AABBBBCC)」(ユーザーDB)

変数呼び出し値「1000000000(10AABBBBCC)」ユーザーDBを呼び出す時に使います。



ユーザーDB[2:アイテム]データ[4:復活の薬]項目[19:販売価格 [0=売れない]]の変数呼び出し値は…
+1000000000
+2000000 (タイプID[2]×1000000)
+400 (データID[4]×100)
+19 (項目ID[19])
の設定によって「1002000419」になります。



ユーザーDBの情報は【DB操作】を使っても取得する事ができます。

【DB操作】の方は、変数呼び出し値を準備する必要が無く、設定名などでも情報を取得する事ができる他、
DBの初期化やデータ数の取得、CSVの出入力などもできるので、
変数呼び出し値「1000000000(10AABBBBCC)」よりも使い勝手が良いです。

しかし【DB操作】情報を取得する事しかできませんが、
変数呼び出し値「1000000000(10AABBBBCC)」の場合は情報の書き換えもできます。

但しこの情報の書き換えは一時的なものであり、セーブデータをロードすると初期状態に戻ります。


  
▼【使用例】基本戦闘のBGMを変更

基本戦闘のBGMはユーザーDB[17:システム設定]項目[26:[戦闘]基本戦闘BGM]で設定します。



ユーザーDB[17:システム設定]項目[26:[戦闘]基本戦闘BGM]変数呼び出し値「1017000026」を使う事で、
基本戦闘のBGMのファイルアドレスを変える事ができます。

なお、セーブデータをロードすると元の設定に戻ってしまうため、
戦闘を行うコモンイベントの呼び出しと一緒に設定すると良いでしょう。

【イベントコード表示】

■変数操作: このEvのセルフ変数0 = 1017000026 + 0
■文字列操作:V[このEvのセルフ変数0] = "BGM/Battle01_Juno.mid"
■イベントの挿入[名]:["◇ランダムエンカウント処理 "] <コモンEv 37> / 20 / 0:オオカミx1 / -1:<なし> / -1:<なし>


  
▼【使用例】お店の商品価格を変える(一部のみ)

アイテムや武器などの価格は固定価格になっていますが、
変数呼び出し値「1000000000(10AABBBBCC)」を使うと商品の価格を変える事ができます。

今回の処理は、商品の価格を1つずつを変えていくので、商品数が少ない状態(数個程度)が対象になります。

もしもアイテム全体の価格を2割引きにしたり、「宝石商」でアイテムの売却は宝石のみにするなど、
多くのアイテムが対象になっている場合は、この下にある【使用例】お店の商品価格を変える(一括)をご覧ください。


設定例では4つのアイテムを4割引きにします。

処理の流れとしては…
【1】初期の価格をセルフ変数に保存。
【2】ユーザーDBの価格を変える。
【3】お店の処理
【4】お店の処理が終わったら、元の価格に戻す
となっています。

アイテムの初期価格は、9個のセルフ変数で最大9種類まで保存する事ができます。

10種類以上のアイテムの価格を保存する場合は、他のマップイベントのセルフ変数や予備変数などを活用してください。

【イベントコード表示】

■マップイベント

起動条件:決定キーで実行

■変数操作: このEvのセルフ変数0 = ユーザDB(2,0,19)[薬草 販売価格 [0=売れない] ] + 0
■変数操作: このEvのセルフ変数1 = ユーザDB(2,1,19)[癒しの水 販売価格 [0=売れない] ] + 0
■変数操作: このEvのセルフ変数2 = ユーザDB(2,2,19)[魔力の水 販売価格 [0=売れない] ] + 0
■変数操作: このEvのセルフ変数3 = ユーザDB(2,3,19)[エリクサー 販売価格 [0=売れない] ] + 0
■変数操作: このEvのセルフ変数9 = 1002000019 + 0
■変数操作: V[このEvのセルフ変数9] *= 60 + 0
■変数操作: V[このEvのセルフ変数9] /= 100 + 0
■変数操作: このEvのセルフ変数9 = 1002000119 + 0
■変数操作: V[このEvのセルフ変数9] *= 60 + 0
■変数操作: V[このEvのセルフ変数9] /= 100 + 0
■変数操作: このEvのセルフ変数9 = 1002000219 + 0
■変数操作: V[このEvのセルフ変数9] *= 60 + 0
■変数操作: V[このEvのセルフ変数9] /= 100 + 0
■変数操作: このEvのセルフ変数9 = 1002000319 + 0
■変数操作: V[このEvのセルフ変数9] *= 60 + 0
■変数操作: V[このEvのセルフ変数9] /= 100 + 0
■イベントの挿入: コモン33:[ 【1】 お店 初期化 ]
■イベントの挿入: コモン34:[ 【2】 お店 商品の追加 ]/1:アイテム[A]/0:薬草/-1:<なし>/-1:<なし>
■イベントの挿入: コモン34:[ 【2】 お店 商品の追加 ]/1:アイテム[A]/1:癒しの水/-1:<なし>/-1:<なし>
■イベントの挿入: コモン34:[ 【2】 お店 商品の追加 ]/1:アイテム[A]/3:エリクサー/-1:<なし>/-1:<なし>
■イベントの挿入: コモン34:[ 【2】 お店 商品の追加 ]/1:アイテム[A]/4:復活の薬/-1:<なし>/-1:<なし>
■イベントの挿入: コモン35:[ 【3】 お店処理 実行 ] / 3:売り・買い 両方
■変数操作: このEvのセルフ変数9 = 1002000019 + 0
■変数操作: V[このEvのセルフ変数9] = このEvのセルフ変数0 + 0
■変数操作: このEvのセルフ変数9 = 1002000119 + 0
■変数操作: V[このEvのセルフ変数9] = このEvのセルフ変数1 + 0
■変数操作: このEvのセルフ変数9 = 1002000219 + 0
■変数操作: V[このEvのセルフ変数9] = このEvのセルフ変数2 + 0
■変数操作: このEvのセルフ変数9 = 1002000319 + 0
■変数操作: V[このEvのセルフ変数9] = このEvのセルフ変数3 + 0

▼変更前


▼変更後(4割引き)



  
▼【使用例】お店の商品価格を変える(一括)

上記の【使用例】お店の商品価格を変える(一部のみ)では一部のアイテムの価格を変えていましたが、
今回はアイテム・武器・防具の価格を一括で処理します。

例えば全商品を2割引きにしたり、
「武器・防具屋」でアイテムの売却ができなかったり、
「宝石商」で購入と売却ができるのは「宝石のみ」にしたりと、
アイテム・武器・防具でそれぞれ一括で処理したい時に役立ちます。


まずは以下のコモンイベントを準備してください。

【イベントコード表示】【コモン出力ファイル】

■コモンイベント「価格変動」

起動条件:呼び出しのみ

入力の数 / 結果を返す
設定 名前 初期値 特殊指定
数値1 処理内容 0 0:価格複製
1:価格戻す
2:▼一括%変動
数値2 変動【種類】 7 1:アイテムのみ
2:武器のみ
4:防具のみ
3:アイテム+武器
5:アイテム+防具
6:武器+防具
7:アイテム+武器+防具
数値3 変動【%】 100  

■DB読込(ユーザ): CSelf10[データ数:アイテム] = ユーザDB[タイプアイテム(2)のデータ数]
■DB読込(ユーザ): CSelf11[データ数:武器] = ユーザDB[タイプ武器(3)のデータ数]
■DB読込(ユーザ): CSelf12[データ数:防具] = ユーザDB[タイプ防具(4)のデータ数]
■条件分岐(変数): 【1】 CSelf0[処理内容] が 0 と同じ
         【2】 CSelf0[処理内容] が 1 と同じ
-◇分岐: 【1】 [ CSelf0[処理内容] が 0 と同じ ]の場合↓
|▼ 【価格複製】アイテム・武器・防具の全価格をセルフ変数[5〜7]に保存
|■文字列操作:CSelf5[元の価格:アイテム] = ""
|■文字列操作:CSelf6[元の価格:武器] = ""
|■文字列操作:CSelf7[元の価格:防具] = ""
|■変数操作: CSelf14[データID] = 0 + 0
|■回数付きループ [ CSelf10[データ数:アイテム] ]回
||■文字列操作:CSelf5[元の価格:アイテム] += "\udb[2:\cself[14]:19]\n"
||■変数操作: CSelf14[データID] += 1 + 0
||■
|◇ループここまで◇◇
|■変数操作: CSelf14[データID] = 0 + 0
|■回数付きループ [ CSelf11[データ数:武器] ]回
||■文字列操作:CSelf6[元の価格:武器] += "\udb[3:\cself[14]:17]\n"
||■変数操作: CSelf14[データID] += 1 + 0
||■
|◇ループここまで◇◇
|■変数操作: CSelf14[データID] = 0 + 0
|■回数付きループ [ CSelf12[データ数:防具] ]回
||■文字列操作:CSelf7[元の価格:防具] += "\udb[4:\cself[14]:18]\n"
||■変数操作: CSelf14[データID] += 1 + 0
||■
|◇ループここまで◇◇
|■イベント処理中断
|■
-◇分岐: 【2】 [ CSelf0[処理内容] が 1 と同じ ]の場合↓
|▼ 【価格戻す】セルフ変数[5〜7]の情報を基にアイテム・武器・防具の全価格を元に戻す
|■変数操作: CSelf14[データID] = 0 + 0
|■変数操作: CSelf15[変数呼び出し値] = 1002000019 + 0
|■回数付きループ [ CSelf10[データ数:アイテム] ]回
||■変数操作: V[CSelf15[変数呼び出し値]] = CSelf5[元の価格:アイテム] + 0
||■文字列操作:CSelf8 =<上1行切出> CSelf5[元の価格:アイテム]
||■変数操作: CSelf15[変数呼び出し値] += 100 + 0
||■
|◇ループここまで◇◇
|■変数操作: CSelf15[変数呼び出し値] = 1003000017 + 0
|■回数付きループ [ CSelf11[データ数:武器] ]回
||■変数操作: V[CSelf15[変数呼び出し値]] = CSelf6[元の価格:武器] + 0
||■文字列操作:CSelf8 =<上1行切出> CSelf6[元の価格:武器]
||■変数操作: CSelf15[変数呼び出し値] += 100 + 0
||■
|◇ループここまで◇◇
|■変数操作: CSelf15[変数呼び出し値] = 1004000018 + 0
|■回数付きループ [ CSelf12[データ数:防具] ]回
||■変数操作: V[CSelf15[変数呼び出し値]] = CSelf7[元の価格:防具] + 0
||■文字列操作:CSelf8 =<上1行切出> CSelf7[元の価格:防具]
||■変数操作: CSelf15[変数呼び出し値] += 100 + 0
||■
|◇ループここまで◇◇
|■イベント処理中断
|■
◇分岐終了◇
▼ 【価格%変動】指定したパーセントの価格にします(小数点以下切り捨て)
■条件分岐(変数): 【1】 CSelf1[変動:種類] が 1 のビットを満たす
-◇分岐: 【1】 [ CSelf1[変動:種類] が 1 のビットを満たす ]の場合↓
|▼ アイテムの価格を変動
|■変数操作: CSelf15[変数呼び出し値] = 1002000019 + 0
|■回数付きループ [ CSelf10[データ数:アイテム] ]回
||■変数操作: V[CSelf15[変数呼び出し値]] *= CSelf2[変動:%] + 0
||■変数操作: V[CSelf15[変数呼び出し値]] /= 100 + 0
||■変数操作: CSelf15[変数呼び出し値] += 100 + 0
||■
|◇ループここまで◇◇
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf1[変動:種類] が 2 のビットを満たす
-◇分岐: 【1】 [ CSelf1[変動:種類] が 2 のビットを満たす ]の場合↓
|▼ 武器の価格を変動
|■変数操作: CSelf15[変数呼び出し値] = 1003000017 + 0
|■回数付きループ [ CSelf11[データ数:武器] ]回
||■変数操作: V[CSelf15[変数呼び出し値]] *= CSelf2[変動:%] + 0
||■変数操作: V[CSelf15[変数呼び出し値]] /= 100 + 0
||■変数操作: CSelf15[変数呼び出し値] += 100 + 0
||■
|◇ループここまで◇◇
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf1[変動:種類] が 4 のビットを満たす
-◇分岐: 【1】 [ CSelf1[変動:種類] が 4 のビットを満たす ]の場合↓
|▼ 防具の価格を変動
|■変数操作: CSelf15[変数呼び出し値] = 1004000018 + 0
|■回数付きループ [ CSelf12[データ数:防具] ]回
||■変数操作: V[CSelf15[変数呼び出し値]] *= CSelf2[変動:%] + 0
||■変数操作: V[CSelf15[変数呼び出し値]] /= 100 + 0
||■変数操作: CSelf15[変数呼び出し値] += 100 + 0
||■
|◇ループここまで◇◇
|■
◇分岐終了◇


お店のマップイベントでは、お店用のコモンイベントを呼び出す前に、
まずコモンイベント[価格変動]の「価格複製」で呼び出してください。
これで現在の価格がコモンイベントのセルフ変数に保存されます。

全体の価格を一括で変えたい時にはコモンイベント[価格変動]の「▼一括%変動」で、
変動したい種類(アイテム・武器・防具)と変動率(2割引きの場合は「80」)を設定してください。
変動率を「0」にすると「売却不可」になります。

価格の設定を変えたら、通常通りにお店用のイベントを設定してください。

お店用のイベントを設定しましたら、
最後にコモンイベント[価格変動]の「価格戻す」を呼び出して価格を元に戻してください。

なおコモンイベント[価格変動]の設定にて、処理内容が「価格複製」と「価格戻す」の場合は、
変動【種類】」と「変動【%】」の設定は何も作用しないので、そのまま気にせず設定してください。

▼全体を2割引き(定価の80%)にする場合
【イベントコード表示】

■マップイベント

起動条件:決定キーで実行

■イベントの挿入[名]: ["価格変動"] <コモンEv 218> / 0:価格複製 / 7:アイテム+武器+防具 / 100
■イベントの挿入[名]: ["価格変動"] <コモンEv 218> / 2:▼一括%変動 / 7:アイテム+武器+防具 / 80
■イベントの挿入: コモン33:[【1】お店 初期化 ]
■イベントの挿入: コモン34:[【2】お店 商品の追加 ] / 1:アイテム[A]/0:薬草 /-1:<なし>/-1:<なし>
■イベントの挿入: コモン34:[【2】お店 商品の追加 ] / 1:アイテム[A]/1:癒しの水/-1:<なし>/-1:<なし>
■イベントの挿入: コモン34:[【2】お店 商品の追加 ] / 1:アイテム[A]/3:エリクサー/-1:<なし>/-1:<なし>
■イベントの挿入: コモン34:[【2】お店 商品の追加 ] / 1:アイテム[A]/4:復活の薬/-1:<なし>/-1:<なし>
■イベントの挿入: コモン35:[【3】お店処理 実行 ] / 3:売り・買い 両方
■イベントの挿入[名]: ["価格変動"] <コモンEv 218> / 1:価格戻す / 7:アイテム+武器+防具 / 100

▼巻物の売買しかできない場合
【イベントコード表示】

■マップイベント

起動条件:決定キーで実行

■イベントの挿入[名]: ["価格変動"] <コモンEv 215> / 0:価格複製 / 7:アイテム+武器+防具 / 100
■イベントの挿入[名]: ["価格変動"] <コモンEv 215> / 2:▼一括%変動 / 7:アイテム+武器+防具 / 0
■変数操作: このEvのセルフ変数9 = 1002000719 + 0
■変数操作: V[このEvのセルフ変数9] = 100 + 0
■変数操作: このEvのセルフ変数9 = 1002000819 + 0
■変数操作: V[このEvのセルフ変数9] = 400 + 0
■変数操作: このEvのセルフ変数9 = 1002000919 + 0
■変数操作: V[このEvのセルフ変数9] = 700 + 0
■変数操作: このEvのセルフ変数9 = 1002002219 + 0
■変数操作: V[このEvのセルフ変数9] = 150 + 0
■イベントの挿入:コモン33:[【1】お店 初期化 ]
■イベントの挿入:コモン34:[【2】お店 商品の追加]/1:アイテム[A]/22:ヒールの巻物/-1:<なし>/-1:<なし>
■イベントの挿入:コモン34:[【2】お店 商品の追加]/1:アイテム[A]/8:癒しの雨の巻物/-1:<なし>/-1:<なし>
■イベントの挿入:コモン34:[【2】お店 商品の追加]/1:アイテム[A]/7:炎の巻物/-1:<なし>/-1:<なし>
■イベントの挿入:コモン34:[【2】お店 商品の追加]/1:アイテム[A]/9:聖なる裁きの巻物/-1:<なし>/-1:<なし>
■イベントの挿入:コモン35:[【3】お店処理 実行] / 3:売り・買い 両方
■イベントの挿入[名]: ["価格変動"] <コモンEv 215> / 1:価格戻す / 7:アイテム+武器+防具 / 100


▲トップへ戻る▲


  
■「1100000000(11AABBBBCC)」(可変DB)

変数呼び出し値「1100000000(11AABBBBCC)」可変DBを呼び出す時に使います。



可変DB[18:基本システム用変数]データ[90:[Lvup]習得技能[文字列]]項目[1:文字列]の変数呼び出し値は…
+1100000000
+18000000 (タイプID[18]×1000000)
+9000 (データID[90]×100)
+1 (項目ID[1])
の設定によって「1118009001」になります。



可変DBの情報は【DB操作】を使っても取得する事ができます。

【DB操作】の場合は、変数呼び出し値を準備する必要が無く、データ名や項目名でも情報を取得する事ができる他、
DBの初期化やデータ数の取得、データの並び替え、CSVの出入力などもできるので、
変数呼び出し値「1100000000(11AABBBBCC)」よりも使い勝手が良いです。

ただ【回数付きループ】の回数に直接可変DBの数値で設定するような場面では、
この変数呼び出し値「1100000000(11AABBBBCC)」が必要になります。


  
▼【使用例】回数付きループの回数をパーティー人数で設定

パーティー人数は、可変DB[18:基本システム用変数]データ[4:現在パーティー人数]に保存されています。
そのため、変数呼び出し値は「1118000400」になります。



【イベントコード表示】

■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
|■
◇ループここまで◇◇


▲トップへ戻る▲


  
■「1300000000(13AABBBBCC)」(システムDB)

変数呼び出し値「1300000000(11AABBBBCC)」システムDBを呼び出す時に使います。



システムDB[12:文字色]データ[13:[Sys]ルビ用文字色]項目[2:青(0-255)]の変数呼び出し値は…
+1300000000
+12000000 (タイプID[12]×1000000)
+1300 (データID[13]×100)
+2 (項目ID[2])
の設定によって「1312001302」になります。



システムDBの情報は【DB操作】を使っても取得する事ができます。

【DB操作】の方は、変数呼び出し値を準備する必要が無く、設定名などでも情報を取得する事ができる他、
DBの初期化やデータ数の取得、CSVの出入力などもできるので、
変数呼び出し値「1300000000(11AABBBBCC)」よりも使い勝手が良いです。

しかし【DB操作】情報を取得する事しかできませんが、
変数呼び出し値「1300000000(11AABBBBCC)」の場合は情報の書き換えもできます。

但しこの情報の書き換えは一時的なものであり、セーブデータをロードすると初期状態に戻ります。

なお、通常変数、予備変数、文字列変数、システム変数、システム文字列などは、
【変数操作】【文字列操作】などで内容を変える事ができ、その変えた内容はセーブデータに保存されます。


  
▼【使用例】文字色を一時的に変更する

文字色の初期設定はシステムDB[12:文字色]にて行います。



文字の色の変更は【文章の表示】【ピクチャ表示】などの文章の表示では、
特殊文字「\c[番号]」を使って一時的に文字の色を変える事ができます。

しかしシステムDB[12:文字色]データ[10:[Sys]入力文字色]データ[13:[Sys]ルビ用文字色]の場合は、
特殊文字「\c[番号]」などで色を変える事ができず、色は固定設定になっています。

変数呼び出し値「1300000000(11AABBBBCC)」を使うと固定設定の色を一時的に別の色に変える事ができます。



今回は【キーボード入力】で文字を入力する時の色を青色の文字に変えます。



▼変更前(R[255]、G[255]、B[255])


▼変更後(R[0]、G[100]、B[200])


【イベントコード表示】

■マップイベント

起動条件:決定キーで実行

■変数操作: Sys40:キーボ入力文字列 X座標 = Sys8:基本フォントサイズ * -5
■変数操作: Sys40:キーボ入力文字列 X座標 /= 2 + 0
■変数操作+: Sys40:キーボ入力文字列 X座標 += 主人公 の 画面X座標
■変数操作+: Sys41:キーボ入力文字列 Y座標 = 主人公 の 画面Y座標
■変数操作: Sys41:キーボ入力文字列 Y座標 -= Sys8:基本フォントサイズ * 3
■変数操作: このEvのセルフ変数9 = 1312001000 + 0
■変数操作: V[このEvのセルフ変数9] = 0 + 0
■変数操作: このEvのセルフ変数9 += 1 + 0
■変数操作: V[このEvのセルフ変数9] = 100 + 0
■変数操作: このEvのセルフ変数9 += 1 + 0
■変数操作: V[このEvのセルフ変数9] = 200 + 0
■文字列操作:S0[[サンプル]一時文字列] = キーボード入力 20バイト



【キーボード入力】が終わったあとに元の色に戻す場合は、以下のように設定。

【イベントコード表示】

■マップイベント

起動条件:決定キーで実行

■変数操作: Sys40:キーボ入力文字列 X座標 = Sys8:基本フォントサイズ * -5
■変数操作: Sys40:キーボ入力文字列 X座標 /= 2 + 0
■変数操作+: Sys40:キーボ入力文字列 X座標 += 主人公 の 画面X座標
■変数操作+: Sys41:キーボ入力文字列 Y座標 = 主人公 の 画面Y座標
■変数操作: Sys41:キーボ入力文字列 Y座標 -= Sys8:基本フォントサイズ * 3
■変数操作: このEvのセルフ変数9 = 1312001000 + 0
■変数操作: このEvのセルフ変数0 = V[このEvのセルフ変数9] + 0
■変数操作: V[このEvのセルフ変数9] = 0 + 0
■変数操作: このEvのセルフ変数9 += 1 + 0
■変数操作: このEvのセルフ変数1 = V[このEvのセルフ変数9] + 0
■変数操作: V[このEvのセルフ変数9] = 100 + 0
■変数操作: このEvのセルフ変数9 += 1 + 0
■変数操作: このEvのセルフ変数2 = V[このEvのセルフ変数9] + 0
■変数操作: V[このEvのセルフ変数9] = 200 + 0
■文字列操作:S0[[サンプル]一時文字列] = キーボード入力 20バイト
■変数操作: V[このEvのセルフ変数9] = このEvのセルフ変数2 + 0
■変数操作: このEvのセルフ変数9 -= 1 + 0
■変数操作: V[このEvのセルフ変数9] = このEvのセルフ変数1 + 0
■変数操作: このEvのセルフ変数9 -= 1 + 0
■変数操作: V[このEvのセルフ変数9] = このEvのセルフ変数0 + 0


▲トップへ戻る▲



◎関連ページ

◆「変数」って何?
┣◆「セルフ変数」って何?
┣◆「通常変数」「予備変数」って何?
┣◆「文字列変数」って何?
┣◆「システム変数」「システム文字列」って何?
┃┣◆システム変数[0〜34]の説明
┃┣◆システム変数[35〜76]の説明
┃┣◆システム変数[77〜120]の説明
┃┣◆システム変数[121〜148]の説明
┃┣◆システム文字列[0〜49]の説明
┃┗◆システム文字列[50〜71]の説明
┣◆「変数呼び出し値」「X番の変数呼出」って何?
┃┗◆【使用例】「変数呼び出し値」「X番の変数呼出」
┣◆「乱数」って何?
┃┗◆乱数で一度出力した値を二重に出力させない
┗◆変数の番号や文字列を別のものに置き換える

YADOT-WOLFトップ  気紛れな空間へ戻る  メール