零基础开发 era 游戏 #4 配置文件详解
配置文件运行原理#
请注意:任何配置文件的 字符集编码
都默认为 Shift JIS
,不过也兼容 UTF-8 with BOM
,实际使用时推荐后者。
当 ./CSV/
目录下存在名为 _default.config
或 _fixed.config
的配置文件时,Emuera 会读取这些文件,并应用到实际配置。
所有配置文件的具体设置项都是相同的,区别只是优先级不同而已。
可以理解为按照顺序依次读取:
./CSV/_default.config
初始化默认配置(预配置)文件:
你希望(但不强求)玩家采取的设置./emuera.config
常规配置文件:
Emuera 运行之初自动生成的设置./CSV/_fixed.config
强制修正配置文件:
你强制要求玩家采取的设置
「后读取的配置」会覆盖掉「之前读取的配置」。
一、初始化默认配置(预配置)文件#
第一次启动 Emuera 时,在 ./CSV/
目录下——
- 如果存在
;_default.config
- 并且项目根目录
./
(有Emuera*.exe
)下不存在 ;emuera.config
则按照 _default.config
emuera.config
二、常规配置文件#
2.1. 生成常规配置文件
第一次启动 Emuera 时,如果项目根目录 ./
(有 Emuera*.exe
)下不存在 emuera.config
2.2. 修改常规配置
成功启动 Emuera 之后,从菜单栏的「帮助」(Alt + H)选项里选择「设置」(Alt + C)可以直接修改设置。
另外,用文本编辑器直接编辑 emuera.config
如果想恢复初始的默认设置,可以直接删掉 emuera.config
三、强制修正配置文件#
第一次启动 Emuera 时并加载 emuera.config
./CSV/
目录下存在 _fixed.config
emuera.config
开发时需要注意的原则
由于 _fixed.config
emuera.config
_fixed.config
一般来说玩家很难通过正常方式对修改其中他不想要的设置,除非他也看了本文或其他描述了配置文件如何运作的文档。
因此请将 _fixed.config
可配置项具体作用#
翻译自官方文档的 配置文件 一章。
注意,以下内容非常非常非常长(我都不知道自己当初怎么硬啃下来的),请善用右侧目录以及 Ctrl + F 提高效率。
一、环境相关设置#
1.1. マウスを使用する
マウスを使用する:YES
是否允许使用鼠标操作。
1.2. メニューを使用する
メニューを使用する:YES
是否允许使用菜单栏(重启、重载文件、修改配置等功能)。
1.3. デバッグコマンドを使用する
デバッグコマンドを使用する:NO
是否允许主窗口使用调试命令。
调试控制台窗口可以无视这个选项的限制继续执行调试命令。
1.4. 多重起動を許可する
多重起動を許可する:YES
是否允许同一时间重复启动多个 Emuera 程序。
1.5. キーボードマクロを使用する
キーボードマクロを使用する:YES
是否允许使用 F1 到 F12 的按键宏(在 ./macro.txt
里设置)。
原文注:使用
ONEINPUT
/ONEINPUTS
命令时,按键宏无法正常工作很正常。
(译注:完全不正常吧你就不能修复这个 bug 吗)
1.6. オートセーブを行なう
オートセーブを行なう:YES
执行 BEGIN SHOP
命令时是否自动保存。
这个功能可以在
*.erb
脚本中禁用,因此即便在配置文件中开启了这个选项,有时也不会自动保存。
换句话说,如果作者想要提升游戏难度,可以禁止玩家自动保存,即使他们在配置文件中开启了这个设置。(比如毒菇正则的三作 RPG / SAS / KGB)
1.7. セーブデータを sav フォルダ内に作成する
セーブデータをsavフォルダ内に作成する:YES
是否使用专门的文件夹(./sav/
)存放
如果从「NO」修改为「YES」,并且
./sav/
不存在,Emuera 会弹出对话框询问是否迁移存档。
回答「确定(迁移存档)」会将所有的存档文件(包括global.sav
和save*.sav
)全部迁移到./sav/
目录下。如果从「YES」修改为「NO」,请手动迁移存档。
如果你的游戏更新版本,并把此项的默认设置从「YES」修改为「NO」,请提醒你的玩家手动迁移存档,否则他们会发现存档不见了。
你不能拒绝连sav
是存档都不清楚的小白玩你的游戏,他们并没有错。
1.8. 履歴ログの行数
履歴ログの行数:5000
指定保存的历史记录的最大行数,最低为 500
。
1.9. 無限ループ警告までのミリ秒数
無限ループ警告までのミリ秒数:10000
指定判定为无限循环的时间,单位为毫秒(ms)。如果在指定的时间内没有执行命令,则视为进入死循环,弹出警告框。
(如果设置为 0
,这个功能会失效。)
有这个设定是因为 Emuera 不支持多线程(UI 线程 + 运算线程分离),主线程阻塞就意味着整个程序卡死。
另外注意超时过久(大概 30 秒)一样会被操作系统判定为「程序未响应」。
$LOOP WAIT GOTO LOOP
以上脚本是死循环,但因为中间插入了 WAIT
命令,所以不会被警告。
即使是使用鼠标右键或 ESC 跳过信息的时候,只要插入了
WAIT
命令 也不会被警告。(译注:这句看没懂。意思是没插WAIT
的话,跳过用时过久也会弹警告?)
我的理解是WAIT
等于响应,哪怕间隔时间非常短,那也是有响应。
1.10. 使用するセーブデータ数
表示するセーブデータ数:20
指定默认的 Save / Load 界面显示的存档槽位数量。
最低为 20
(与 eramaker 一样),最高为 80
。
1.11. 関連づけるテキストエディタ
関連づけるテキストエディタ:notepad
当你点击错误信息时会自动以编辑器打开文件,指定此时默认使用的文本编辑器程序(notepad
是记事本)。
1.12. コマンドライン引数
コマンドライン引数:
指定用文本编辑器打开相关文件时传递的命令行参数。
比如上一个选项设置为
Notepad++
,这个选项设置为-n
,那么执行时为Notepad++ -n
(启动「Notepad++」并显示行号)。
二、显示相关设置#
2.1. 描画インターフェース
描画インターフェース:GRAPHICS
指定绘制界面的方式,可选:
- 「
WINAPI
」:用gdi32.dll
的TextOut()
绘制。(GDI 绘制)1.700
新增的绘制方式,一般情况下比其他方式快。 - 「
GRAPHICS
(默认值)」:用Graphics.DrawString()
绘制。(GDI+ 绘制)
与旧版设置GDI+を使う:YES
行为相同。 - 「
TEXTRENDERER
」:用TextRenderer.DrawText()
绘制。(GDI 绘制)
与旧版设置GDI+を使う:NO
行为相同。
(イメージバッファを使用する)
于版本 1.818
后废弃,新版本更新了绘制算法,已不再需要图像缓冲功能。
(描画に GDI+を用いる)
于版本 1.700
后废弃,上位替代见 2.1. 描画インターフェース。
至于这个设置原来究竟叫
GDI+を使う
还是描画にGDI+を用いる
谁也不知道,官方 Wiki 就这么写的。不过无所谓了,反正已经废弃了。
2.2. フレーム毎秒
フレーム毎秒:5
图像绘制频率(每秒帧数)。
(最大スキップフレーム数)
最大跳过帧数,已废弃。
2.3. PRINTC を並べる数
PRINTCを並べる数:3
系统通过 PRINT_SHOPITEM
等方式执行 PRINTC
命令时,每隔几次换行。换言之,一行排几个按钮(eramaker 是 3)。
设置为 0
时不会进行换行,此时设置 ボタンの途中で行を折りかえさない:YES
,则超出窗口大小时就会自动换行。
2.4. PRINTC の文字数
PRINTCの文字数:26
在 PRINTC
最终打印前会自动在左侧添加半角空格以纵向对齐选项,预设的目标长度(eramaker 是 25)。
商店(SHOP
)场景商品是「商品名长度 + 1」。
一行能排版的字符大约是「
窗口宽度
/字体高度
× 2」,因此本项设置的值理论上应该 <「最长的PRINTC
的字符数 × 所有PRINTC
的总数」。
2.5. ボタンの途中で行を折りかえさない
ボタンの途中で行を折りかえさない:YES
是否禁止从按钮中间截断,默认值为 NO
(和 eramaker 一样)。
启用后,排不下的按钮会提行到下一排显示,和英文单词排版(wrap)一个道理。
三、窗口相关设置#
3.1. ウィンドウ幅
ウィンドウ幅:760
指定启动时的窗口宽度,注意不是程序窗口的宽度,而是「绘制区域」的宽度。
(不包括右侧的滚动条。)
3.2. ウィンドウ高さ
ウィンドウ高さ:480
指定启动时的窗口高度,这里指的是标题栏和菜单栏下方「绘制区域」的高度。
3.3. ウィンドウの高さを可変にする
ウィンドウの高さを可変にする:YES
是否允许运行时改变窗口高度(Height)。
至于运行时窗口的「宽度(Width)」本来就是启动之后禁止动态改变的。
3.4. 起動時にウィンドウを最大化する
起動時にウィンドウを最大化する:NO
是否在启动时最大化显示窗口(仅高度,宽度仍会被限制)。
3.5. 起動時のウィンドウの位置を固定する
起動時のウィンドウ位置を指定する:NO
是否指定启动时窗口出现的位置。
如果设置为 NO
,下面两个设置即使设置了具体的值也不会生效。
3.6. ウィンドウ位置 X
ウィンドウ位置X:0
如果设置了启动时窗口从固定位置出现,指定出现时的 X 座标。
Emuera 用的屏幕座标系是以左上角为原点
(0, 0)
,越往右 X 越大,越往下 Y 越大。
3.7. ウィンドウ位置 Y
ウィンドウ位置Y:0
如果设置了启动时窗口从固定位置出现,指定出现时的 Y 座标。
3.8. スクロールの行数
スクロール行数:3
指定鼠标滚轮每次卷动的行数。
注意实际设置为
スクロール行数
(没有の
),官方 Wiki 就写了个スクロールの行数
,NMD 会写文档就多写点。
我没被这个坑到是我机智提前把坑填平了,你想像一下「debug 一下午最后发现你哪都没错,只是官方文档写错了,少写了一个字符」吧。
四、字体相关设置#
4.1. 背景色
背景色:0,0,0
指定背景颜色。
4.2. 文字色
文字色:192,192,192
指定文字颜色,如果代码中使用了 SETCOLOR
则优先显示 SETCOLOR
的颜色。
4.3. 選択中文字色
選択中文字色:255,255,0
指定鼠标指向「可选按钮」的文字颜色。
4.4. 履歴文字色
履歴文字色:192,192,192
指定历史记录的文字颜色,类似一般文字,同样有 SETCOLOR
优先。
4.5. フォント名
フォント名:MS ゴシック
指定默认显示文本使用的字体名称,不能使用光栅字体。
4.6. フォントサイズ
フォントサイズ:16
指定默认显示文本使用的字体高度,单位是像素(px
)。
4.7. 一行の高さ
一行の高さ:16
指定显示每行文字的高度,单位是像素(px
)。
如果「行高」和「字高」相等,根据字体设计(时水平方向的基准线高度)不同可能会出现上边或下边被吞掉的现象。
推荐「行高」设置为比「字高」大1
~3
个像素。
五、系统相关设置#
注意:第五部分的设置都是关于 .erb
脚本执行的细节。
玩家擅自修改可能会导致游戏无法正常运行。
如果修改设置导致游戏出错可以删掉
./emuera.config
重新生成一份新的配置文件。
5.1. 大文字小文字の違いを無視する
大文字小文字の違いを無視する:YES
是否无视大小写字母之间的区别(或者说「忽略大小写」「不区分大小写」),默认为 YES
。
如果你准备开启一个新项目,并且愿意哪怕多花那么一丁点心思来提升项目健壮性,我个人非常建议改成
NO
(区分大小写)。
5.2. _Rename.csv
を利用する
_Rename.csvを利用する:YES
是否启用由「EraMakerEx」开创的 _Rename.csv
功能。
5.3. _Replace.csv
を利用する
_Replace.csvを利用する:YES
是否启用「Emuera 私家改造版」1.52a-c
新增的 _Replace.csv
功能。
5.4. サブディレクトリを検索する
サブディレクトリを検索する:YES
是否允许引擎检索 ./CSV/
和 ./ERB/
的「子目录(二级目录及以上)」中的相应文件。
所有的
*.erb
文件都会被检索到。
注意.csv
文件里只有Chara*.csv
会被检索到,别的*.csv
不行。
读取时优先读取子目录下的文件;另外,如果设置了読み込み順をファイル名順にソートする:YES
,读取文件夹时也会按照名字排序。
5.5. 読み込み順をファイル名順にソートする
読み込み順をファイル名順にソートする:YES
读取文件的顺序是否按照文件名排序,默认为 NO
(此时按照 C# 的 Directory.GetFiles()
函数返回的顺序依次读取)。
GetFiles()
函数其实是根据动态链接库 Kernel32.dll
中的 FindNextFile()
函数获得文件排序的,实际顺序取决于文件系统。GetFiles()
有可能重现 eramaker 的效果,同时这也会导致同一个脚本集(era 游戏)在不同操作系统下的表现不同。
此外,如果设置为 YES
,会对获得的文件列表先按照名称排序再依次进行读取,这种情况下你使用的文件系统(这里指的是当年普遍使用的 FAT32
,最多也不过是 exFAT
)表现和 NTFS
会有差异。
私货折叠
都要 2023 年了,微软连当年言之凿凿放的「Win 10 是 Windows 最后一个版本」这个屁都 TM 吸回去,想要淘汰 Win 10 了。
还搁这「哎呀跟 NTFS
有差异」呢?你看看你的硬盘(右键 - 属性 - 文件系统),就是 NTFS
吧?
吐槽一下:无视时代的局限性,硬喷文档过时并不可取。但就算不说文档时效性这一茬,妈的他说了这么多还是没说到点子上,翻得我急死了。
总之这个设置对开发者的影响就是比方说你手滑,在两个文件同时定义了同一个函数。(当然这是开发中应该尽量避免的低级错误)
但就是万一,不幸中的不幸,出现了这种情况:
A.erb
里说CHECK_PREGNANCY()
的返回值是YES
;B.erb
里说CHECK_PREGNANCY()
的返回值是NO
,那到底怀没怀孕?
此时怀没怀取决于文件系统,如果先读取的是 A.erb
就怀了,B.erb
就没怀,大概就这样。
主要问题在于,当你重复定义同一个函数名时,默认配置下是没有任何警告的。
P.S. 后续更新:后来翻到了原 Wiki 确实 提到过一嘴,就是我刚讲的这段,比我说得还严重:「某些没有考虑到文件读取顺序的脚本集(era 游戏),换了个读取顺序可能直接跑不起来了」。emmm,我没什么好说的。你这说明挺能藏啊,生怕读你文档的人看懂了是吧。
5.6. システム関数の上書きを許可する
システム関数の上書きを許可する:YES
是否允许重写系统函数(允许「YES
。
此条感谢「傲視長空」帮忙校对翻译,我才(勉强)读懂了。
5.7. システム関数が上書きされたとき警告を表示する
システム関数が上書きされたとき警告を表示する:YES
是否显示系统函数已经被重写(参见上一条设置项)的警告,默认是 YES
。
(如果已经设置了 システム関数の上書きを許可する:YES
的情况下,无论本条设置是否启用,总是会显示警告。)
译注:那这条设置有毛用啊,完全没懂。
一、允许重写必然报警告。
二、不允许重写,但又进行了重写,那就不是你警不警告的问题了,不是必然报错吗?
难道说,设置了「システム関数の上書きを許可する:NO
(不许重写)」然后重写,并不会出事?那你设置的警告是什么?寂寞吗?
5.8. 同名の非イベント関数が複数定義されたとき警告する
同名の非イベント関数が複数定義されたとき警告する:YES
是否显示「定义了多个同名函数」的警告。(就是 5.5. 最后吐槽的问题)
在 eramaker 里同名函数只有第一个加载的有效,之后的会被忽略。
私货折叠
他还说「某些场景下可能很有用(この仕様は有用な場合はありますが)」,我人麻了。求求了,不要他妈的写出他妈的这种场景。
你都干出「同一个项目写了两个同名函数」这种事了,还正常呢,甚至于还「有用」呢?你把没用上的那些同名函数改下名会怎么样?
你非得「我赌你今天不出 bug」吗?梭哈是一种智慧.mp3
5.9. 全角スペースをホワイトスペースに含める
全角スペースをホワイトスペースに含める:YES
是否在脚本解析时将全角空格视为标准空格,默认是 YES
。
意义不大,最新的「私家定制版」允许「同时使用」Tab 制表符(
\t
)和空格;甚至「混用」;甚至「不用」任何缩进。
再重复一遍:缩进在代码层面没有任何意义,只是给你自己看的。
这个功能大概只有STRLEN
之类的计算字符串长度的时候有点用。
5.10. 内部で使用する東アジア言語
内部で使用する東アジア言語:JAPANESE
指定程序内部运行 STRLENS
等命令时使用的语言,默认是日语(ja-JP
)。
可选项:
- 日语
ja-JP
(字符集编码Shift JIS
,默认选项) - 韩语
ko-KR
- 简体中文
zh-CN
(未测试) - 繁体中文
zh-TW
(未测试)
跟游戏内容的语言无关,era 游戏的架构是这样:
- 「玩家」玩游戏
- 「era 游戏制作者」写脚本做游戏 ← 决定玩家玩到的游戏内容的实际语言
- 「Emuera 引擎开发者」做引擎 ← 本项设置发生的阶段
5.11. FORM 中の三連記号を展開しない
FORM中の三連記号を展開しない:NO
是否无视简写的三连连字符,默认为 NO
(启用连字符功能)。
连字符:
+++
表示主角(调教者)的呼び名
、***
表示调教对象的名前
、$$$
表示调教对象的呼び名
、///
表示助手的名前
、===
表示助手的呼び名
。
私货折叠
多嘴提一句,他这个配置项的逻辑设计是标准的「错误示范」。
(其实还有之前的「启用不区分大小写」)
但也不一定怪 Emuera,也可能是 eramaker 写的,他只是为了兼容性不得不将这种写法继承下来。
我不清楚其中真相,就不做更多评价了,总之这是非常不提倡的写法。
「当你写代码的时候,尽量不要使用双重、三重甚至更多重否定。」
翻来覆去的图个啥?你搁这烙饼呢?
你体会一下:「当设置为 YES
的时候,一个功能被禁用了;当设置为 NO
的时候,一个功能被启用了」。
往轻了说,这叫「反直觉」「烧脑」;往重了说,这叫反人类设计。
5.12. セーブデータをバイナリ形式で保存する
セーブデータをバイナリ形式で保存する:YES
是否以二进制格式保存 Save(存档)数据,默认是 NO
(以文本格式保存)。
请注意,以二进制格式保存不一定能节省更多空间,反之亦然。
另外当使用 #DIM SAVEDATA
来定义可保存的 字符串变量 或 多维字符串变量 时,这个选项必须设置为 YES
。
5.13. セーブデータを UTF-8 で保存する
セーブデータをUTF-8で保存する:YES
是否使用 UTF-8 with BOM
编码保存 Save(存档)数据,默认为 NO
(以 Shift JIS
格式保存)。
5.14. ONEINPUT 系命令でマウスによる 2 文字以上の入力を許可する
ONEINPUT系命令でマウスによる2文字以上の入力を許可する:NO
是否允许 ONEINPUT
系命令输入多个字符,默认为 NO
(只取输入的第一个字符)。
此条感谢「CK Rainbow」帮忙校对翻译。
注意此项设置不会在设置窗口中显示,只能通过编辑 emuera.config
来修改。
六、兼容性相关设置#
注意:第六部分的设置都是关于兼容性问题的解决,如 Emuera 和 eramaker 之间、Emuera 新旧不同版本之间表现出不同行为。
如果默认设置没有问题,不要动它。 如果你是新开的项目,找一个最 bug 最少的 Emuera 版本,然后无视以下(第六部分)设置。
6.1. 解釈不能な行があっても実行する
解釈不可能な行があっても実行する:NO
是否无视「无法解释的」脚本代码行(双重否定是他写的,不怪我),默认为 NO
。
私货折叠
我再吐槽一遍:「YES / NO」的二选一,能搞出双重否定的描述,是离谱打死了假离谱去看望他妈的妈——真的离谱到姥姥家了。
默认 disable_feature = false
,「代码层面」有这种玩意多少还能原谅,有可能是服务于效率优先的特别设计。
都做到「人机交互层面」了你还他妈来这套,写成 enable_feature = true
会死吗?
就说这个选项,改成:「是否只运行可以解释的代码
= 默认 YES
」,有那么难吗?
落到程序层面,不用他改动任何一行底层代码,他只要读取配置后加一行 解釈不可能な行があっても実行する = !是否只运行可以解释的代码
取个反就行了。
我真的服了,哥。
6.2. CALLNAME が空文字列の時に NAME を代入する
CALLNAMEが空文字列の時にNAMEを代入する:NO
当昵称 / 爱称为空时,是否直接应用正式名字(NO
则留空)。
6.3. 擬似変数 RAND の仕様を eramaker に合わせる
擬似変数RANDの仕様をeramakerに合わせる:NO
是否使 RAND
命令的作用效果向 eramaker 里的看齐。
6.4. 関数・属性については大文字小文字を無視しない
関数・属性については大文字小文字を無視しない:NO
是否区分函数名 / 属性名的大小写,默认为 NO
(NO = 函数/属性名不区分大小写)。
原文这里说的:「是否 不要 忽略 大小写」,我……
私货折叠
先绕你一波,然后也不解释清楚,反而跑去说什么跟 eramaker 的区别。
再反手引入另一个设置项 大文字小文字の違いを無視する
的新概念,然后说这两个如何如何设置能和 eramaker 表现一致。
还是那句话,他写个文档跟生怕你把他写的什么意思搞懂了一样。
我能看懂你写的东西说明你开发水平不够高、显得你很没面子是吗?
非要曲高和寡才能显出你的能耐?真是够了,血压起来了。
6.5. イベント関数の CALL を許可する
イベント関数のCALLを許可する:NO
是否允许调用(CALL
)系统内置的事件函数。
6.6. ver1739 以前の非ボタン折り返しを再現する
ver1739以前の非ボタン折り返しを再現する:NO
是否将「按钮以外的 DRAWLINE
之类的命令」渲染时的换行规则,回调到 1739
及之前的版本。
(DRAWLINE を常に新しい行で行う)
DRAWLINEを常に新しい行で行う
(此项设置已废弃,上一个设置包含了这个的功能。)
是否使 DRAWLINE
命令永远显示在新的一行。
6.7. ユーザー関数の全ての引数の省略を許可する
ユーザー関数の全ての引数の省略を許可する:NO
当调用「用户自定义函数」时,是否允许忽略所有参数。
6.8. ユーザー関数の引数に自動的に TOSTR を補完する
ユーザー関数の引数に自動的にTOSTRを補完する:NO
当「将 数值
当作 字符串
给 用户定义函数
传参」时,是否自动将数值转换为字符串。
然后他下面说:
「1820
(1819+v10
)之前,有一个 bug 导致这个选项的作用和实际描述是相反的。」
(大概吧,我已经放弃思考了)
6.9. SP キャラを使用する
SPキャラを使用する:NO
是否恢复原本已经在 1816
之后删除的「SP 角色」功能。
「SP 角色」即「同一个角色的不同版本」,即「允许重复定义同一个 ID 的角色」。
感谢「CK Rainbow」的指正。
七、分析相关设置#
7.1. eramaker 互換性に関する警告を表示する
eramaker互換性に関する警告を表示する:NO
当写法不兼容原版 eramaker 语法时,是否显示警告。
7.2. ロード時にレポートを表示する
ロード時にレポートを表示する:NO
加载时是否显示总行数等统计数据,如果为 NO
,则显示 _Replace.csv
中指定的加载信息。
7.3. ロード時に引数を解析する
ロード時に引数を解析する:YES
加载时是否解析参数。
如果设置为 YES
(加载时解析)会「大大拖慢」加载速度,但也会让加载成功后的运行速度「稍微快一点」。
如果你的目的不是 debug 而是正常游玩,(Emuera 本家作者)建议设置为 NO
。
具体可设置选项:
NO
:不解析。ONCE
:仅当*.csv
或*.erb
文件有更新时解析。YES
:总是解析。
7.4. 表示する最低警告レベル
表示する最低警告レベル:1
指定显示警告的最低等级,低于设定值的警告不会显示。可设置选项:
0
:不会引起任何问题只是写法不规范的警告,比如用==
代替=
(???)。
原话「"="の代わりに"=="を使っているなど、特に問題を起こさない警告です。」
实际上在非判断条件中把=
写成==
(当作赋值用)这种写法确实是可以运行的(会报 Lv0 警告代入演算子に"=="が使われています
)。1
:可以忽略的无伤大雅的问题,比如在函数声明以外使用了#PRI
。我已经无力吐槽了。2
:无法解释以及对应不上的代码块(比如IF
忘了用ENDIF
关闭)的警告,会导致运行时出错。3
:读取过程中导致「致命错误Fatal
」的警告,强制显示。
(ロード時に FORM 文字列を解析する)
ロード時にFORM文字列を解析する
(已在 1800
后废弃)加载时是否解析 FORM
相关字符串。
7.5. 呼び出されなかった関数を無視する
呼び出されなかった関数を無視する:YES
是否不解析「从未调用过的函数」的参数。
7.6. 関数が見つからない警告の扱い
関数が見つからない警告の扱い:DISPLAY
当调用时没有找到该函数(上工了,你妈的,人呢),是否发出警告。
可设置选项:
IGNORE
:不警告。LATER
:不逐个警告,「统计总数」后统一总结批评。ONCE
:每个文件只显示一次。DISPLAY
:别被我逮到,查到一次通报你一次。
7.7. 関数が呼び出されなかった警告の扱い
関数が呼び出されなかった警告の扱い:DISPLAY
当发现从未调用过的函数(没叫你,你在这干嘛)时,是否发出警告。
可设置选项:同上一个设置。
(指定したファイル中の警告を無視する)
指定したファイル中の警告を無視する
(已废弃)是否忽略指定文件中的警告。