限界 | 備考 | |
整数変数の値 | -2147483648〜2147483647 | 32ビット符号付 |
文字列変数の文字数 | 1024文字以上 | |
関数名の文字数 | 1024文字以上 | 全角文字も使用可能 |
関数呼び出しスタック※ | 1000 | 超えた場合、動作が不安定になり強制終了することもある |
キャラクタ登録数 | 16384(16進数で4000)※※ | さらにADDCHARAすると応答がなくなる |
@EVENTCOM CALL FUNC0001 @FUNC0001 CALL FUNC0002 @FUNC0002 ……これが続いて@FUNC1000あたりまで来ると不安定になる。
限界 | 備考 | |
整数変数の値 | -9223372036854775808〜9223372036854775807 | 64ビット符号付 |
文字列変数の文字数 | 2147483647文字? | |
関数名の文字数 | 2147483647文字? | 全角文字も使用可能 |
関数呼び出しスタック | 2147483647文字? | 超えた場合、動作が不安定になり強制終了することもある |
キャラクタ登録数 | 2147483647文字? |
;1-許容範囲な記法
A <=+=* B <=+=* C SIF D <> 0 E &&== F &&== G
;2-標準的な記法
A = B <= C SIF D < 0 E &= F && G
;NG-全ての行でエラー。
A = B =+=* C SIF D =< 0 E = F !!== G代入演算子として"=="が"="の代わりに使えるのはこの実装による。
A = (-1) + 0 + 0 B = 0 + (-1) + 0 C = 0 + 0 + (-1) D = 0 > -1 E = -1 < 0 PRINTFORML A={A}, B={B}, C={C} PRINTFORML D={D}, E={E}
;出力
A=1, B=1, C=-1 D=1, E=0
;エラー! eramaker曰く「計算式の中にマイナス符号の連続を見つけました。」
A = -(0-1)
;エラー! eramaker曰く「計算式展開時に不明な変数名が見つかりました。」
B = 1 C = -B
分類 | 優先度 | 代入演算 | 記号 |
算術演算子 | 高 | ○ | *, /, % |
↑ | ○ | +, - | |
比較演算子 | × | <, >, <=, >= | |
× | ==, != | ||
論理演算子 | ↓ | ○ | &, | |
低 | × | &&, || |
<変数> += <数式>は
<変数> = <変数> + ( <数式> )とほぼ等価になる。
RAND:100 += 1 RAND:100 = RAND:100 + 1上はRAND:100の値が1増えるが、下の式はRAND:100に1〜100までのランダムな値が代入される。
A = ABL:TALENT A = ABL:TARGET:(TALENT:TARGET:0)
;NG
ABL:TARGET:(TALENT:TARGET:0) = A
;NG
X = ABL:0:0 X = ABL:(TARGET + 1):0 NO:(MASTER + 1) = X PRINTFORMW %NAME:(COUNT + 1)%
;OK
ABL:0:0 = X X = NO:(MASTER + 1) PRINTFORMW {NO:(MASTER + 1)}
変数名 | 要素数 | 変更 | セーブ | 初期値 | 初期化されるタイミング |
A〜Z | 1000 | ○ | ○ | − | − |
COUNT | 1000 | ○ | ○ | − | − |
RESULT | 1000 | ○ | ○ | − | − |
DAY | 1000 | ○ | ○ | − | − |
TIME | 1000 | ○ | ○ | − | − |
MONEY | 1000 | ○ | ○ | − | − |
MASTER | 1000 | ○ | ○ | − | − |
TARGET | 1000 | ○ | ○ | 1 | ゲーム開始 |
ASSI | 1000 | ○ | ○ | -1 | ゲーム開始 |
PLAYER | 1000 | ○ | ○ | − | − |
ASSIPLAY | 1000 | ○ | ○ | 0 | BEGIN TRAIN |
SELECTCOM | 1000 | ○ | ○ | − | − |
PREVCOM | 1000 | ○ | ○ | -1 | BEGIN TRAIN |
NEXTCOM | 1000 | ○ | ○ | -1 | BEGIN TRAIN |
LOSEBASE | 1000 | ○ | ○ | 全て0 | @SHOW_USERCOM終了時 |
UP | 1000 | ○ | ○ | 全て0 | @SHOW_USERCOM終了時 UPCHECK時 |
DOWN | 1000 | ○ | ○ | 全て0 | @SHOW_USERCOM終了時 UPCHECK時 |
PALAMLV | 1000 | ○ | ○ | 0 100 500 3000 10000 30000 60000 100000 150000 250000 | ゲーム開始 |
EXPLV | 1000 | ○ | ○ | 0 1 4 20 50 200 | ゲーム開始 |
EJAC | 1000 | ○ | ○ | 10000 | ゲーム開始 |
FLAG | 10000 | ○ | ○ | − | − |
TFLAG | 1000 | ○ | ○ | 全て0 | BEGIN TRAIN |
ITEM | 1000 | ○ | ○ | − | − |
ITEMSALES | 1000 | ○ | ○ | − | − |
BOUGHT | 1000 | ○ | ○ | − | − |
NOITEM | 1000 | ○ | ○ | ※ | ゲーム開始 |
PBAND | 1000 | ○ | ○ | 4 | ゲーム開始 |
CHARANUM | 1000 | ※※ | ※※ | − | − |
RAND | 1000 | ※※ | ※※ | − | − |
変数名 | 要素数 | 変更 | セーブ | 初期値 | 初期化されるタイミング |
RESULTS | 100 | ○ | × | − | − |
ABLNAME | 100 | × | × | ABL.CSV | − |
TALENTNAME | 1000 | × | × | TALENT.CSV | − |
EXPNAME | 100 | × | × | EXP.CSV | − |
MARKNAME | 100 | × | × | MARK.CSV | − |
PALAMNAME | 200 | × | × | PALAM.CSV | − |
ITEMNAME | 1000 | × | × | ITEM.CSV | − |
STR | 20000 | ○ | × | STR.CSV | − |
SAVESTR | 100 | ○ | ○ | − | − |
A = ABL:MASTER:21つ目の引数を省略し、ABL:2と書くと、ABL:TARGET:2と解釈される。
変数名 | 型 | 要素数 | 変更 | セーブ | 初期値 | 初期化されるタイミング |
NO | 数値 | − | ○ | ○ | − | − |
ISASSI | 数値 | − | ○ | ○ | − | − |
NAME | 文字列 | − | × | ○ | − | − |
CALLNAME | 文字列 | − | × | ○ | − | − |
BASE | 数値 | 100 | ○ | ○ | − | |
MAXBASE | 数値 | 100 | ○ | ○ | − | − |
ABL | 数値 | 100 | ○ | ○ | − | − |
TALENT | 数値 | 1000 | ○ | ○ | − | − |
EXP | 数値 | 100 | ○ | ○ | − | − |
MARK | 数値 | 100 | ○ | ○ | − | − |
RELATION | 数値 | 100 | ○ | ○ | − | − |
JUEL | 数値 | 200 | ○ | ○ | − | − |
CFLAG | 数値 | 1000 | ○ | ○ | − | − |
EQUIP | 数値 | 100 | ○ | ○ | − | − |
TEQUIP | 数値 | 100 | ○ | ○ | 全て0 | BEGIN TRAIN |
PALAM | 数値 | 100 | ○ | ○ | 全て0 | BEGIN TRAIN |
STAIN | 数値 | 100 | ○ | ○ | 0 0 2 1 8 その他0 | BEGIN TRAIN |
EX | 数値 | 100 | ○ | ○ | 全て0 | BEGIN TRAIN |
SOURCE | 数値 | 100 | ○ | ○ | 全て0 | BEGIN TRAIN @SOURCE_CHECK終了時 |
NOWEX | 数値 | 100 | ○ | ○ | 全て0 | @EVENTCOM直前(@USERCOM前には更新されない) |
GOTJUEL | 数値 | 200 | ○ | ○ | 全て0 | BEGIN TRAIN |
IF TALENT:86 &&や、
IF A == 3 || A == 7 || A ==などのように、不完全な記述があると、そこでeramakerがフリーズしてしまうので注意。