目次
このページは書きかけです by管理人
変数の説明
初級編:変数とは
文字とか数値を保存する「名前を書いた箱」の事です。
例
- 「100円の商品を10個買う」
- 「使った金額を「代金」という名前の箱に保存しておきたい」
- 代金 = 10 * 100
- となります。
ShinEraTenseiを含むプログラムでは
「名前を書いた箱」、つまり「変数」に、あらゆる情報を保存しています
中級編:ShinEraTenseiの変数の実例
変数は、あとから見たり、中身を変えたりすることが可能です
たとえば、ゲーム中に見えるキャラクターの名前からステータスまで、全て変数でできています

この画面は、それぞれ
「LV」や「HP」や「NAME」の入った変数から
「15」や「55」や「古代」というデータを見て、画面に表示しています
では、ここで、ひとつデータを書き換えてみましょう
名前の変数は、正しくは「CALLNAME」といいます
CALLNAMEに、キャラクターの生成番号1)を付けることで、「誰のCALLNAMEを編集するか」を指定できます
例
- 「古代の読み方が分かりづらいので“こしろ”にしたい」
- 古代は19番の生成番号を持つ
- CALLNAME:19 = こしろ
上の処理を、プログラム上で命令すると、次に古代を表示した時から「こしろ」に名前が変わっています

戦闘時のHPなどの処理も、これと全く同じ原理で動いています
さらに、レベルアップなどで覚える「スキル」や、陥落時に付く「恋慕」も、全て変数です
つまり、命令さえ書ければ、「有用なスキルを満載したピクシー(恋慕)」なども、一瞬で作れてしまいます
ShinEraTenseiのプログラムを知りたい場合
まず、「自分でチート命令を作ってみる」のがおススメです
上級編:変数の種類
ShinEraTenseiの変数には3つの種類があります
「ローカル変数」
「キャラクター変数」
「グローバル変数」
の3つに分けられます。2)
| 変数の名前 | 定義の必要 | 変数の使いどころ | 変数を参照できる範囲 | 変数の保存場所 | 具体例 |
| ローカル変数 | あり | 一時的な計算 | 定義したファイル内のみ | 保存しない | 今回の調教でおもらしした回数 |
| キャラクター変数 | なし | キャラクターの各種情報の管理 | どのファイルからでも可能 | 個々のセーブファイル | キャラクターの名前やレベル、処女などの素質 |
| グローバル変数 | なし | セーブデータを跨ぐ情報の管理 | どのファイルからでも可能 | global.sav | eraMegatenオプション情報や特殊なイベント |
グローバル変数はあまり触る事が無いので省略して、ローカル変数とキャラクター変数の一番の違いは
「セーブデータに変数が保存されるかされないか」です。
保存しておきたい情報はキャラクター変数で管理する事になります。
また、変数の一種に「配列(配列変数)」というものもあります。
通常の変数は「連続した住所」を持っているとこが異なります。
例えば、ShinEraTenseiの能力値6つを変数で管理する場合
通常の変数ですと
変数:力
変数:知恵
変数:魔力
変数:耐力
変数:速さ
変数:運
と6つ必要になりますが、
配列を使うと
配列:能力値(0〜5)
※配列:能力値(1)→力、配列:能力値(2)→知恵……とする
と1つで済みます。
一つにまとめるメリットとして、「似たような要素を1つにまとめると人間が管理しやすい」があります。
例えば、大量にある素質(ここでキャラクター作成のページにリンクする)に一つずつ名前を付けていたとすると
素質を変更する場合に、いちいち変数名を調べないといけなかったり、タイプミスの元になります。
ShinEraTenseiのキャラクター変数やグローバル変数はだいたいが配列です。
実践的なチュートリアル
変数を定義する
※#DIMやERHファイルの話をする
変数に値を入れよう
変数に入れる値とタイミングを考えよう
例えば
変数:今回射精した回数
変数:今までに射精した回数
があった場合、
射精した時に回数を変更するのは同じなのですが
調教開始時に「今回射精した回数」に「0」の値を入れる必要があります。
特にゼロクリアする必要がある項目をキャラクター変数で使う場合には注意してください。
※次の調教時に変数の値がおかしな事になります。
変数に値を入れよう
例として
変数:今回の戦闘で攻撃が命中した回数(以降 命中数)
変数:今回の戦闘で与えた総ダメージ(以降 ダメージ)
に値を入れると想定します。
まず、攻撃が命中した時に「変数:命中数」に値を足します
変数:命中数 = 変数:命中数 + 1
変数の値を参照しよう
リンク
eratohoまとめ V3 ERB開発Q&A
https://seesaawiki.jp/eratoho/d/ERB%b3%ab%c8%afQ%26A
