Emuera 术语表(风飏@df32翻译版)

翻译自原文档:https://osdn.net/projects/emuera/wiki/EmuDic

译者:风飏@df32open in new window

也可跳转至:原版

启动模式

普通模式 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

包括PRINTWAIT等。

注意区分命令函数

函数 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 + BSTR == "Ayu"等。

字符串表达式

运算结果为字符串的表达式。

例如STR + STR:1"a" * 10等。

变量

伪变量

RANDCHARANUM这样以变量的形式表达的东西。

其实际内部操作更接近于式中函数。

数组变量

包含复数个元素的变量。

数组变量只能在VariableSize.csv中指定数组元素的数量,通常不会在脚本中增加或减少。

但局部变量可以在脚本中指定数组元素的数量。

角色变量 Character Variable

记录角色状态的变量。

与一般编程语言中的Char类型无关。

当通过ADDCHARADELCHARA增减角色时,角色变量的元素数也会随之增减。

由于角色变量与数组变量具有相同的形式(如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

仅在当前函数的声明与定义中有效的变量,如LOCALLOCALS私有变量

关于私有变量请参考下面内容。

LOCALLOCALS并不是真正意义上的局部变量,而是以LOCAL@函数名LOCALS@函数名为名的公共静态变量(public static)。 即使离开了函数,LOCALLOCALS仍然保留其值,并且可以通过名字从外部来访问变量。 当函数被多次调用时,例如在递归调用中,LOCALLOCALS的值也是共有通用。

广域变量 Nonlocal Variable

LOCALLOCALS和私有变量以外几乎所有的变量、所有函数共享的变量。

也就是一般编程语言中“全局变量”的概念。

此外,ERH文件中可以用#DIM#DIMS来定义广域变量。 详细参考头文件(ERH)

全局变量 Global Variable

不同存档之间可以共享的变量。全局变量是广域变量中的一种。

全局变量与一般变量在保存、加载、初始化的时间是不同的。

Emuera中的全局变量与一般编程语言中的全局变量的概念并不相同。

私有变量 Private Variable

在函数中通过#DIM#DIMS来声明的变量。

私有变量是局部变量的一种,仅在当前函数的声明与定义中有效。

并不能像LOCALLOCALS从函数外部访问。

详细参考用户定义变量