スクリプトを書いている時に忘れがちなこと 
モジュール／モジュール変数の覚え書き

トークンの区切りはスペースと "," があるのでややこしい

"#module"
"#module" スペース モジュール名 スペース モジュール変数 "," モジュール変数・・・
例 #module m a,b,c・・・
モジュール名と第一変数の区切りはスペースだが
第一変数と第二変数の区切りは ","

"#modinit"
モジュールのコンストラクタは "#modinit"命令
"#modinit" スペース 型 スペース 引数A "," 型 スペース 引数B・・・
#modinit int l,int n,int m・・・
命令の名前は不要
"#modinit"と引数Aの型の区切りはスペース
引数Aの型と引数Aの名前の区切りもスペース
引数Aの名前と引数Bの型の区切りは ","

"modfunc"
"#modfunc" スペース モジュール命令名 スペース 型 スペース 引数A "," 型 スペース 引数B・・・
例 #modfunc mf int l,int n,int m・・・
モジュール命令名と引数Aの型の区切りはスペース
引数Aの型と引数Aの名前の区切りもスペース
引数Aの名前と引数Bの型の区切りは ","

"#modcfunc"
"#modcfunc" スペース モジュール命令名 スペース 型 スペース 引数A "," 型 スペース 引数B・・・
例 #modcfunc mf int l,int n,int m・・・
モジュール命令名と引数Aの型の区切りはスペース
引数Aの型と引数Aの名前の区切りもスペース
引数Aの名前と引数Bの型の区切りは ","

"newmod"
オブジェクトの作成は"newmod"命令
"newmod" スペース オブジェクト名 "," モジュール名 "," 引数A "," 引数B・・・
例 newmod o,m,1,2,3・・・
オブジェクトを"newmod"命令で作成しないとモジュール命令は使用できない
"newmod" と オブジェクト名 の区切りはスペース
オブジェクト名と モジュール名 の区切りは ","

モジュール命令の使用
モジュール命令 スペース オブジェクト名 "," 引数A "," 引数B・・・
例 mf o,1,2,3・・・
モジュール命令 と オブジェクト名 の 区切りは スペース
オブジェクト名 と 引数 の 区切りは スペース

モジュール関数の使用
モジュール命令 "(" オブジェクト名 "," 引数A "," 引数B・・・")"
例 mf(o,1,2,3・・・)
モジュール命令 と オブジェクト名 の 区切りは "("
オブジェクト名 と 引数 の 区切りは スペース
最後の 区切りは ")"

local キーワード
#modfuncとか local 命令名
例　#modfunc local hoge

"thismod" キーワード
"thismod"キーワードは"#modfunc"の中で
同じモジュール内のモジュール命令を呼び出したい時に
オブジェクト名を指定するかわりに指定する
モジュール外から
mf o,1,2,3・・・
モジュール内から
mf thismod,1,2,3・・・

インスタンスの配列化
例
newmod Player,player_chara_status,1
newmod Player,player_chara_status,2
dump@player_chara_status Player.0
dump@player_chara_status Player.1

#deffunc／#defcfunc の覚え書き
#deffunc／#defcfunc スペース モジュール命令名 スペース 型 スペース 引数A "," 型 スペース 引数B・・・
関数／命令名と引数Aの型の区切りはスペース
引数Aの型と引数Aの名前の区切りもスペース
引数Aの名前と引数Bの型の区切りは ","

型の種類
int、整数値（値渡し）
str、文字列（値渡し）
double、実数（値渡し）
var、変数(参照渡し)
array、配列（参照渡し)
label、ラベル
local、ローカル変数

関数は値を渡す変数に代入していないとエラー
関数の引数は()で括っていないとエラー

sdimの仕様
sdimの仕様は
sdim 変数名,確保する文字列の長さ,配列の１次元 の長さ,配列の２次元の長さ,配列の３次元の長さ
みたいです

dim n,256,256
;n(1)(2)=12		//error
;mes n(1)(2)=12
n.3.4=34
mes n.3.4
;n(5).6=56		//error
;mes n(5).6
n(7,8)=78	
mes n(7,8)
;n.9.(10)=910	//error
;mes n.9.(10)
n(11,(12))=1112
mes n(11,(12))
stop