跳转至

参考手册

常规

解除原本的常时资源占用

在程序运行过程中,不再持续占用资源(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中进行设置

示例代码

emuera.config
セーブデータを圧縮して保存する:YES

注意

开启压缩功能的存档不兼容旧版本及本家版的 Emuera.exe。

Emuera 图标设置功能

可使用 emuera.config 中的设置项进行设定

请在设置项 Emueraのアイコンのパス 处输入图标图像的地址。地址为 Emuera.exe 的同级或子级地址。

只有标题栏和任务栏的图标会发生变化(Emuera.exe 的图标不会改变)。

Emuera-Anchor 的剪贴板功能的移植

添加了自动将 Emuera 的显示文字复制到剪贴板的功能。可在設定→剪贴板处设置。

常量 / 变量

使用 CSV 文件 / ERD 文件来调用 ERH 文件中定义的数组变量

读取方式类似在 ERH 文件中定义变量,并且可以像现在的 CSV 用法那样给数组命名。

CSV 文件夹下为 变量名.CSVERB 文件夹下为 变量名.ERD,调用语法仍与 CSV 变量相同。即使同一个变量存在多个设置文件,只有在定义了相同标识符的情况下,启动时会抛出错位并终止运行。不同标识符可以替换为同一个整数。

另外,需要为多维数组命名时,在对应的文件名之后加上 @ 和对应维度的数字,维度从左至右依次为 123

ERH.ERH
#DIM HOGE, 3
#DIM HOGE2D, 3, 3
#DIM HOGE3D, 3, 3, 3
ERBフォルダ
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 来配置 DAYTIMEMONEY

可用 DAY.csvTIME.csvMONEY.csv 来像其它 CSV 一样配置数值与名称转换,并应用于 DAYNAMETIMENAMEMONEYNAME 变量

XMLMAPDataTable 数据保存进存档文件

可以利用CSV文件夹内的 VarExt*.csv 文件来设定需要保存的 XMLMAPDataTable 的 ID。

  • 该功能只有在「セーブデータをバイナリ形式で保存する」为 YES 时有效
  • 即使设定了 ID,若内存中不存在该数据则不会保存进存档文件。
  • 存档中保存的数据的 ID 没有在 CSV 中设定时会被丢弃。
  • 存档与旧版本及本家版的 Emuera.exe 兼容。

示例代码

VarExtSample.CSV
; 设置希望保存在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> 标签包围的内容不会被按钮化(titlepos属性的功能仍然有效)
    • 属性notooltiptrue时,同时将按钮的title属性无效化
  • 在设置 HTML_PRINT<img><shape> 的标签属性 widthheightyposparam 时,在数值后添加 px(不区分大小写)则使数值被识别为像素数而不是字体大小的百分比。
  • HTML_PRINT 添加 <div> 标签。能够将 <div> 包围的内容将显示到指定范围的区域。<div> 不支持嵌套。可以与其它标签同时使用。
    • width 属性:子区域的宽度。像 <img><shape> 标签一样タグ可以用 px 和字体大小的百分比来设定。
    • height 属性:子区域的高度。像 <img><shape> 标签一样タグ可以用 px 和字体大小的百分比来设定。
    • xpos 属性:子区域的高度距离当前位置的水平方向距离。可省略。负数左移,正数右移。像 <img><shape> 标签一样タグ可以用 px 和字体大小的百分比来设定。
    • ypos 属性:子区域的高度距离当前位置的垂直方向距离。可省略。负数上移,正数下移。像 <img><shape> 标签一样タグ可以用 px 和字体大小的百分比来设定。
    • size 属性:widthheight 的简略写法。格式:size='width,height'
    • rect 属性:xposyposwidthheight 的简略写法。格式:rect='xpos,ypos,width,height'
    • depth 属性:子区域的深度。可省略。负数向视线反方向移动,正数向视线同方向移动。
    • color 属性:子区域的背景色。可省略。格式与 <font> 标签的 color 属性相同。
    • display 属性:子区域的渲染方式。可省略。
      • relative(默认值):渲染在当前文字的现在位置。
      • abosolute:渲染在窗口的固定位置,滚动鼠标滚轮也不会移动。原点 (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:3INPUTMOUSEKEY 时赋值到 RESULT:6)。
  • HTML_PRINT 添加第二参数(整型)。第二参数不为 0(默认值)时,不会发生强制换行。

示例代码

MAIN.ERB
@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> 标签相同

示例代码

MAIN.ERB
@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 时将鼠标点击视为回车键。此时自动将 RESULTSRESULTS: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)。

示例代码

emuera.config
LOADTEXTとSAVETEXTで使える拡張子:txt,xml,json

REPLACE 的功能扩充

REPLACE 的第三个参数为字符串数组变量,第四个参数为 0 以外的值时,依次将与第二个参数相同的部分用字符串数组的内容替换,并返回替换后的结果。

示例代码

MAIN.ERB
@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=下划线;可省略。

GETNUMERD支持

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