最終更新:
kamedakeisuke194 2022年07月16日(土) 11:47:50履歴
例
- 「100円の商品を10個買う」
- 「使った金額を「代金」という名前の箱に保存しておきたい」
- 代金 = 10 * 100
- となります。
eraMegatenを含むプログラムでは
「名前を書いた箱」、つまり「変数」に、あらゆる情報を保存しています
たとえば、ゲーム中に見えるキャラクターの名前からステータスまで、全て変数でできています
![](https://image01.seesaawiki.jp/e/r/eramegaten_another/uHZHYGHYUr.png)
この画面は、それぞれ
「LV」や「HP」や「NAME」の入った変数から
「15」や「55」や「古代」というデータを見て、画面に表示しています
では、ここで、ひとつデータを書き換えてみましょう
名前の変数は、正しくは「CALLNAME」といいます
CALLNAMEに、キャラクターの生成番号*1を付けることで、「誰のCALLNAMEを編集するか」を指定できます
例
- 「古代の読み方が分かりづらいので“こしろ”にしたい」
- 古代は19番の生成番号を持つ
- CALLNAME:19 = こしろ
上の処理を、プログラム上で命令すると、次に古代を表示した時から「こしろ」に名前が変わっています
![](https://image02.seesaawiki.jp/e/r/eramegaten_another/pDmcL2dACx.png)
戦闘時のHPなどの処理も、これと全く同じ原理で動いています
さらに、レベルアップなどで覚える「スキル」や、陥落時に付く「恋慕」も、全て変数です
つまり、命令さえ書ければ、「有用なスキルを満載したピクシー(恋慕)」なども、一瞬で作れてしまいます
eraMegatenのプログラムを知りたい場合
まず、「自分でチート命令を作ってみる」のがおススメです
「ローカル変数」
「キャラクター変数」
「グローバル変数」
の3つに分けられます。*2
変数の名前 | 定義の必要 | 変数の使いどころ | 変数を参照できる範囲 | 変数の保存場所 | 具体例 |
ローカル変数 | あり | 一時的な計算 | 定義したファイル内のみ | 保存しない | 今回の調教でおもらしした回数 |
キャラクター変数 | なし | キャラクターの各種情報の管理 | どのファイルからでも可能 | 個々のセーブファイル | キャラクターの名前やレベル、処女などの素質 |
グローバル変数 | なし | セーブデータを跨ぐ情報の管理 | どのファイルからでも可能 | global.sav | eraMegatenオプション情報や特殊なイベント |
グローバル変数はあまり触る事が無いので省略して、ローカル変数とキャラクター変数の一番の違いは
「セーブデータに変数が保存されるかされないか」です。
保存しておきたい情報はキャラクター変数で管理する事になります。
また、変数の一種に「配列(配列変数)」というものもあります。
通常の変数は「連続した住所」を持っているとこが異なります。
例えば、eramegatenの能力値6つを変数で管理する場合
通常の変数ですと
変数:力
変数:知恵
変数:魔力
変数:耐力
変数:速さ
変数:運
と6つ必要になりますが、
配列を使うと
配列:能力値(0〜5)
※配列:能力値(1)→力、配列:能力値(2)→知恵……とする
と1つで済みます。
一つにまとめるメリットとして、「似たような要素を1つにまとめると人間が管理しやすい」があります。
例えば、大量にある素質(ここでキャラクター作成のページにリンクする)に一つずつ名前を付けていたとすると
素質を変更する場合に、いちいち変数名を調べないといけなかったり、タイプミスの元になります。
eramegatenのキャラクター変数やグローバル変数はだいたいが配列です。
例えば
変数:今回射精した回数
変数:今までに射精した回数
があった場合、
射精した時に回数を変更するのは同じなのですが
調教開始時に「今回射精した回数」に「0」の値を入れる必要があります。
特にゼロクリアする必要がある項目をキャラクター変数で使う場合には注意してください。
※次の調教時に変数の値がおかしな事になります。
例として
変数:今回の戦闘で攻撃が命中した回数(以降 命中数)
変数:今回の戦闘で与えた総ダメージ(以降 ダメージ)
に値を入れると想定します。
まず、攻撃が命中した時に「変数:命中数」に値を足します
変数:命中数 = 変数:命中数 + 1
コメントをかく