定義・変数・関数

TOP

information

スクリプトの定義、変数や関数についての解説しています。

定義


スクリプトの行を見ると、先頭に記号がついている場合が多々あります。
これらには、全て意味がつけられています。

記号の意味

@ 関数
\ メッセージ特殊命令
# 数値変数(セーブデータ単位)
$ 文字変数(セーブデータ単位
% 数値変数(ゲームデータ単位)
& 文字変数(ゲームデータ単位)
! ジャンプ用ラベル
* セーブ用ラベル
/ コメント

コメント

コメントには、2種類の形式が用意されています。
・1行コメント
・複数行コメント
コメントとは説明文の意味であり、直接スクリプトの実行とは関わりの無いものとして定義するものです。
イベントの流れや命令の解説など、多目的に利用できます。

例 1行コメント
//この命令は、画像を呼び出すものです。
@pic.loadbackpic("aaaaa.jpg")
例 複数行コメント
/*
これはコメントです〜〜
*/
@snfload("aaa.snf")
例 関数の後のコメント
@snfload("aaa.snf") //○○へ移動します。
このコメント命令は、必ず行の先頭(はじめの文字として)に記述してください。途中から記述しても、無効となります。

ジャンプ用ラベル

goto関数等の、ラベルジャンプ命令でのジャンプ先をマーキングするものです。
ラベルを用いることで、簡単にシナリオ内をジャンプすることが可能です。

セーブ用ラベル

\wや\l、選択肢関数では自動で行番号によるセーブデータ保持を行いますが、セーブ用ラベルを設定し、Game.infoの命令@setsavepointmodeをTrueとして設定することで手動によるセーブ位置制御が行えます。

このラベルは、メッセージの前と選択肢の前に置きます。
また、「前の選択肢に戻る」機能を使用する場合での選択肢には必ずセーブラベルを付加してください。プレイ時の実行エラーの原因となります。

セーブ用ラベルを用いることで、シナリオのバージョンアップ等によるセーブデータ破壊を防ぐことが可能です。

メッセージでの例
\wあいうえお\h

関数


関数は、以下のように定義されます。
・先頭に「@」(アットマーク)のついた文字列
・引数は「()」(カッコ)で囲まれている
・引数の区切りは、「,」(カンマ)である。
・1行に1つの関数しか書くことが出来ない(分岐・選択肢は除く)
・引数には、文字列・数値・変数を書くことが出来る
・引数には、式を書くことが出来ない
・例は、「 @関数名(引数,引数,引数,…) 

関数とは

いわゆる命令となります。値や変数を引数(パラメータ)として与え、目的の処理を行わせることが出来ます。

関数の種類

関数の基本的な使い方は変わりませんが、若干拡張されている命令があります。
・返り値付き関数
・分岐関数
・選択肢関数

返り値付き関数

変数に、関数を実行した結果を代入できる関数です。
$test=@io.inputbox(・・・)


変数


変数には、以下のような用途があります。
・値を保持する
・値を計算する
変数を使うことで、表現力や設計の手間を大幅に短縮することが可能です。

変数とは?

値を持つもの、という意味を与えています。変数=値を保持できる仮想的なもの、という理解がもっとも分かりやすいと思われます。

変数の種類

文字列を保持する「文字変数」、数値を保持する「数値変数」が用意されています。
また、変数の保持タイプとして「ユーザー変数(セーブデータ単位)」と「システム変数(ゲームデータ単位)」があります。
これらを総合して、4つの種類の変数があることになります。

また、関数でのみ操作可能な「フラグ変数」も装備しています。

変数の種類表

# 数値変数(ユーザー・セーブデータ単位)
$ 文字変数(ユーザー・セーブデータ単位
% 数値変数(システム・ゲームデータ単位)
& 文字変数(システム・ゲームデータ単位)
フラグ変数
以上を、変数名の先頭につけることで、自動的にADVRUNが変数と判断して保持処理を行います。

変数の限界

変数名は半角15文字まで命名することが可能です。また、保持できる変数の数は、実用上無限(20億個まで保持可能)となっています。フラグ変数は、1〜4095番の合計4000個程となっています。

変数自体に保持できる限界のサイズや範囲が設定されています。
文字変数 半角32文字まで
数値変数 -20億〜+20億
フラグ変数 TrueとFalseのみ

式とは、文字列の合成や数値計算を行わせて変数等に値を与えるものです。
#test=100+200*(10+20)
$abc="Name "+#test+" is."

左側に変数を置き、右側にはその変数の種類に合わせた数式・文字合成式を記述することが出来ます。

また、返り値付き関数を数式の代わりに置く事が出来ます。
$test=@io.inputbox(・・・)
数式について
数式による計算は、整数の値を処理が出来ます。小数点を含む式は計算できません。また、カッコを含む式を計算することが出来ます。数値変数であれば含めて計算することも出来ます。

#hp01=10+20-45+60*3+3+#hp002+%test_data


TOP