emuera (1-8-2-4) | 2019-01-27 00:29 |
emuera - etc 関連ファイル (1-8-2-1) | 2015-11-04 01:04 |
emuera - source ソースコード (1-8-2-4) | 2019-01-27 00:32 |
A = B ;AにBを代入
このように行の末尾にコメントを挿入できます
ただし、一部例外があり、「PRINT」命令のように引数が単純文字列の命令の場合にはコメント化されず文字列の一部と評価されます
PRINT foobar;ほげほげこの場合、「foobar;ほげほげ」がPRINTされます
{ DIM CONST HOGE = 1,2,3,4 }
と書くと「#DIM CONST HOGE = 1,2,3,4」と解釈されます
'{'、'}'の行にはホワイトスペース以外の他の文字が存在してはなりません
改行記号のある位置には半角スペースが補われます
つまり関数名・変数名の途中で行を分割することはできないほか、
PRINTなどを分割すると表示文字列の中に改行だった半角スペースが含まれます
Emueraの文法解釈において行連結処理はコメントの解釈より先に行われます
つまり
{ #DIM CONST HOGE = 1,2,3,4 ;コメント ,5,6,7,8 }は「#DIM CONST HOGE = 1,2,3,4 ;コメント ,5,6,7,8」となり、
Emuera、eramakerのいずれでも、;で始まる行はコメント行とみなされますが、Emueraは;!;で始まる行はコメントではなく有効な行とみなします。
eramakerでは実行してほしくない文を記述する際に使ってください。
例えば@SHOWSHOPに以下のスクリプトを加えるとEmueraでの動作を禁止できます。
;!;PRINTW このスクリプトはEmueraでは実行できません ;!;QUITまた、[SKIPSTART]や[SKIPEND]と併用することで、以下のスクリプトのようにEmuera以外での動作を禁止できます。
;!;[SKIPSTART] PRINTW このスクリプトはEmuera以外では実行できません QUIT ;!;[SKIPEND]
;#;で始まる行はデバッグモード時のみ実行されます。
非デバッグモード時ではコメント行と見なされ実行されません。
ただし、DEBUG系命令は元々非デバッグモード時には無視されるので、;#;を行頭に付ける必要はありません。
同様にデバッグ変数も非デバッグモード時には空文字列又は0のため、エラーの心配はありません。
デバッグモードについてはこちらを参照してください。
eramakerではおそらくキャラクタ作成用の配列が100個しか用意されていません。
そのため、chara3.csvとchara03.csvとchara3B.csvでそれぞれ別のキャラを定義しても一人しか有効になりません。
Emueraではキャラクタはメモリが許す限りいくらでも定義できます。
また、"chara*.csv"に該当すればchara101.csv、charaABC.csvなどどんなファイルでも読みに行きます。
キャラの番号が重複し、ADDCHARA又はADDSPCHARAの際に複数の候補がある場合、先に読み込まれた方のみが有効になります。
eramakerで扱える整数は32ビット符号付整数、すなわち-2147483648~2147483647の範囲です。
Emueraでは吉里吉里と同じく64ビット符号付整数、-9223372036854775808~9223372036854775807の範囲の値を扱います。
A:10 = 1,2,3 DA:0:0 = 1,2,3
上のように書いた場合、A:10~A:12にそれぞれ1,2,3の値が代入されます
下のような多次元配列では、DA:0:0~DA:0:2にそれぞれ1,2,3の値が代入されます
DA:0:0~DA:0:99の次にDA:1:0に代入することはなく、配列外参照エラーになります
ただし、複合代入演算には使えません(A += 1,2,3 などは不可)。
また、文字列型配列変数への代入に一括代入を用いる場合、文字列式を用いた代入を行わなくてはなりません
;STR:20に「いちご,メロン,ブルーハワイ」という文字列が代入される STR:20 = いちご,メロン,ブルーハワイ ;STR:20~STR22にそれぞれ「いちご」「メロン」「ブルーハワイ」が代入される STR:20 '= "いちご", "メロン", "ブルーハワイ"
文字列変数への代入の際、PRINTFORMと同じ形式で代入する文字列を指定できます。
SAVESTR:0 = %RESULTS%この文でSAVESTR:0にRESULTSの中身を代入することができます。
SAVESTR:0 = \%RESULT\%\記号の直後の文字はシステム記号として扱われません。
あまりないケースですが、eramakerとEmueraで同じ動作をさせたい場合は以下のように書く必要があります。
;!;SAVESTR:0 = \%RESULT\% ;!;[SKIPSTART] SAVESTR:0 = %RESULTS% ;!;[SKIPEND]
ver1813以降のEmueraでは新たに、代入演算子'=と文字列式を用いて文字列変数への代入を行うことができます。
;「STR = あいう」と同様 STR '= "あいう" ;「STR = %TSTR:0%いろは」と同様 STR '= TSTR:0 + "いろは"
以下の変数について、引数を*.csvで定義した文字列にして呼び出すことができます。
Emueraの新規変数についての詳細はEmueraで追加された拡張文法 - 定数・変数をご覧ください。
ITEM (item.csv) ITEMSALES (item.csv) LOSEBASE (base.csv) BASE (base.csv) MAXBASE (base.csv) ABL (abl.csv) TALENT (talent.csv) EXP (exp.csv) MARK (mark.csv) RELATION (chara*.csv) UP (palam.csv) DOWN (palam.csv) PALAM (palam.csv) JUEL (palam.csv) GOTJUEL (palam.csv) STAIN (stain.csv) SOURCE (source.csv) EX (ex.csv) NOWEX (ex.csv) TEQUIP (tequip.csv) EQUIP (equip.csv) FLAG (flag.csv) TFLAG (tflag.csv) CFLAG (cflag.csv) STR (strname.csv) SAVESTR (savestr.csv) 以下はEmueraから追加された変数 ITEMPRICE (item.csv) DOWNBASE (base.csv) CUP (palam.csv) CDOWN (palam.csv) TCVAR (tcvar.csv) TSTR (tstr.csv) CSTR (cstr.csv) CDFLAG (cdflag1.csv, cdflag2.csv) GLOBAL (global.csv) GLOBALS (globals.csv)例えばabl.csvに"2,技巧"という定義があれば、以下の4つの行は同じ意味になります。
ABL:技巧 += 1 ABL:2 += 1 ABL:"技巧" += 1 ABL:(ABLNAME:2) += 1RELATIONについてはNAME、CALLNAMEのいずれでも指定できます。
ABL:(RESULTS:0) = ABL:(RESULTS:0) + 1()を省略した場合、アイテム名と変数名が同一になる場合があります。その場合は変数が優先されます。
@HOGE #DIM ローター, 0 ローター = 1 PRINTFORML {ABL:ローター}この場合、0番目のABLではなく1番目のABLであると解釈されます。
これはchara*.csv内の定義においても使用できます。
例えばabl.csvに"2,技巧"という定義があれば、以下の2つの行は同じ意味になります。
能力,2,2 能力,技巧,2ただし、相性(RELATION)には使えません。
PRINTFORMなどでつかわれる書式付文字列のうち、{}、%%に表示桁数(文字数)を指定できます。
{変数・数式等, 表示桁数, 揃え(LEFT or RIGHT)}、%変数、文字列式等, 表示桁数, 揃え(LEFT or RIGHT)%という形式で指定します。
文字数は全角文字を2文字と数えます。
表示桁数(文字数)に足りない部分は半角スペースが追加されます。
通常は右揃えですが、キーワードLEFTを指定すると左揃えになります。
指定された表示桁数よりもとの桁数の方が大きい場合、そのまま表示します。
A = 123456 STR:0 = あいう PRINTFORML [{A}] PRINTFORML [{A,10}] PRINTFORML [{A,10,LEFT}] PRINTFORML [%STR:0%] PRINTFORML [%STR:0,10%] PRINTFORML [%STR:0,10,LEFT%] PRINTFORML [{A,2}] PRINTFORML [%STR:0,2%] ;結果 [123456] [ 123456] [123456 ] [あいう] [ あいう] [あいう ] [123456] [あいう]
PRINTSやユーザー定義の式中関数の引数といった文字列式中でFORM構文を使用するとエラーになります。
そのため文字列式中で書式付文字列を使用する場合、文字列式中で定文字列を使うときに"~"を使用するのと同じように
@"~"を使用します。
また、@"~"の中の文字列が\@~\@を用いた三項演算子による記載のみである場合、@"~"を省略して直接\@~\@と書くことができます
正しい例
;代入はFORM構文 STR:0 = あいう ;加算は文字列式 RESULTS += STR:0 ;文字列式に定文字列を使用する例 RESULTS += "えお" ;文字列式にFORM構文を使用する例 PRINTS @"%RESULTS%かきくけこ" ;以下の4行はすべて同じである PRINTS STR:0 + "!" PRINTFORM %STR:0%! PRINTS @"%STR:0%!" PRINTFORM %STR:0 + "!"%間違った例
;中身が「RESULTS」になる STR:0 = RESULTS ;エラーが出る RESULTS += えお ;エラーが出る RESULTS += %STR:0% ;「@"」と「"」も表示される PRINTFORM @"%RESULTS%かきくけこ"
INPUTSやそれに類する入力受付命令で、マクロ式を用いることができます。
マクロの書式については利用方法のマクロの項目を確認してください。
マクロ構文を使わず、単なる文字列として()を使用する場合、\を用いてエスケープしてください。
[ページ情報]
更新日時: 2018-10-11 00:08:12, 更新者: minorshift
[権限]
表示:無制限, 編集:ログインユーザ, 削除/設定:メンバー