ユーザ用ツール

サイト用ツール


変数について

このページは書きかけです 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

1)
「能力確認」などを開いたときに出る、キャラクター名の前にある番号です
2)
キャラクター変数もグローバル変数の一種と言えますが、役割が決まっていて、影響が大きいため、便宜上分けています
変数について.txt · 最終更新: (外部編集)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki