参考手册¶
常规¶
解除原本的常时资源占用¶
在程序运行过程中,不再持续占用资源(Resource)文件夹中的图像文件。
支持播放音频文件¶
在与 Emuera 同路径的 sound 文件夹里放入音频文件即可使用。 更多详情请参照后文 PLAYSOUND 等命令的详细说明。
支持使用 WebP 格式的图像文件¶
参考 Emuera1824+v11+webp+Secure 支持 WebP 格式图片;从 EMv6+EEv13 版本开始使用另一个 WebP 支持库。
附带 Emuera-Anchor 版本¶
附带的 Emuera-Anchor 是 era 英语圈使用的 Emuera。 UI 菜单栏 / 设置项 / 报错信息等为英文,请根据实际需要选择使用。

Emuera-Anchor 的键盘按键扩展机能的移植¶
Emuera-Anchor 的键盘按键扩展机能的移植。用 Ctrl+T 返回标题画面、Ctrl+R 重启、Ctrl+O 重新读取 ERB 文件
按键宏文件以UTF-8保存¶
使按键宏文件得以支持其它语言
存档保存时进行压缩¶
可以在设置界面或者emuera.config中进行设置
- 该功能只有在「セーブデータをバイナリ形式で保存する」为
YES时有效
示例代码
セーブデータを圧縮して保存する:YES
注意
开启压缩功能的存档不兼容旧版本及本家版的 Emuera.exe。
Emuera 图标设置功能¶
可使用 emuera.config 中的设置项进行设定
请在设置项 Emueraのアイコンのパス 处输入图标图像的地址。地址为 Emuera.exe 的同级或子级地址。
只有标题栏和任务栏的图标会发生变化(Emuera.exe 的图标不会改变)。

Emuera-Anchor 的剪贴板功能的移植¶
添加了自动将 Emuera 的显示文字复制到剪贴板的功能。可在設定→剪贴板处设置。
常量 / 变量¶
使用 CSV 文件 / ERD 文件来调用 ERH 文件中定义的数组变量¶
读取方式类似在 ERH 文件中定义变量,并且可以像现在的 CSV 用法那样给数组命名。
CSV 文件夹下为 变量名.CSV,ERB 文件夹下为 变量名.ERD,调用语法仍与 CSV 变量相同。即使同一个变量存在多个设置文件,只有在定义了相同标识符的情况下,启动时会抛出错位并终止运行。不同标识符可以替换为同一个整数。
另外,需要为多维数组命名时,在对应的文件名之后加上 @ 和对应维度的数字,维度从左至右依次为 1、2、3。
例
#DIM HOGE, 3
#DIM HOGE2D, 3, 3
#DIM HOGE3D, 3, 3, 3
HOGE.ERD
HOGE2D@1.ERD
HOGE2D@2.ERD
HOGE3D@1.ERD
HOGE3D@2.ERD
HOGE3D@3.ERD
在 VariableSize.csv 中设置禁用 COUNT 变量¶
通过加入 COUNT,-1 行来禁用 COUNT 。若如此做,REPEAT 所在的行会在启动时弹出经过、并在运行时报错终止。
通过 CSV 来配置 DAY,TIME,MONEY¶
可用 DAY.csv,TIME.csv,MONEY.csv 来像其它 CSV 一样配置数值与名称转换,并应用于 DAYNAME,TIMENAME,MONEYNAME 变量
将XML、MAP、DataTable 数据保存进存档文件¶
可以利用CSV文件夹内的 VarExt*.csv 文件来设定需要保存的 XML、MAP、DataTable 的 ID。
- 该功能只有在「セーブデータをバイナリ形式で保存する」为
YES时有效 - 即使设定了 ID,若内存中不存在该数据则不会保存进存档文件。
- 存档中保存的数据的 ID 没有在 CSV 中设定时会被丢弃。
- 存档与旧版本及本家版的 Emuera.exe 兼容。
示例代码
; 设置希望保存在global.sav中的MAP, XmlDocument, DataTable的ID。一行可以设置多个。
; 也可用多行,多个文件(例如VarExt1.csv, VarExt2.csv, VarExt3.csv等)来进行设定。
GLOBAL_MAPS, MyMap, MyMap2
GLOBAL_MAPS, MyMap3
GLOBAL_XMLS, 0, MyXml
GLOBAL_DTS, db
; 设置希望保存在save*.sav中的MAP, XmlDocument, DataTable的ID。
SAVE_MAPS, MyMap4
SAVE_XMLS, 1, MyXml2
SAVE_DTS, mydb1
; 与有GLOBAL标记的变量类似,RESETDATA时不变,RESETGLOBAL时被删除
STATIC_MAPS, MyMap5
STATIC_XMLS, 1, MyXml3
STATIC_DTS, db2
注意
CSV文件所设置的 ID 的前后空格将被删除。
改变了标准库的命令 / 行内函数¶

