変数のきほん。




変数とは

データを入れておく箱の事。
例えばユーザー名をユーザー別に変えたい場合、変えたユーザ名を記憶しておく場所が必要になります。
それ以外にも性別とか年齢とか高感度とか変化する値を保存しておく場所、それが変数です。

変数を使う

変数に値を入れる

次の三通りの方法があります。

$好感度【タブ】100
$好感度=100
(set,好感度,100)

詳しく→変数への代入には…

  • プログラムでよくある、変数を使う前の変数宣言はいりません。文字型や整数型などの型もありません。
  • 変数は()で呼び出すので、同じく()で使う特殊変数情報取得変数関数イベントにある名前は付けないようにしましょう。

変数を削除する

入れる値を空白にする(何も書かない)と、その変数を削除できます。下記は一例。

$好感度【タブ】
(set,好感度,)

変数を使う(呼び出す)

変数名を()で囲むと、処理時に変数の中身に置き換わります。

:(ユーザ名)さん、おはようございます。

初回起動時に変数に値を入れておく

satori_conf.txtで変数の初期値を設定する事ができます。
あらかじめ一括で設定しておくといいでしょう。

ゴースト終了時の変数の値の保存

変数は、ゴースト終了時に自動的にsatori_savedata.txtに保存され、次回起動時に自動的に読み込まれます。
一時的な変数も明示的に削除しない限り保存されます。

前述した変数の削除を行うと、その変数はsatori_savedata.txtにも保存されません。
※変数を削除してもsatori_conf.txtにエントリがある場合は、次回起動時にsatori_conf.txtから値を読み込みします。

変数への代入には…

以下の3つの方法があります。

基本

$変数名【タブ】値

右辺を特にいじらず、そのまま変数に代入します。 計算式であっても文字列として扱われます。

$変数テスト【タブ】1+1
:(変数テスト)っ♪
↓
:1+1っ♪

計算してから代入

$変数名=値

右辺の値を「計算式」として扱い、計算結果を代入します。
里々で使える演算記号は演算子一覧を参照のこと。

$変数テスト=1+1
:(変数テスト)っ♪
↓  
:2っ♪ 

set関数を使った代入

(set,変数名,値)

里々の関数のset関数を使用した代入方法です。
値を「計算式」として扱い、計算結果を代入します。

:(set,変数テスト,1+1)(変数テスト)っ♪
↓
:2っ♪

先の二つの方法は変数代入で1行を使用しなければなりませんが、set関数は文中に使用出来る為、次の様な記述が可能になります。

(when,(条件変数)==1,(set、変数テスト、100),(set、変数テスト、200))

計算式について

一つの式の中で加算、減算より乗算、除算、剰余が優先的に計算されるので

$変数=3+6×2

だと結果は「18」ではなく「15」になります。注意。 「3+6」を先に計算したい場合はこう書きます。

$変数=(3+6)×2

カッコは必ず半角で。

変数が数字かどうか確認する

is_digitで数字か否かの判断が出来ます。数字なら1、そうでないなら0が返ります。 例えば、こんな。

*
:ユーザさんの歳って、いくつ?
\![open,inputbox,ユーザ年齢]

*ユーザ年齢を教えてもらった
>おかしい【タブ】(is_digit,(ユーザ年齢))==0
:(ユーザ年齢)歳ね。(6)ふ〜〜〜ん。
:なんだよ。

*おかしい
:(7)数字を入れろっ!
:落ち着けっ!

てな具合。 他にも年齢とか誕生日とかは、あり得ない数字とかと合わせてチェックした方がいいと思います。

変数の存在を確認する

(変数「ユーザ名」の存在)

とすれば、$ユーザ名という変数が存在すれば1,そうでなければ0が返ります。 変数の中に何が入っているか解らないときは便利。

*
>名前を聞いている【タブ】(変数「ユーザ名」の存在)==1
:そういえばさ、まだユーザさんの名前聞いてないんだけど。
:メニューの「名前を教える」から教えてや。

*名前を聞いている
:(5)よっ、(ユーザ名)。
:(ユーザ名)に名前を教えてもらったのがそんなに嬉しいか?
:(8)うるさいなぁ。

てな具合に。

ただし、satori_conf.txtの中で予め何かが設定されている場合は、その変数が存在することになります。 里々の場合、デフォルトで

$ユーザ名【タブ】ユーザ

と書いてある場合がほとんどなので、その場合はこのトークが発生すると、 「ユーザ」という名前をすでに教えてもらっている状態となるので注意。

中身のないからっぽ変数の扱い

呼び出した時の挙動

中身のない、何も設定していない変数を呼び出すと、消えるのではなくそのまま表示されます。

:(ほげほげ)わー。

#「(ほげほげ)わー。」と表示される
#「わー。」にはならない

当然、SAORIや条件式に使う場合も同じです。
数字しか受け付けない関数の場合、エラーや誤動作が発生します。

また、中身のない変数を呼び出そうとすると、\1側のトークの頭に一行分の改行が入ります

計算時の挙動

からっぽ変数の扱いの中で、下記の例だけは例外となります。

$新規変数=(新規変数)+1

この場合エラーが起こりません。
変数に計算してから代入は、からっぽの変数が自動的に「0」と判断されるのです。

ただ、タブなどの直接入力やssuなどではできません。
できる限りsatori_conf.txtにて初期値の設定をした方が安全です。

配列変数

記事:配列変数


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-04-25 (水) 20:55:54 (111d)