Emuera 术语表(风飏@df32翻译版)
翻译自原文档:https://osdn.net/projects/emuera/wiki/EmuDic
译者:风飏@df32
也可跳转至:原版
启动模式
普通模式 Normal Mode
Emuera正常启动时的模式。 当你双击EmueraXXXX.exe启动它时,就会进入这种模式。
解析模式 Analysis Mode
通过命令行参数来提交想要分析的ERB文件或文件夹时会进入的模式。
当把文件拖到EmueraXXXX.exe上并启动程序时,Emuera会以这种模式启动,并检查文件语法。
由于需要检查CSV变量的规范,你可能需要将脚本运行所需的CSV一起拖动。
Emuera从1738g开始,若在分析模式下启用加载时显示报告时,则将显示加载ERB文件中的函数列表。
调试模式 Debug Mode
以-Debug
作为命令行参数来启动Emuera时的模式。 详见调试模式。
窗口对话框 Window Dialogue
主窗口 Main Window
通常启动时最先打开的窗口。
主控制台 Main Console
主窗口中进行输入输出的部分。
调试窗口 Debug Window
仅在调试模式下才能打开的一个窗口。
调试控制台 Debug Console
调试窗口的一部分, 控制台选项卡中进行输入和输出部分。
设置对话框 Config Dialogue
从帮助菜单中设置菜单项打开的对话框。
剪贴板对话框 Clipboard Dialogue
在主控制台按下Ctrl + C
打开的对话框。。
函数
命令 Command
包括PRINT
和WAIT
等。
注意区分命令与函数。
函数 Function
ERB脚本中,以@ ~ ~
的形式定义,通过CALL
命令来调用的东西。
广义的函数也包括同样以@ ~ ~
形式定义的但可以直接在表达式中使用的式中函数。
事件函数 Event Function
当某一事件发生时,Emuera会尝试调用的、名称以EVENT开头的函数。
若有复数定义则全部会被调用。
预处理指令 Preprocessor
ERB文件中,文件加载时执行的指令。 包括#
开始的行 和被[]
封闭的行。
#
开始的行可以划分为属性和定义。详细参考下面内容。[]
封闭的行,表示特殊的语句。详细见exfunc。
属性(预处理)Attribute (Preprocessor)
#
开始的行,是用来指定函数的样式和动作的预处理指令。
- 指定事件函数的执行方式,如
#PRI
,#LATER
,#SINGLE
,#ONLY
等。 - 指定式中函数的类型,如
#FUNCTION
,#FUNCTIONS
等。
定义(预处理)Definition (Preprocessor)
#
开始的行,是用来指定变量的名字以及大小的预处理指令。
- 指定局部变量
LOCAL
,LOCALS
的元素数目的#LOCALSIZE
,#LOCALSSIZE
。 - 声明变量,包括
#DIM
和#DIMS
。 - 在ERH文件中定义宏的
#DEFINE
。
式中函数
能够直接在表达式中调用的函数,即式中函数。 有的翻译将其译为方法,以区分不同的调用方式。
与其他编程语言中的匿名函数、内联函数无关。
注意区分指令、函数、式中函数的不同使用方式。
内置函数 Built-in Function
内置式中函数,即内置于Emuera中不需要额外声明就可以直接在表达式中使用的函数。
内置函数属于式中函数,包括ABS(X)
、GETTIME()
等。
也可以将其理解为“可以用于表达式中的指令”。
用户定义函数 User-defined Function
用户定义的函数,ERB脚本中以@ ~ ~
形式定义的,通过CALL
命令调用的东西。
也就是脚本中的函数。
用户定义式中函数
ERB脚本中以@ ~ ~
形式定义的、具有#FUNCTION(S)
属性的函数。
简单的说就是用户定义的两种式中函数: 返回数值的(#FUNCTION
)与返回字符串(#FUNCTIONS
)的两种。
行、语句、表达式
行
指从一个换行符到下一个换行符直接的内容,即物理行。
语句
Emuera中的一个处理单位,即逻辑行。
大多数语句是指令 + 参数
的形式,或者变量 + 赋值运算符 + 表达式
的形式。
ERB脚本中通常一行一句,行与语句大致相同,故以下不做区分。
表达式
由变量、常数、方法、非代入运算符、括号等组合成的内容。
代入运算符,如赋值语句的=
,不能在表达式中使用。
数值表达式
运算结果为数值的表达式。
例如A + B
、STR == "Ayu"
等。
字符串表达式
运算结果为字符串的表达式。
例如STR + STR:1
、"a" * 10
等。
变量
伪变量
像RAND
、CHARANUM
这样以变量的形式表达的东西。
其实际内部操作更接近于式中函数。
数组变量
包含复数个元素的变量。
数组变量只能在VariableSize.csv
中指定数组元素的数量,通常不会在脚本中增加或减少。
但局部变量可以在脚本中指定数组元素的数量。
角色变量 Character Variable
记录角色状态的变量。
与一般编程语言中的Char类型无关。
当通过ADDCHARA
和DELCHARA
增减角色时,角色变量的元素数也会随之增减。
由于角色变量与数组变量具有相同的形式(如NO:TARGET
), EraMaker中将其作为数组变量中的一部分,但本文档将其与数组变量区别开来。
双重数组变量
一个既是角色变量又是数组变量的变量。
例如CFLAG:TARGET:2
,有两个参数(第一个参数有时可省略)。
- 第一维是角色数组,其参数是角色的序号,用于确定某个角色。
- 第二维是一般数组,其参数是数组的索引,用于确定角色的某个属性。
- 第一维元素数量会随角色增减而变化。
- 第二维元素数量只能在
VariableSize.csv
中指定,不能在脚本中改变。
本文档不会使用这一术语,除非描述EraMaker的规范。
多维数组变量
二维数组变量,如DITEMTYPE
,以及三维数组变量,如TA
前者有两个参数,如DA:0:1
,后者有三个参数,如TA:1:2:3
。
多维数组变量的元素数只能在VariableSize.csv
中指定,不能在脚本中改变。
另外多元数组变量的参数是不可以省略的。
角色多维数组变量
一个既是角色变量又是多维数组变量的变量。
例如CDFLAG:TARGET:0:2
,有三个参数(第一个参数有时可省略)。
- 第一维是角色数组,其参数是角色的序号,用于确定某个角色。
- 第二、三维是数组,其参数是数组的索引,用于确定角色的某个属性。
- 第一维元素数量会随角色增减而变化。
- 第二、三维元素数量只能在
VariableSize.csv
中指定,不能在脚本中改变。
Emuera从ver1807开始只有
CDFLAG
是这种变量。
更多信息见CDFLAG。
局部变量 Local Variable
仅在当前函数的声明与定义中有效的变量,如LOCAL
、LOCALS
和私有变量。
关于私有变量请参考下面内容。
LOCAL
与LOCALS
并不是真正意义上的局部变量,而是以LOCAL@函数名
和LOCALS@函数名
为名的公共静态变量(public static)。 即使离开了函数,LOCAL
与LOCALS
仍然保留其值,并且可以通过名字从外部来访问变量。 当函数被多次调用时,例如在递归调用中,LOCAL
与LOCALS
的值也是共有通用。
广域变量 Nonlocal Variable
LOCAL
、LOCALS
和私有变量以外几乎所有的变量、所有函数共享的变量。
也就是一般编程语言中“全局变量”的概念。
此外,ERH文件中可以用#DIM
、#DIMS
来定义广域变量。 详细参考头文件(ERH)。
全局变量 Global Variable
不同存档之间可以共享的变量。全局变量是广域变量中的一种。
全局变量与一般变量在保存、加载、初始化的时间是不同的。
Emuera中的全局变量与一般编程语言中的全局变量的概念并不相同。
私有变量 Private Variable
在函数中通过#DIM
、#DIMS
来声明的变量。
私有变量是局部变量的一种,仅在当前函数的声明与定义中有效。
并不能像LOCAL
与LOCALS
从函数外部访问。
详细参考用户定义变量。