HTML_PRINT 相关更改¶
HTML_PRINT的<space>标签可以给param属性指定负数值。HTML_PRINT添加<clearbutton>标签。<clearbutton>标签包围的内容不会被按钮化(title、pos属性的功能仍然有效)- 属性
notooltip为true时,同时将按钮的title属性无效化
- 属性
- 在设置
HTML_PRINT的<img>、<shape>的标签属性width、height、ypos、param时,在数值后添加px(不区分大小写)则使数值被识别为像素数而不是字体大小的百分比。 HTML_PRINT添加<div>标签。能够将<div>包围的内容将显示到指定范围的区域。<div>不支持嵌套。可以与其它标签同时使用。width属性:子区域的宽度。像<img>、<shape>标签一样タグ可以用px和字体大小的百分比来设定。height属性:子区域的高度。像<img>、<shape>标签一样タグ可以用px和字体大小的百分比来设定。xpos属性:子区域的高度距离当前位置的水平方向距离。可省略。负数左移,正数右移。像<img>、<shape>标签一样タグ可以用px和字体大小的百分比来设定。ypos属性:子区域的高度距离当前位置的垂直方向距离。可省略。负数上移,正数下移。像<img>、<shape>标签一样タグ可以用px和字体大小的百分比来设定。size属性:width与height的简略写法。格式:size='width,height'。rect属性:xpos、ypos、width与height的简略写法。格式:rect='xpos,ypos,width,height'。depth属性:子区域的深度。可省略。负数向视线反方向移动,正数向视线同方向移动。color属性:子区域的背景色。可省略。格式与<font>标签的color属性相同。display属性:子区域的渲染方式。可省略。relative(默认值):渲染在当前文字的现在位置。absolute:渲染在窗口的固定位置,滚动鼠标滚轮也不会移动。原点(0, 0)为窗口左下,ypos上方向为正。
margin属性:子区域的外边距。可省略。margin='all':all指定全部四条边。px、字体大小百分比均有效。margin='leftRight,topBottom':leftRight指定上下、leftRight指定左右。px、字体大小百分比均有效。margin='top,leftRight,bottom':top指定上、leftRight指定左右、bottom指定下。px、字体大小百分比均有效。margin='top,right,bottom,left':top指定上、right指定右、bottom指定下、left指定左。px、字体大小百分比均有效。
padding属性:子区域的内边距。可省略。格式与margin属性相同。border属性:子区域的边框宽度。可省略。格式与margin属性相同。bcolor属性:子区域的边框颜色。可省略。格式与margin属性相似,颜色格式与<font>标签的color属性相同。radius属性:子区域的边框圆角(半径)。可省略。radius='all':all指定全四角。px、字体大小百分比均有效。radius='ltRb,rtLb':ltRb指定左上和右下、rtLb右上和左下。px、字体大小百分比均有效。radius='lt,rtLb,rb':lt指定左上、rtLb指定右上和左下、rb指定右下。px、字体大小百分比均有效。radius='lt,rt,rb,lb':lt指定左上、rt指定右上、rb指定右下、lb指定左下。px、字体大小百分比均有效。
- 现在图像、
div之类的超过行高度的内容即使所在行移出画面也能正常显示了。 HTML_PRINT的<img>标签添加srcm属性。与 CBG 系列的按钮映射图像相似。执行 INPUT 系列命令的扩展模式或INPUTMOUSEKEY命令时,将鼠标正下方的按钮映射图像颜色(RGB部分)赋值到RESULT:3(INPUTMOUSEKEY时赋值到RESULT:6)。HTML_PRINT添加第二参数(整型)。第二参数不为0(默认值)时,不会发生强制换行。
示例代码
@SYSTEM_TITLE
HTML_PRINT "文<shape type='space' param='-100'>字"
HTML_PRINT "<clearbutton><button value='1' title='ツールチップ1'>[1] 確定</button></clearbutton>"
HTML_PRINT "<clearbutton notooltip='true'><button value='2' title='ツールチップ2'>[2] 戻る</button></clearbutton>"
HTML_PRINT "<shape type='rect' param='0,0,200px,100'>"
HTML_PRINT "<img src='button_normal' srcb='button_hover' srcm='button_mask'>"
HTML_PRINT "<div ypos='-5px' xpos='-180px' width='80px' height='80px' color='#503030' depth='-1'><button value='3'>[3] ボタン3</button></div>"
ONEINPUT
与 HTML_PRINT 有关的 PRINT 系列命令的更改¶
- 为
PRINT_IMG添加了多个参数0(可省略)和3个新的调用形式 - 可在
PRINT_IMG,PRINT_RECT,PRINT_SPACE的整型参数后添加关键字px(不区分大小写)
API
PRINT_IMG src
PRINT_IMG src, width, height, ypos
PRINT_IMG src, srcb, width, height, ypos
PRINT_IMG src, srcb, srcm, width, height, ypos
HTML_PRINT 命令的 <img> 标签相同 示例代码
@SYSTEM_TITLE
PRINT_IMG "Normal", "Hover", (500+A) px, 100
PRINT_SPACE 200 px
ONEINPUT

INPUT 系列命令支持接收鼠标点击事件¶
INPUT, INPUTS, ONEINPUT, ONEINPUTS 新增第二个参数(整数类型,可省略,默认为 0)。 TINPUT, TINPUTS, TONEINPUT, TONEINPUTS 新增第五个参数(整数类型,可省略,默认为 0)。 当新增的参数 == 0(或直接省略)的时候,行为与本家版 Emuera 相同。 当新增的参数 != 0 时将鼠标点击视为回车键。此时自动将 RESULTS(RESULTS:0 的简写)设置为空字符串; 鼠标按下时将 RESULTS:1 设置为按下的鼠标按键,左键为 1,右键为 2; 除此之外,同时按下 Shift / Ctrl / Alt 时,将 RESULT:2 设置为组合键的键位(bit 16 17 18)。

ONEINPUT 系列命令的默认值允许指定为 2 位 / 2 字符以上¶
ONEINPUT / ONEINPUTS / TONEINPUT / TONEINPUTS 的默认值允许指定为 2 位 / 2 字符以上。

LOADTEXT / SAVETEXT 允许指定文件名(以及路径)¶
LOADTEXT / SAVETEXT 第一个参数为字符串时,以此为路径加载 / 保存文件。 指定的路径必须为 Emuera.exe 同级的相对路径(试图使用 .. 回到更上级的目录是无效的)。此外,只允许使用设置界面或者 emuera.config 中配置的 LOADTEXTとSAVETEXTで使える拡張子 里包含的扩展名(默认只有 txt)。
示例代码
LOADTEXTとSAVETEXTで使える拡張子:txt,xml,json

REPLACE 的功能扩充¶
REPLACE 的第三个参数为字符串数组变量,第四个参数为 0 以外的值时,依次将与第二个参数相同的部分用字符串数组的内容替换,并返回替换后的结果。
示例代码
@SYSTEM_TITLE
#DIMS str = "pen", "apple"
#DIMS orig = "I have a {1}, I have an {2}, ..."
PRINTSL REPLACE(orig, "\\{\\d+\\}", str, 1)
ONEINPUT
I have a pen, I have an apple, ...

INPUTMOUSEKEY 支持直接获取按钮的值¶
当命令执行时若 RESULT:0 == 1(鼠标点击事件),被点击的按钮的值同时也会保存到 RESULT:5。

OUTPUTLOG 支持自定义输出日志的文件名¶
使用 OUTPUTLOG 的字符串参数(格式同 PRINTS)来指定输出日志的文件名(包括扩展名和路径)。 v5fix 修复了可以访问上级目录的安全性漏洞,现在只允许指定同级以及下级子目录。

GSETFONT 支持设置字体样式¶
第四个参数类似 SETFONT 的 4 bit 参数用法:1=粗体 2=斜体 4=删除线 8=下划线;可省略。

GETNUM的ERD支持¶
GETNUM 现在也支持 ERD 功能,追加了可省略的第3参数。第3参数用来指定数组维度,从左到右依次为 1, 2, 3 (注意这与行内函数 VARSIZE 的指定行为不同) 另外,追加了 VARSIZE 使用与 ERD 相同的维度指定方式的配置选项。

GCLEAR 支持用指定颜色替换指定区域¶
添加了函数形式2,第三至第六个参数可以指定目标区域的X、Y、宽、高了。
API
1. GCLEAR GID, cARGB
2. GCLEAR GID, cARGB, x, y, width, height
新增的命令 / 行内函数¶
HTML 系列¶
| 函数名 | 参数 | 返回值 |
|---|---|---|
HTML_STRINGLEN | string(, int) | int |
HTML_SUBSTRING | string, int | string |
字符串操作 / 引用¶
| 函数名 | 参数 | 返回值 |
|---|---|---|
REGEXPMATCH | string, string(, int) | int |
string, string, ref int, ref string[] | int |
变量操作 / 变量引用 / CSV 引用¶
| 函数名 | 参数 | 返回值 |
|---|---|---|
ISDEFINED | string | int |
EXISTVAR | string | int |
ENUMFUNCBEGINSWITH | string | int |
ENUMFUNCENDSWITH | string | int |
ENUMFUNCWITH | string | int |
ENUMVARBEGINSWITH | string | int |
ENUMVARENDSWITH | string | int |
ENUMVARWITH | string | int |
ENUMMACROBEGINSWITH | string | int |
ENUMMACROENDSWITH | string | int |
ENUMMACROWITH | string | int |
GETVAR | string | int |
GETVARS | string | string |
SETVAR | string, any | 1 |
VARSETEX | string, any(, int, int, int) | 1 |
ARRAYMSORTEX | string, ref string[](, int, int) | 1 |
ref int, ref string[](, int, int) | 1 | |
ERDNAME | variable, int(, int) | string |
输入 / 等待¶
| 函数名 | 参数 | 返回值 |
|---|---|---|
INPUTANY | 无 | int / string |
调试辅助 / 系统流程控制¶
| 函数名 | 参数 |
|---|---|
QUIT_AND_RESTART | 无 |
FORCE_QUIT | 无 |
FORCE_QUIT_AND_RESTART | 无 |
FORCE_BEGIN | identifier |
提示框处理相关¶
| 函数名 | 参数 |
|---|---|
TOOLTIP_CUSTOM | int |
TOOLTIP_SETFONT | string |
TOOLTIP_SETFONTSIZE | int |
TOOLTIP_FORMAT | int |
函数系列(CALL 相关)¶
| 函数名 | 参数 |
|---|---|
EXISTFUNCTION | string |
TRYCALLF | string |
TRYCALLFORMF | formedString |
图像处理相关¶
| 函数名 | 参数 | 返回值 |
|---|---|---|
GDRAWTEXT | int, string(, int, int) | int |
GGETFONT | int | int |
GGETFONTSIZE | int | int |
GGETFONTSTYLE | int | int |
GGETTEXTSIZE | string, string, int(, int) | int |
GDRAWGWITHROTATE | int, int, int(, int, int) | int |
GGETPEN | int | int |
GGETPENWIDTH | int | int |
GGETBRUSH | int | int |
音频处理相关¶
| 函数名 | 参数 | 返回值 |
|---|---|---|
PLAYSOUND | string | 无 |
STOPSOUND | 无 | 无 |
PLAYBGM | string | 无 |
STOPBGM | 无 | 无 |
EXISTSOUND | string | int |
SETSOUNDVOLUME | int | 无 |
SETBGMVOLUME | int | 无 |
XML 文件处理相关¶
| 函数名 | 参数 | 返回值 |
|---|---|---|
XML_DOCUMENT | any, string | int |
XML_RELEASE | any | 1 |
XML_EXIST | any | int |
XML_GET | any, string(, int, int) | int |
any, string, ref string[](, int) | int | |
XML_GET_BYNAME | string, string(, int, int) | int |
string, string, ref string[](, int) | int | |
XML_SET | int, string, string(, int, int) | int |
ref string, string, string(, int, int) | int | |
XML_SET_BYNAME | string, string, string(, int, int) | int |
XML_TOSTR | int | string |
XML_ADDNODE | int, string, string(, int, int) | int |
ref string, string, string(, int, int) | int | |
XML_ADDNODE_BYNAME | string, string, string(, int, int) | int |
XML_REMOVENODE | int, string(, int) | int |
ref string, string(, int) | int | |
XML_REMOVENODE_BYNAME | string, string(, int) | int |
XML_REPLACE | int, string | int |
int, string, string(, int) | int | |
ref string, string, string(, int) | int | |
XML_REPLACE_BYNAME | string, string, string(, int) | int |
XML_ADDATTRIBUTE | int, string, string(, string, int, int) | int |
ref string, string, string(, string, int, int) | int | |
XML_ADDATTRIBUTE_BYNAME | string, string, string(, string, int, int) | int |
XML_REMOVEATTRIBUTE | int, string(, int) | int |
ref string, string(, int) | int | |
XML_REMOVEATTRIBUTE_BYNAME | string, string(, int) | int |
MAP(映射数组)相关¶
| 函数名 | 参数 | 返回值 |
|---|---|---|
MAP_CREATE | string | int |
MAP_EXIST | string | int |
MAP_RELEASE | string | 1 |
MAP_GET | string, string | string |
MAP_HAS | string, string | int |
MAP_SET | string, string, string | int |
MAP_REMOVE | string, string | int |
MAP_SIZE | string | int |
MAP_CLEAR | string | int |
MAP_GETKEYS | string | string |
string, int | string | |
string, ref string[], int | string | |
MAP_TOXML | string | string |
MAP_FROMXML | string, string | int |
DataTable(数据库)相关¶
| 函数名 | 参数 | 返回值 |
|---|---|---|
DT_CREATE | string | int |
DT_EXIST | string | int |
DT_RELEASE | string | 1 |
DT_CLEAR | string | int |
DT_NOCASE | string, int | int |
DT_COLUMN_ADD | string, string(, any, int) | int |
DT_COLUMN_EXIST | string, string | int |
DT_COLUMN_REMOVE | string, string | int |
DT_COLUMN_LENGTH | string | int |
DT_COLUMN_OPTIONS | string, string, keyword, any([,keyword, any] ...) | 无 |
DT_ROW_ADD | string([, string, any] ...) | int |
string, ref string[], ref any[], int | int | |
DT_ROW_SET | string, int, string, any([, string, any] ...) | int |
string, int, ref string[], ref any[], int | int | |
DT_ROW_REMOVE | string, int | int |
string, ref int[], int | int | |
DT_ROW_LENGTH | string | int |
DT_CELL_GET | string, int, string(, int) | int |
DT_CELL_GETS | string, int, string(, int) | string |
DT_CELL_ISNULL | string, int, string(, int) | int |
DT_CELL_SET | string, int, string(, any, int) | int |
DT_SELECT | string(, string, string, ref int[]) | int |
DT_TOXML | string(, ref string) | string |
DT_FROMXML | string, string, string | int |
其他¶
| 函数名 | 参数 | 返回值 |
|---|---|---|
EXISTFILE | string | int |
ENUMFILES | string(, string, int) | int |
UPDATECHECK | 无 | 无 |
GETMEMORYUSAGE | 无 | int |
CLEARMEMORY | 无 | int |
SETTEXTBOX | string | 1 |
GETTEXTBOX | 无 | string |
MOVETEXTBOX | int, int, int | 1 |
RESUMETEXTBOX | 无 | 1 |