<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.eragames.rip/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Maldito</id>
	<title>Era Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.eragames.rip/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Maldito"/>
	<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php/Special:Contributions/Maldito"/>
	<updated>2026-05-04T03:25:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera&amp;diff=39908</id>
		<title>Emuera</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera&amp;diff=39908"/>
		<updated>2020-06-11T07:57:05Z</updated>

		<summary type="html">&lt;p&gt;Maldito: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a work in progress port/translation of the Emuera wiki at https://osdn.net/projects/emuera/wiki/FrontPage&lt;br /&gt;
&lt;br /&gt;
Pages can be not completely translated or not ported over yet.&lt;br /&gt;
== Information about eramaker ==&lt;br /&gt;
Most of the features implemented in eramaker are not explained in Emuera's documentation. Therefore if you need, check eramaker's below:&lt;br /&gt;
&lt;br /&gt;
* [[Emuera/eramacsv|Eramaker CSV File Format]]&lt;br /&gt;
* [[Emuera/eramaerc|Eramaker Game Structure]]&lt;br /&gt;
* [[Emuera/eramaerb|Eramaker ERB File Format]]&lt;br /&gt;
* [[Emuera/eramavar|Eramaker Variable List]]&lt;br /&gt;
&lt;br /&gt;
You can also refer to the following link for the original japanese version: http://cbaku.com/b/2010/12/eramaker/&lt;br /&gt;
&lt;br /&gt;
== Information for end users ==&lt;br /&gt;
* [[Emuera/howto|How to Use]] [[https://osdn.net/projects/emuera/wiki/howto Source]]&lt;br /&gt;
* [[Emuera/config|Config Settings]] [[https://osdn.net/projects/emuera/wiki/config Source]]&lt;br /&gt;
* [[Emuera/shortcut|Shortcut Keys]] [[https://osdn.net/projects/emuera/wiki/shortcut Source]]&lt;br /&gt;
* [[Emuera/history|Update History]] [[https://osdn.net/projects/emuera/wiki/history Source]]&lt;br /&gt;
* [[Emuera/Thread|Emuera thread]] [[https://osdn.net/projects/emuera/wiki/Thread Source]]&lt;br /&gt;
&lt;br /&gt;
==eramaker basic Information for Developers==&lt;br /&gt;
* [[Emuera/EmuDic|Glossary]] [[https://osdn.net/projects/emuera/wiki/EmuDic Source]]&lt;br /&gt;
* [[Emuera/debugcom|Debug Commands]] [[https://osdn.net/projects/emuera/wiki/debugcom Source]]&lt;br /&gt;
* [[Emuera/debug|Debug Mode]] [[https://osdn.net/projects/emuera/wiki/debug Source]]&lt;br /&gt;
* [[Emuera/replace|_replace.csv]] [[https://osdn.net/projects/emuera/wiki/replace Source]]&lt;br /&gt;
* [[Emuera/exconfig|Forcing a Config item]] [[https://osdn.net/projects/emuera/wiki/exconfig Source]]&lt;br /&gt;
* [[Emuera/flow|Flowchart]] [[https://osdn.net/projects/emuera/wiki/flow Source]]&lt;br /&gt;
* [[Emuera/diff|Differences with eramaker]] [[https://osdn.net/projects/emuera/wiki/diff Source]]&lt;br /&gt;
* [[Emuera/extended|Extended syntax added in Emuera]] [[https://osdn.net/projects/emuera/wiki/extended Source]]&lt;br /&gt;
** [[Emuera/exetc|General]] [[https://osdn.net/projects/emuera/wiki/exetc Source]]&lt;br /&gt;
** [[Emuera/exop|Operations]] [[https://osdn.net/projects/emuera/wiki/exop Source]]&lt;br /&gt;
** [[Emuera/exvar|Constants / Variables]] [[https://osdn.net/projects/emuera/wiki/exvar Source]]&lt;br /&gt;
** [[Emuera/UserVars|User-Defined Variables]] [[https://osdn.net/projects/emuera/wiki/UserVars Source]]&lt;br /&gt;
** [[Emuera/excom|Instructions]] [[https://osdn.net/projects/emuera/wiki/excom Source]]&lt;br /&gt;
** [[Emuera/exfunc|Function / Preprocessor]] [[https://osdn.net/projects/emuera/wiki/exfunc Source]]&lt;br /&gt;
** [[Emuera/exmeth|Functions that can be used in expressions]] [[https://osdn.net/projects/emuera/wiki/exmeth Source]]&lt;br /&gt;
** [[Emuera/UserMeth|User-defined in-expression functions]] [[https://osdn.net/projects/emuera/wiki/UserMeth Source]]&lt;br /&gt;
** [[Emuera/ERH|Header Files（ERH）]] [[https://osdn.net/projects/emuera/wiki/ERH Source]]&lt;br /&gt;
** [[Emuera/exhtml|HTML_PRINT related]] [[https://osdn.net/projects/emuera/wiki/exhtml Source]]&lt;br /&gt;
** [[Emuera/resources|Resource file]] [[https://osdn.net/projects/emuera/wiki/resources Source]]&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera&amp;diff=39907</id>
		<title>Emuera</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera&amp;diff=39907"/>
		<updated>2020-06-11T07:55:50Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Information about eramaker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a work in progress port/translation of the Emuera wiki at https://osdn.net/projects/emuera/wiki/FrontPage&lt;br /&gt;
&lt;br /&gt;
Things will be incomplete or missing.&lt;br /&gt;
== Information about eramaker ==&lt;br /&gt;
Most of the features implemented in eramaker are not explained in Emuera's documentation. Therefore if you need, check eramaker's below:&lt;br /&gt;
&lt;br /&gt;
* [[Emuera/eramacsv|Eramaker CSV File Format]]&lt;br /&gt;
* [[Emuera/eramaerc|Eramaker Game Structure]]&lt;br /&gt;
* [[Emuera/eramaerb|Eramaker ERB File Format]]&lt;br /&gt;
* [[Emuera/eramavar|Eramaker Variable List]]&lt;br /&gt;
&lt;br /&gt;
You can also refer to the following link for the original japanese version: http://cbaku.com/b/2010/12/eramaker/&lt;br /&gt;
&lt;br /&gt;
== Information for end users ==&lt;br /&gt;
* [[Emuera/howto|How to Use]] [[https://osdn.net/projects/emuera/wiki/howto Source]]&lt;br /&gt;
* [[Emuera/config|Config Settings]] [[https://osdn.net/projects/emuera/wiki/config Source]]&lt;br /&gt;
* [[Emuera/shortcut|Shortcut Keys]] [[https://osdn.net/projects/emuera/wiki/shortcut Source]]&lt;br /&gt;
* [[Emuera/history|Update History]] [[https://osdn.net/projects/emuera/wiki/history Source]]&lt;br /&gt;
* [[Emuera/Thread|Emuera thread]] [[https://osdn.net/projects/emuera/wiki/Thread Source]]&lt;br /&gt;
&lt;br /&gt;
==eramaker basic Information for Developers==&lt;br /&gt;
* [[Emuera/EmuDic|Glossary]] [[https://osdn.net/projects/emuera/wiki/EmuDic Source]]&lt;br /&gt;
* [[Emuera/debugcom|Debug Commands]] [[https://osdn.net/projects/emuera/wiki/debugcom Source]]&lt;br /&gt;
* [[Emuera/debug|Debug Mode]] [[https://osdn.net/projects/emuera/wiki/debug Source]]&lt;br /&gt;
* [[Emuera/replace|_replace.csv]] [[https://osdn.net/projects/emuera/wiki/replace Source]]&lt;br /&gt;
* [[Emuera/exconfig|Forcing a Config item]] [[https://osdn.net/projects/emuera/wiki/exconfig Source]]&lt;br /&gt;
* [[Emuera/flow|Flowchart]] [[https://osdn.net/projects/emuera/wiki/flow Source]]&lt;br /&gt;
* [[Emuera/diff|Differences with eramaker]] [[https://osdn.net/projects/emuera/wiki/diff Source]]&lt;br /&gt;
* [[Emuera/extended|Extended syntax added in Emuera]] [[https://osdn.net/projects/emuera/wiki/extended Source]]&lt;br /&gt;
** [[Emuera/exetc|General]] [[https://osdn.net/projects/emuera/wiki/exetc Source]]&lt;br /&gt;
** [[Emuera/exop|Operations]] [[https://osdn.net/projects/emuera/wiki/exop Source]]&lt;br /&gt;
** [[Emuera/exvar|Constants / Variables]] [[https://osdn.net/projects/emuera/wiki/exvar Source]]&lt;br /&gt;
** [[Emuera/UserVars|User-Defined Variables]] [[https://osdn.net/projects/emuera/wiki/UserVars Source]]&lt;br /&gt;
** [[Emuera/excom|Instructions]] [[https://osdn.net/projects/emuera/wiki/excom Source]]&lt;br /&gt;
** [[Emuera/exfunc|Function / Preprocessor]] [[https://osdn.net/projects/emuera/wiki/exfunc Source]]&lt;br /&gt;
** [[Emuera/exmeth|Functions that can be used in expressions]] [[https://osdn.net/projects/emuera/wiki/exmeth Source]]&lt;br /&gt;
** [[Emuera/UserMeth|User-defined in-expression functions]] [[https://osdn.net/projects/emuera/wiki/UserMeth Source]]&lt;br /&gt;
** [[Emuera/ERH|Header Files（ERH）]] [[https://osdn.net/projects/emuera/wiki/ERH Source]]&lt;br /&gt;
** [[Emuera/exhtml|HTML_PRINT related]] [[https://osdn.net/projects/emuera/wiki/exhtml Source]]&lt;br /&gt;
** [[Emuera/resources|Resource file]] [[https://osdn.net/projects/emuera/wiki/resources Source]]&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/exetc&amp;diff=39886</id>
		<title>Emuera/exetc</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/exetc&amp;diff=39886"/>
		<updated>2020-05-16T23:06:43Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Use of macro syntax with INPUTS */ translation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== End of line comment ==&lt;br /&gt;
&lt;br /&gt;
 A = B ;Substitute A for B&lt;br /&gt;
&lt;br /&gt;
You can insert a comment at the end of a line in this way.&amp;lt;/br&amp;gt;&lt;br /&gt;
However, there are some exceptions, and if the argument is a simple string instruction such as the “PRINT” instruction, it will be evaluated as part of the string without commenting&lt;br /&gt;
&lt;br /&gt;
 PRINT foo;bar&lt;br /&gt;
&lt;br /&gt;
In this case, &amp;quot;foo;bar&amp;quot; is PRINTed.&lt;br /&gt;
&lt;br /&gt;
== Concatenate Rows ==&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
 	DIM CONST HOGE =&lt;br /&gt;
 		1,2,3,4&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Will be interpreted as &amp;quot;#DIM CONST HOGE = 1,2,3,4&amp;quot;&amp;lt;/br&amp;gt;&lt;br /&gt;
'{' and '}' lines must not contain any other characters besides white space.&amp;lt;/br&amp;gt;&lt;br /&gt;
One-byte space is added at the position where there is a line feed symbol.&amp;lt;/br&amp;gt;&lt;br /&gt;
In other words, lines cannot be split in the middle of function names and variable names,&amp;lt;/br&amp;gt;&lt;br /&gt;
If you divide PRINT etc., the display character string will include the half-width space that was a line feed&amp;lt;/br&amp;gt;&lt;br /&gt;
In Emuera's grammatical interpretation, line continuation processing is performed before interpretation of comments.&amp;lt;/br&amp;gt;&lt;br /&gt;
In other words&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
 	#DIM CONST HOGE =&lt;br /&gt;
 		1,2,3,4 ;comment&lt;br /&gt;
 		,5,6,7,8&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Becomes &amp;quot;#DIM CONST HOGE = 1,2,3,4 ;comment ,5,6,7,8&amp;quot;,&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;quot;,5,6,7,8&amp;quot; is considered part of the end-of-line comment and ignored.&lt;br /&gt;
&lt;br /&gt;
== Special Comment Line ==&lt;br /&gt;
=== ;!; ===&lt;br /&gt;
In both Emuera and eramaker, lines starting with ; are considered comment lines, but Emuera considers lines starting with ;!; To be valid lines, not comments.&amp;lt;/br&amp;gt;&lt;br /&gt;
Use this when writing statements that you do not want eramaker to execute.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, adding the following script to @SHOWSHOP can prohibit operation on Emuera.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ;!;PRINTW This script cannot be executed in Emuera&lt;br /&gt;
 ;!;QUIT&lt;br /&gt;
&lt;br /&gt;
(Also, by using it together with [SKIPSTART] and [SKIPEND], you can prohibit the operation of other than Emuera like the following script.)&amp;lt;/br&amp;gt;&lt;br /&gt;
Use this when writing statements that you do not want to be executed except by Emuera.&lt;br /&gt;
&lt;br /&gt;
 ;!;[SKIPSTART]&lt;br /&gt;
 PRINTW This script cannot be executed except by Emuera&lt;br /&gt;
 QUIT&lt;br /&gt;
 ;!;[SKIPEND]&lt;br /&gt;
&lt;br /&gt;
=== ;#; ===&lt;br /&gt;
Lines starting with ;#; are executed only in debug mode.&amp;lt;/br&amp;gt;&lt;br /&gt;
In non-debug mode, it is regarded as a comment line and is not executed.&amp;lt;/br&amp;gt;&lt;br /&gt;
However, since DEBUG instructions are originally ignored in non-debug mode, there is no need to prefix ;#; to the line. &amp;lt;/br&amp;gt;&lt;br /&gt;
Similarly, debug variables are empty strings or 0 in non-debug mode, so there is no worry about errors.&amp;lt;/br&amp;gt;&lt;br /&gt;
See [../debug|here] for debug mode.&lt;br /&gt;
&lt;br /&gt;
== Character Array ==&lt;br /&gt;
eramaker probably has only 100 arrays for character creation.&amp;lt;/br&amp;gt;&lt;br /&gt;
Therefore, even if different characters are defined in chara3.csv, chara03.csv, and chara3B.csv, only one person is valid.&amp;lt;/br&amp;gt;&lt;br /&gt;
In Emuera, characters can be defined as many as memory allows.&amp;lt;/br&amp;gt;&lt;br /&gt;
Also, if it corresponds to &amp;quot;chara*.csv&amp;quot;, it will read any file such as chara101.csv, charaABC.csv&amp;lt;/br&amp;gt;&lt;br /&gt;
If the character number is duplicated and there are multiple candidates for ADDCHARA or ADDSPCHARA, only the one that was read first will be valid.&lt;br /&gt;
&lt;br /&gt;
== Integer Value Range ==&lt;br /&gt;
Integers that can be handled by eramaker are 32-bit signed integers, that is, in the range from -2147483648 to 2147483647.&amp;lt;/br&amp;gt;&lt;br /&gt;
Emuera handles 64-bit signed integers in the same range as Kirikiri (吉里吉里), from -9223372036854775808 to 9223372036854775807.&lt;br /&gt;
&lt;br /&gt;
== Batch Assignment to Array Variables ==&lt;br /&gt;
&lt;br /&gt;
 A:10 = 1,2,3&lt;br /&gt;
 DA:0:0 = 1,2,3&lt;br /&gt;
&lt;br /&gt;
When written as above, the values ​​of 1, 2, and 3 are assigned to A:10 to A:12, respectively&amp;lt;/br&amp;gt;&lt;br /&gt;
In the following multidimensional array, values of 1, 2, and 3 are assigned to DA:0:0 to DA:0:2, respectively.&amp;lt;/br&amp;gt;&lt;br /&gt;
DA:0:0 to DA:0:99 is not assigned to DA:1:0, and an out-of-array reference error occurs&amp;lt;br&amp;gt;&lt;br /&gt;
However, it cannot be used for compound assignment (A += 1,2,3 etc.).&amp;lt;/br&amp;gt;&lt;br /&gt;
Also, when using batch assignment for assignment to a string type array variable, you must perform [../exetc#Assignment to a String Variable Using a String Expression|assignment using a string expression]&lt;br /&gt;
&lt;br /&gt;
 ;The string &amp;quot;Strawberry, Melon, Blue Hawaii&amp;quot; is assigned to STR: 20&lt;br /&gt;
 STR:20 = Strawberry, Melon, Blue Hawaii&lt;br /&gt;
 ;&amp;quot;Strawberry&amp;quot;, &amp;quot;Melon&amp;quot;, &amp;quot;Blue Hawaii&amp;quot; are assigned to STR:20~STR:22 respectively&lt;br /&gt;
 STR:20 '= &amp;quot;Strawberry&amp;quot;, &amp;quot;Melon&amp;quot;, &amp;quot;Blue Hawaii&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Assignment to String Variable Using FORM Syntax ==&lt;br /&gt;
When assigning to a string variable, you can specify the character string to be assigned in the same format as PRINTFORM.&lt;br /&gt;
&lt;br /&gt;
 SAVESTR:0 = %RESULTS%&lt;br /&gt;
&lt;br /&gt;
In this statement, you can substitute the contents of RESULTS for SAVESTR:0.&amp;lt;/br&amp;gt;&lt;br /&gt;
The same statement means that eramaker substitutes the actual string of %RESULTS% for SAVESTR:0.&amp;lt;/br&amp;gt;&lt;br /&gt;
If you want to substitute for the string %RESULTS% itself in Emuera, write as follows:&lt;br /&gt;
&lt;br /&gt;
 SAVESTR:0 = \%RESULT\%&lt;br /&gt;
&lt;br /&gt;
The character immediately after the \ symbol is not treated as a system symbol.&amp;lt;/br&amp;gt;&lt;br /&gt;
If you want to include the \ symbol in the string, use \\.&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
In the rare case, if you want the same behavior on eramaker and Emuera, you need to write as follows.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ;!;SAVESTR:0 = \%RESULT\%&lt;br /&gt;
 ;!;[SKIPSTART]&lt;br /&gt;
 SAVESTR:0 = %RESULTS%&lt;br /&gt;
 ;!;[SKIPEND]&lt;br /&gt;
&lt;br /&gt;
== Assignment to a String Variable Using a String Expression ==&lt;br /&gt;
&lt;br /&gt;
In Emuera after ver1813, assignment to string variables can be newly performed using the assignment operator '= and a string expression.&lt;br /&gt;
&lt;br /&gt;
 ;Same as &amp;quot;STR = Ayu&amp;quot;&lt;br /&gt;
 STR '= &amp;quot;Ayu&amp;quot;&lt;br /&gt;
 ;Same as &amp;quot;STR = %TSTR:0%ABC&amp;quot;&lt;br /&gt;
 STR '= TSTR:0 + &amp;quot;ABC&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Specifying Array Variable Elements Using Character Strings ==&lt;br /&gt;
&lt;br /&gt;
For the following variables, the argument can be called as a character string defined in *.csv.&amp;lt;/br&amp;gt;&lt;br /&gt;
For details on the new variables of Emuera, see [../exvar|Extended Syntax-Constants and Variables Added by Emuera].&lt;br /&gt;
&lt;br /&gt;
 ITEM (item.csv)&lt;br /&gt;
 ITEMSALES (item.csv)&lt;br /&gt;
 LOSEBASE (base.csv)&lt;br /&gt;
 BASE (base.csv)&lt;br /&gt;
 MAXBASE (base.csv)&lt;br /&gt;
 ABL (abl.csv)&lt;br /&gt;
 TALENT (talent.csv)&lt;br /&gt;
 EXP (exp.csv)&lt;br /&gt;
 MARK (mark.csv)&lt;br /&gt;
 RELATION (chara*.csv)&lt;br /&gt;
 UP (palam.csv)&lt;br /&gt;
 DOWN (palam.csv)&lt;br /&gt;
 PALAM (palam.csv)&lt;br /&gt;
 JUEL (palam.csv)&lt;br /&gt;
 GOTJUEL (palam.csv)&lt;br /&gt;
 STAIN (stain.csv)&lt;br /&gt;
 SOURCE (source.csv)&lt;br /&gt;
 EX (ex.csv)&lt;br /&gt;
 NOWEX (ex.csv)&lt;br /&gt;
 TEQUIP (tequip.csv)&lt;br /&gt;
 EQUIP (equip.csv)&lt;br /&gt;
 FLAG (flag.csv)&lt;br /&gt;
 TFLAG (tflag.csv)&lt;br /&gt;
 CFLAG (cflag.csv)&lt;br /&gt;
 STR (strname.csv)&lt;br /&gt;
 SAVESTR (savestr.csv)&lt;br /&gt;
 &lt;br /&gt;
The following are variables added by Emuera&lt;br /&gt;
&lt;br /&gt;
 ITEMPRICE (item.csv)&lt;br /&gt;
 DOWNBASE (base.csv)&lt;br /&gt;
 CUP (palam.csv)&lt;br /&gt;
 CDOWN (palam.csv)&lt;br /&gt;
 TCVAR (tcvar.csv)&lt;br /&gt;
 TSTR (tstr.csv)&lt;br /&gt;
 CSTR (cstr.csv)&lt;br /&gt;
 CDFLAG (cdflag1.csv, cdflag2.csv)&lt;br /&gt;
 GLOBAL (global.csv)&lt;br /&gt;
 GLOBALS (globals.csv)&lt;br /&gt;
&lt;br /&gt;
For example, if abl.csv has the definition &amp;quot;2, Skill&amp;quot;, the following four lines have the same meaning.&lt;br /&gt;
&lt;br /&gt;
 ABL:Skill += 1&lt;br /&gt;
 ABL:2 += 1&lt;br /&gt;
 ABL:&amp;quot;Skill&amp;quot; += 1&lt;br /&gt;
 ABL:(ABLNAME:2) += 1&lt;br /&gt;
&lt;br /&gt;
For RELATION, you can specify either NAME or CALLNAME.&amp;lt;/br&amp;gt;&lt;br /&gt;
If there are multiple definitions with the same name, the one defined first will be called.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if abl.csv contains &amp;quot;2, Skill&amp;quot; and &amp;quot;4, Skill&amp;quot;, and &amp;quot;2, Skill&amp;quot; is defined in the previous line, &amp;quot;ABL:Skill&amp;quot; becomes &amp;quot;ABL:2&amp;quot;.&amp;lt;/br&amp;gt;&lt;br /&gt;
Strings can be expressions or variables. In that case, please add () as shown below.&lt;br /&gt;
&lt;br /&gt;
 ABL:(RESULTS:0) = ABL:(RESULTS:0) + 1&lt;br /&gt;
&lt;br /&gt;
If () is omitted, the item name and the variable name may be the same. In that case, the variable takes precedence.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if abl.csv has the definition &amp;quot;0, Rotor&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 @HOGE&lt;br /&gt;
 #DIM Rotor, 0&lt;br /&gt;
 Rotor = 1&lt;br /&gt;
 PRINTFORML {ABL:Rotor}&lt;br /&gt;
&lt;br /&gt;
In this case, it is interpreted as the first ABL, not the zeroth ABL.&amp;lt;/br&amp;gt;&lt;br /&gt;
Similarly, if the item name is a number, interpretation as a number takes precedence.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if you define &amp;quot;0,10&amp;quot; in abl.csv and refer to ABL: 10, it will not be interpreted as the 0th ABL and will be the 10th ABL.&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This can also be used in definitions in chara*.csv.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if abl.csv has the definition &amp;quot;2, Skill&amp;quot;, the following two lines have the same meaning:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 能力,2,2&lt;br /&gt;
 能力,Skill,2&lt;br /&gt;
&lt;br /&gt;
However, it cannot be used for RELATION(相性).&amp;lt;/br&amp;gt;&lt;br /&gt;
This is because the system does not know the correspondence between chara name and NO when reading chara*.csv.&lt;br /&gt;
&lt;br /&gt;
== Formatted String (FORM Syntax) Extension ==&lt;br /&gt;
You can specify the number of digits (characters) to be displayed in {} and %% in the formatted strings used in PRINTFORM, etc.&amp;lt;/br&amp;gt;&lt;br /&gt;
In the form of:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;{Variable/Expression, Number of digits, Justification (LEFT or RIGHT)}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;%Variable/String Expression, Number of digits, Justification (LEFT or RIGHT)%&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full-width (Japanese) characters are counted as 2 characters.&amp;lt;/br&amp;gt;&lt;br /&gt;
Half-size spaces will be added to the number of digits (characters) in the display.&amp;lt;/br&amp;gt;&lt;br /&gt;
Normally it is right-aligned, but if you specify the keyword LEFT, it will be left-aligned.&amp;lt;/br&amp;gt;&lt;br /&gt;
If the original number of digits is larger than the specified number of display digits, it is displayed as it is.&lt;br /&gt;
&lt;br /&gt;
 A = 123456&lt;br /&gt;
 STR:0 = あいう&lt;br /&gt;
 PRINTFORML [{A}]&lt;br /&gt;
 PRINTFORML [{A,10}]&lt;br /&gt;
 PRINTFORML [{A,10,LEFT}]&lt;br /&gt;
 PRINTFORML [%STR:0%]&lt;br /&gt;
 PRINTFORML [%STR:0,10%]&lt;br /&gt;
 PRINTFORML [%STR:0,10,LEFT%]&lt;br /&gt;
 PRINTFORML [{A,2}]&lt;br /&gt;
 PRINTFORML [%STR:0,2%]&lt;br /&gt;
&lt;br /&gt;
Results into&lt;br /&gt;
&lt;br /&gt;
 [123456]&lt;br /&gt;
 [    123456]&lt;br /&gt;
 [123456    ]&lt;br /&gt;
 [あいう]&lt;br /&gt;
 [    あいう]&lt;br /&gt;
 [あいう    ]&lt;br /&gt;
 [123456]&lt;br /&gt;
 [あいう]&lt;br /&gt;
&lt;br /&gt;
== Using Formatted Strings (FORM Syntax) in String Expressions ==&lt;br /&gt;
Using the FORM syntax in a string expression, such as PRINTS or arguments to a user-defined function in an expression, will result in an error.&amp;lt;/br&amp;gt;&lt;br /&gt;
So when you use a formatted string in a string expression, you can use it in the same way that you use &amp;quot;～&amp;quot; when you use a defined string in a string expression.&amp;lt;/br&amp;gt;&lt;br /&gt;
Use it like &amp;lt;code&amp;gt;@&amp;quot;～&amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;/br&amp;gt;&lt;br /&gt;
In addition, if the string in &amp;lt;code&amp;gt;@&amp;quot;～&amp;quot;&amp;lt;/code&amp;gt; is only described by a ternary operator using &amp;lt;code&amp;gt;\@～\@&amp;lt;/code&amp;gt;, you can omit &amp;lt;code&amp;gt;@&amp;quot;～&amp;quot;&amp;lt;/code&amp;gt; and write directly as &amp;lt;code&amp;gt;\@～\@&amp;lt;/code&amp;gt;.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Correct example&lt;br /&gt;
 ;Assignment is a FORM syntax&lt;br /&gt;
 STR:0 = aiu&lt;br /&gt;
 ;Addition is a string expression&lt;br /&gt;
 RESULTS += STR:0&lt;br /&gt;
 ;Example of using a constant string as a string expression&lt;br /&gt;
 RESULTS += &amp;quot;eo&amp;quot;&lt;br /&gt;
 ;Example of using the FORM syntax for a string expression&lt;br /&gt;
 PRINTS @&amp;quot;%RESULTS% lalilulelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 ;The following four lines are all the same&lt;br /&gt;
 PRINTS STR:0 + &amp;quot;！&amp;quot;&lt;br /&gt;
 PRINTFORM %STR:0%！&lt;br /&gt;
 PRINTS @&amp;quot;%STR:0%！&amp;quot;&lt;br /&gt;
 PRINTFORM %STR:0 + &amp;quot;！&amp;quot;%&lt;br /&gt;
&lt;br /&gt;
Wrong example&lt;br /&gt;
 ;It will be &amp;quot;RESULTS&amp;quot; inside&lt;br /&gt;
 STR:0 = RESULTS&lt;br /&gt;
 ;You'll get an error&lt;br /&gt;
 RESULTS += eo&lt;br /&gt;
 ;You'll get an error&lt;br /&gt;
 RESULTS += %STR:0%&lt;br /&gt;
 ;You'll also see &amp;quot;@&amp;quot; and &amp;quot; printed&lt;br /&gt;
 PRINTFORM @&amp;quot;%RESULTS% lalilulelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Use of macro syntax with INPUTS ==&lt;br /&gt;
INPUTS and other similar input acceptance instructions can be used as macro expressions.&amp;lt;/br&amp;gt;&lt;br /&gt;
For the format of the macro, please refer to the Macros section in the [[../howto|How to Use]] section.&amp;lt;/br&amp;gt;&lt;br /&gt;
If you don't use the macro syntax and want to use () as a simple string, escape it with \.&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/exetc&amp;diff=39885</id>
		<title>Emuera/exetc</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/exetc&amp;diff=39885"/>
		<updated>2020-05-16T23:03:12Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Using Formatted Strings (FORM Syntax) in String Expressions */  translation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== End of line comment ==&lt;br /&gt;
&lt;br /&gt;
 A = B ;Substitute A for B&lt;br /&gt;
&lt;br /&gt;
You can insert a comment at the end of a line in this way.&amp;lt;/br&amp;gt;&lt;br /&gt;
However, there are some exceptions, and if the argument is a simple string instruction such as the “PRINT” instruction, it will be evaluated as part of the string without commenting&lt;br /&gt;
&lt;br /&gt;
 PRINT foo;bar&lt;br /&gt;
&lt;br /&gt;
In this case, &amp;quot;foo;bar&amp;quot; is PRINTed.&lt;br /&gt;
&lt;br /&gt;
== Concatenate Rows ==&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
 	DIM CONST HOGE =&lt;br /&gt;
 		1,2,3,4&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Will be interpreted as &amp;quot;#DIM CONST HOGE = 1,2,3,4&amp;quot;&amp;lt;/br&amp;gt;&lt;br /&gt;
'{' and '}' lines must not contain any other characters besides white space.&amp;lt;/br&amp;gt;&lt;br /&gt;
One-byte space is added at the position where there is a line feed symbol.&amp;lt;/br&amp;gt;&lt;br /&gt;
In other words, lines cannot be split in the middle of function names and variable names,&amp;lt;/br&amp;gt;&lt;br /&gt;
If you divide PRINT etc., the display character string will include the half-width space that was a line feed&amp;lt;/br&amp;gt;&lt;br /&gt;
In Emuera's grammatical interpretation, line continuation processing is performed before interpretation of comments.&amp;lt;/br&amp;gt;&lt;br /&gt;
In other words&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
 	#DIM CONST HOGE =&lt;br /&gt;
 		1,2,3,4 ;comment&lt;br /&gt;
 		,5,6,7,8&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Becomes &amp;quot;#DIM CONST HOGE = 1,2,3,4 ;comment ,5,6,7,8&amp;quot;,&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;quot;,5,6,7,8&amp;quot; is considered part of the end-of-line comment and ignored.&lt;br /&gt;
&lt;br /&gt;
== Special Comment Line ==&lt;br /&gt;
=== ;!; ===&lt;br /&gt;
In both Emuera and eramaker, lines starting with ; are considered comment lines, but Emuera considers lines starting with ;!; To be valid lines, not comments.&amp;lt;/br&amp;gt;&lt;br /&gt;
Use this when writing statements that you do not want eramaker to execute.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, adding the following script to @SHOWSHOP can prohibit operation on Emuera.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ;!;PRINTW This script cannot be executed in Emuera&lt;br /&gt;
 ;!;QUIT&lt;br /&gt;
&lt;br /&gt;
(Also, by using it together with [SKIPSTART] and [SKIPEND], you can prohibit the operation of other than Emuera like the following script.)&amp;lt;/br&amp;gt;&lt;br /&gt;
Use this when writing statements that you do not want to be executed except by Emuera.&lt;br /&gt;
&lt;br /&gt;
 ;!;[SKIPSTART]&lt;br /&gt;
 PRINTW This script cannot be executed except by Emuera&lt;br /&gt;
 QUIT&lt;br /&gt;
 ;!;[SKIPEND]&lt;br /&gt;
&lt;br /&gt;
=== ;#; ===&lt;br /&gt;
Lines starting with ;#; are executed only in debug mode.&amp;lt;/br&amp;gt;&lt;br /&gt;
In non-debug mode, it is regarded as a comment line and is not executed.&amp;lt;/br&amp;gt;&lt;br /&gt;
However, since DEBUG instructions are originally ignored in non-debug mode, there is no need to prefix ;#; to the line. &amp;lt;/br&amp;gt;&lt;br /&gt;
Similarly, debug variables are empty strings or 0 in non-debug mode, so there is no worry about errors.&amp;lt;/br&amp;gt;&lt;br /&gt;
See [../debug|here] for debug mode.&lt;br /&gt;
&lt;br /&gt;
== Character Array ==&lt;br /&gt;
eramaker probably has only 100 arrays for character creation.&amp;lt;/br&amp;gt;&lt;br /&gt;
Therefore, even if different characters are defined in chara3.csv, chara03.csv, and chara3B.csv, only one person is valid.&amp;lt;/br&amp;gt;&lt;br /&gt;
In Emuera, characters can be defined as many as memory allows.&amp;lt;/br&amp;gt;&lt;br /&gt;
Also, if it corresponds to &amp;quot;chara*.csv&amp;quot;, it will read any file such as chara101.csv, charaABC.csv&amp;lt;/br&amp;gt;&lt;br /&gt;
If the character number is duplicated and there are multiple candidates for ADDCHARA or ADDSPCHARA, only the one that was read first will be valid.&lt;br /&gt;
&lt;br /&gt;
== Integer Value Range ==&lt;br /&gt;
Integers that can be handled by eramaker are 32-bit signed integers, that is, in the range from -2147483648 to 2147483647.&amp;lt;/br&amp;gt;&lt;br /&gt;
Emuera handles 64-bit signed integers in the same range as Kirikiri (吉里吉里), from -9223372036854775808 to 9223372036854775807.&lt;br /&gt;
&lt;br /&gt;
== Batch Assignment to Array Variables ==&lt;br /&gt;
&lt;br /&gt;
 A:10 = 1,2,3&lt;br /&gt;
 DA:0:0 = 1,2,3&lt;br /&gt;
&lt;br /&gt;
When written as above, the values ​​of 1, 2, and 3 are assigned to A:10 to A:12, respectively&amp;lt;/br&amp;gt;&lt;br /&gt;
In the following multidimensional array, values of 1, 2, and 3 are assigned to DA:0:0 to DA:0:2, respectively.&amp;lt;/br&amp;gt;&lt;br /&gt;
DA:0:0 to DA:0:99 is not assigned to DA:1:0, and an out-of-array reference error occurs&amp;lt;br&amp;gt;&lt;br /&gt;
However, it cannot be used for compound assignment (A += 1,2,3 etc.).&amp;lt;/br&amp;gt;&lt;br /&gt;
Also, when using batch assignment for assignment to a string type array variable, you must perform [../exetc#Assignment to a String Variable Using a String Expression|assignment using a string expression]&lt;br /&gt;
&lt;br /&gt;
 ;The string &amp;quot;Strawberry, Melon, Blue Hawaii&amp;quot; is assigned to STR: 20&lt;br /&gt;
 STR:20 = Strawberry, Melon, Blue Hawaii&lt;br /&gt;
 ;&amp;quot;Strawberry&amp;quot;, &amp;quot;Melon&amp;quot;, &amp;quot;Blue Hawaii&amp;quot; are assigned to STR:20~STR:22 respectively&lt;br /&gt;
 STR:20 '= &amp;quot;Strawberry&amp;quot;, &amp;quot;Melon&amp;quot;, &amp;quot;Blue Hawaii&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Assignment to String Variable Using FORM Syntax ==&lt;br /&gt;
When assigning to a string variable, you can specify the character string to be assigned in the same format as PRINTFORM.&lt;br /&gt;
&lt;br /&gt;
 SAVESTR:0 = %RESULTS%&lt;br /&gt;
&lt;br /&gt;
In this statement, you can substitute the contents of RESULTS for SAVESTR:0.&amp;lt;/br&amp;gt;&lt;br /&gt;
The same statement means that eramaker substitutes the actual string of %RESULTS% for SAVESTR:0.&amp;lt;/br&amp;gt;&lt;br /&gt;
If you want to substitute for the string %RESULTS% itself in Emuera, write as follows:&lt;br /&gt;
&lt;br /&gt;
 SAVESTR:0 = \%RESULT\%&lt;br /&gt;
&lt;br /&gt;
The character immediately after the \ symbol is not treated as a system symbol.&amp;lt;/br&amp;gt;&lt;br /&gt;
If you want to include the \ symbol in the string, use \\.&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
In the rare case, if you want the same behavior on eramaker and Emuera, you need to write as follows.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ;!;SAVESTR:0 = \%RESULT\%&lt;br /&gt;
 ;!;[SKIPSTART]&lt;br /&gt;
 SAVESTR:0 = %RESULTS%&lt;br /&gt;
 ;!;[SKIPEND]&lt;br /&gt;
&lt;br /&gt;
== Assignment to a String Variable Using a String Expression ==&lt;br /&gt;
&lt;br /&gt;
In Emuera after ver1813, assignment to string variables can be newly performed using the assignment operator '= and a string expression.&lt;br /&gt;
&lt;br /&gt;
 ;Same as &amp;quot;STR = Ayu&amp;quot;&lt;br /&gt;
 STR '= &amp;quot;Ayu&amp;quot;&lt;br /&gt;
 ;Same as &amp;quot;STR = %TSTR:0%ABC&amp;quot;&lt;br /&gt;
 STR '= TSTR:0 + &amp;quot;ABC&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Specifying Array Variable Elements Using Character Strings ==&lt;br /&gt;
&lt;br /&gt;
For the following variables, the argument can be called as a character string defined in *.csv.&amp;lt;/br&amp;gt;&lt;br /&gt;
For details on the new variables of Emuera, see [../exvar|Extended Syntax-Constants and Variables Added by Emuera].&lt;br /&gt;
&lt;br /&gt;
 ITEM (item.csv)&lt;br /&gt;
 ITEMSALES (item.csv)&lt;br /&gt;
 LOSEBASE (base.csv)&lt;br /&gt;
 BASE (base.csv)&lt;br /&gt;
 MAXBASE (base.csv)&lt;br /&gt;
 ABL (abl.csv)&lt;br /&gt;
 TALENT (talent.csv)&lt;br /&gt;
 EXP (exp.csv)&lt;br /&gt;
 MARK (mark.csv)&lt;br /&gt;
 RELATION (chara*.csv)&lt;br /&gt;
 UP (palam.csv)&lt;br /&gt;
 DOWN (palam.csv)&lt;br /&gt;
 PALAM (palam.csv)&lt;br /&gt;
 JUEL (palam.csv)&lt;br /&gt;
 GOTJUEL (palam.csv)&lt;br /&gt;
 STAIN (stain.csv)&lt;br /&gt;
 SOURCE (source.csv)&lt;br /&gt;
 EX (ex.csv)&lt;br /&gt;
 NOWEX (ex.csv)&lt;br /&gt;
 TEQUIP (tequip.csv)&lt;br /&gt;
 EQUIP (equip.csv)&lt;br /&gt;
 FLAG (flag.csv)&lt;br /&gt;
 TFLAG (tflag.csv)&lt;br /&gt;
 CFLAG (cflag.csv)&lt;br /&gt;
 STR (strname.csv)&lt;br /&gt;
 SAVESTR (savestr.csv)&lt;br /&gt;
 &lt;br /&gt;
The following are variables added by Emuera&lt;br /&gt;
&lt;br /&gt;
 ITEMPRICE (item.csv)&lt;br /&gt;
 DOWNBASE (base.csv)&lt;br /&gt;
 CUP (palam.csv)&lt;br /&gt;
 CDOWN (palam.csv)&lt;br /&gt;
 TCVAR (tcvar.csv)&lt;br /&gt;
 TSTR (tstr.csv)&lt;br /&gt;
 CSTR (cstr.csv)&lt;br /&gt;
 CDFLAG (cdflag1.csv, cdflag2.csv)&lt;br /&gt;
 GLOBAL (global.csv)&lt;br /&gt;
 GLOBALS (globals.csv)&lt;br /&gt;
&lt;br /&gt;
For example, if abl.csv has the definition &amp;quot;2, Skill&amp;quot;, the following four lines have the same meaning.&lt;br /&gt;
&lt;br /&gt;
 ABL:Skill += 1&lt;br /&gt;
 ABL:2 += 1&lt;br /&gt;
 ABL:&amp;quot;Skill&amp;quot; += 1&lt;br /&gt;
 ABL:(ABLNAME:2) += 1&lt;br /&gt;
&lt;br /&gt;
For RELATION, you can specify either NAME or CALLNAME.&amp;lt;/br&amp;gt;&lt;br /&gt;
If there are multiple definitions with the same name, the one defined first will be called.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if abl.csv contains &amp;quot;2, Skill&amp;quot; and &amp;quot;4, Skill&amp;quot;, and &amp;quot;2, Skill&amp;quot; is defined in the previous line, &amp;quot;ABL:Skill&amp;quot; becomes &amp;quot;ABL:2&amp;quot;.&amp;lt;/br&amp;gt;&lt;br /&gt;
Strings can be expressions or variables. In that case, please add () as shown below.&lt;br /&gt;
&lt;br /&gt;
 ABL:(RESULTS:0) = ABL:(RESULTS:0) + 1&lt;br /&gt;
&lt;br /&gt;
If () is omitted, the item name and the variable name may be the same. In that case, the variable takes precedence.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if abl.csv has the definition &amp;quot;0, Rotor&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 @HOGE&lt;br /&gt;
 #DIM Rotor, 0&lt;br /&gt;
 Rotor = 1&lt;br /&gt;
 PRINTFORML {ABL:Rotor}&lt;br /&gt;
&lt;br /&gt;
In this case, it is interpreted as the first ABL, not the zeroth ABL.&amp;lt;/br&amp;gt;&lt;br /&gt;
Similarly, if the item name is a number, interpretation as a number takes precedence.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if you define &amp;quot;0,10&amp;quot; in abl.csv and refer to ABL: 10, it will not be interpreted as the 0th ABL and will be the 10th ABL.&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This can also be used in definitions in chara*.csv.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if abl.csv has the definition &amp;quot;2, Skill&amp;quot;, the following two lines have the same meaning:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 能力,2,2&lt;br /&gt;
 能力,Skill,2&lt;br /&gt;
&lt;br /&gt;
However, it cannot be used for RELATION(相性).&amp;lt;/br&amp;gt;&lt;br /&gt;
This is because the system does not know the correspondence between chara name and NO when reading chara*.csv.&lt;br /&gt;
&lt;br /&gt;
== Formatted String (FORM Syntax) Extension ==&lt;br /&gt;
You can specify the number of digits (characters) to be displayed in {} and %% in the formatted strings used in PRINTFORM, etc.&amp;lt;/br&amp;gt;&lt;br /&gt;
In the form of:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;{Variable/Expression, Number of digits, Justification (LEFT or RIGHT)}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;%Variable/String Expression, Number of digits, Justification (LEFT or RIGHT)%&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full-width (Japanese) characters are counted as 2 characters.&amp;lt;/br&amp;gt;&lt;br /&gt;
Half-size spaces will be added to the number of digits (characters) in the display.&amp;lt;/br&amp;gt;&lt;br /&gt;
Normally it is right-aligned, but if you specify the keyword LEFT, it will be left-aligned.&amp;lt;/br&amp;gt;&lt;br /&gt;
If the original number of digits is larger than the specified number of display digits, it is displayed as it is.&lt;br /&gt;
&lt;br /&gt;
 A = 123456&lt;br /&gt;
 STR:0 = あいう&lt;br /&gt;
 PRINTFORML [{A}]&lt;br /&gt;
 PRINTFORML [{A,10}]&lt;br /&gt;
 PRINTFORML [{A,10,LEFT}]&lt;br /&gt;
 PRINTFORML [%STR:0%]&lt;br /&gt;
 PRINTFORML [%STR:0,10%]&lt;br /&gt;
 PRINTFORML [%STR:0,10,LEFT%]&lt;br /&gt;
 PRINTFORML [{A,2}]&lt;br /&gt;
 PRINTFORML [%STR:0,2%]&lt;br /&gt;
&lt;br /&gt;
Results into&lt;br /&gt;
&lt;br /&gt;
 [123456]&lt;br /&gt;
 [    123456]&lt;br /&gt;
 [123456    ]&lt;br /&gt;
 [あいう]&lt;br /&gt;
 [    あいう]&lt;br /&gt;
 [あいう    ]&lt;br /&gt;
 [123456]&lt;br /&gt;
 [あいう]&lt;br /&gt;
&lt;br /&gt;
== Using Formatted Strings (FORM Syntax) in String Expressions ==&lt;br /&gt;
Using the FORM syntax in a string expression, such as PRINTS or arguments to a user-defined function in an expression, will result in an error.&amp;lt;/br&amp;gt;&lt;br /&gt;
So when you use a formatted string in a string expression, you can use it in the same way that you use &amp;quot;～&amp;quot; when you use a defined string in a string expression.&amp;lt;/br&amp;gt;&lt;br /&gt;
Use it like &amp;lt;code&amp;gt;@&amp;quot;～&amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;/br&amp;gt;&lt;br /&gt;
In addition, if the string in &amp;lt;code&amp;gt;@&amp;quot;～&amp;quot;&amp;lt;/code&amp;gt; is only described by a ternary operator using &amp;lt;code&amp;gt;\@～\@&amp;lt;/code&amp;gt;, you can omit &amp;lt;code&amp;gt;@&amp;quot;～&amp;quot;&amp;lt;/code&amp;gt; and write directly as &amp;lt;code&amp;gt;\@～\@&amp;lt;/code&amp;gt;.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Correct example&lt;br /&gt;
 ;Assignment is a FORM syntax&lt;br /&gt;
 STR:0 = aiu&lt;br /&gt;
 ;Addition is a string expression&lt;br /&gt;
 RESULTS += STR:0&lt;br /&gt;
 ;Example of using a constant string as a string expression&lt;br /&gt;
 RESULTS += &amp;quot;eo&amp;quot;&lt;br /&gt;
 ;Example of using the FORM syntax for a string expression&lt;br /&gt;
 PRINTS @&amp;quot;%RESULTS% lalilulelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 ;The following four lines are all the same&lt;br /&gt;
 PRINTS STR:0 + &amp;quot;！&amp;quot;&lt;br /&gt;
 PRINTFORM %STR:0%！&lt;br /&gt;
 PRINTS @&amp;quot;%STR:0%！&amp;quot;&lt;br /&gt;
 PRINTFORM %STR:0 + &amp;quot;！&amp;quot;%&lt;br /&gt;
&lt;br /&gt;
Wrong example&lt;br /&gt;
 ;It will be &amp;quot;RESULTS&amp;quot; inside&lt;br /&gt;
 STR:0 = RESULTS&lt;br /&gt;
 ;You'll get an error&lt;br /&gt;
 RESULTS += eo&lt;br /&gt;
 ;You'll get an error&lt;br /&gt;
 RESULTS += %STR:0%&lt;br /&gt;
 ;You'll also see &amp;quot;@&amp;quot; and &amp;quot; printed&lt;br /&gt;
 PRINTFORM @&amp;quot;%RESULTS% lalilulelo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== INPUTS系でのマクロ構文の使用 ==&lt;br /&gt;
INPUTSやそれに類する入力受付命令で、マクロ式を用いることができます。&amp;lt;/br&amp;gt;&lt;br /&gt;
マクロの書式については[[../howto|利用方法]]のマクロの項目を確認してください。&amp;lt;/br&amp;gt;&lt;br /&gt;
マクロ構文を使わず、単なる文字列として()を使用する場合、\を用いてエスケープしてください。&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/exetc&amp;diff=39884</id>
		<title>Emuera/exetc</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/exetc&amp;diff=39884"/>
		<updated>2020-05-16T22:52:43Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Formatted String (FORM Syntax) Extension */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== End of line comment ==&lt;br /&gt;
&lt;br /&gt;
 A = B ;Substitute A for B&lt;br /&gt;
&lt;br /&gt;
You can insert a comment at the end of a line in this way.&amp;lt;/br&amp;gt;&lt;br /&gt;
However, there are some exceptions, and if the argument is a simple string instruction such as the “PRINT” instruction, it will be evaluated as part of the string without commenting&lt;br /&gt;
&lt;br /&gt;
 PRINT foo;bar&lt;br /&gt;
&lt;br /&gt;
In this case, &amp;quot;foo;bar&amp;quot; is PRINTed.&lt;br /&gt;
&lt;br /&gt;
== Concatenate Rows ==&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
 	DIM CONST HOGE =&lt;br /&gt;
 		1,2,3,4&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Will be interpreted as &amp;quot;#DIM CONST HOGE = 1,2,3,4&amp;quot;&amp;lt;/br&amp;gt;&lt;br /&gt;
'{' and '}' lines must not contain any other characters besides white space.&amp;lt;/br&amp;gt;&lt;br /&gt;
One-byte space is added at the position where there is a line feed symbol.&amp;lt;/br&amp;gt;&lt;br /&gt;
In other words, lines cannot be split in the middle of function names and variable names,&amp;lt;/br&amp;gt;&lt;br /&gt;
If you divide PRINT etc., the display character string will include the half-width space that was a line feed&amp;lt;/br&amp;gt;&lt;br /&gt;
In Emuera's grammatical interpretation, line continuation processing is performed before interpretation of comments.&amp;lt;/br&amp;gt;&lt;br /&gt;
In other words&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
 	#DIM CONST HOGE =&lt;br /&gt;
 		1,2,3,4 ;comment&lt;br /&gt;
 		,5,6,7,8&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Becomes &amp;quot;#DIM CONST HOGE = 1,2,3,4 ;comment ,5,6,7,8&amp;quot;,&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;quot;,5,6,7,8&amp;quot; is considered part of the end-of-line comment and ignored.&lt;br /&gt;
&lt;br /&gt;
== Special Comment Line ==&lt;br /&gt;
=== ;!; ===&lt;br /&gt;
In both Emuera and eramaker, lines starting with ; are considered comment lines, but Emuera considers lines starting with ;!; To be valid lines, not comments.&amp;lt;/br&amp;gt;&lt;br /&gt;
Use this when writing statements that you do not want eramaker to execute.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, adding the following script to @SHOWSHOP can prohibit operation on Emuera.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ;!;PRINTW This script cannot be executed in Emuera&lt;br /&gt;
 ;!;QUIT&lt;br /&gt;
&lt;br /&gt;
(Also, by using it together with [SKIPSTART] and [SKIPEND], you can prohibit the operation of other than Emuera like the following script.)&amp;lt;/br&amp;gt;&lt;br /&gt;
Use this when writing statements that you do not want to be executed except by Emuera.&lt;br /&gt;
&lt;br /&gt;
 ;!;[SKIPSTART]&lt;br /&gt;
 PRINTW This script cannot be executed except by Emuera&lt;br /&gt;
 QUIT&lt;br /&gt;
 ;!;[SKIPEND]&lt;br /&gt;
&lt;br /&gt;
=== ;#; ===&lt;br /&gt;
Lines starting with ;#; are executed only in debug mode.&amp;lt;/br&amp;gt;&lt;br /&gt;
In non-debug mode, it is regarded as a comment line and is not executed.&amp;lt;/br&amp;gt;&lt;br /&gt;
However, since DEBUG instructions are originally ignored in non-debug mode, there is no need to prefix ;#; to the line. &amp;lt;/br&amp;gt;&lt;br /&gt;
Similarly, debug variables are empty strings or 0 in non-debug mode, so there is no worry about errors.&amp;lt;/br&amp;gt;&lt;br /&gt;
See [../debug|here] for debug mode.&lt;br /&gt;
&lt;br /&gt;
== Character Array ==&lt;br /&gt;
eramaker probably has only 100 arrays for character creation.&amp;lt;/br&amp;gt;&lt;br /&gt;
Therefore, even if different characters are defined in chara3.csv, chara03.csv, and chara3B.csv, only one person is valid.&amp;lt;/br&amp;gt;&lt;br /&gt;
In Emuera, characters can be defined as many as memory allows.&amp;lt;/br&amp;gt;&lt;br /&gt;
Also, if it corresponds to &amp;quot;chara*.csv&amp;quot;, it will read any file such as chara101.csv, charaABC.csv&amp;lt;/br&amp;gt;&lt;br /&gt;
If the character number is duplicated and there are multiple candidates for ADDCHARA or ADDSPCHARA, only the one that was read first will be valid.&lt;br /&gt;
&lt;br /&gt;
== Integer Value Range ==&lt;br /&gt;
Integers that can be handled by eramaker are 32-bit signed integers, that is, in the range from -2147483648 to 2147483647.&amp;lt;/br&amp;gt;&lt;br /&gt;
Emuera handles 64-bit signed integers in the same range as Kirikiri (吉里吉里), from -9223372036854775808 to 9223372036854775807.&lt;br /&gt;
&lt;br /&gt;
== Batch Assignment to Array Variables ==&lt;br /&gt;
&lt;br /&gt;
 A:10 = 1,2,3&lt;br /&gt;
 DA:0:0 = 1,2,3&lt;br /&gt;
&lt;br /&gt;
When written as above, the values ​​of 1, 2, and 3 are assigned to A:10 to A:12, respectively&amp;lt;/br&amp;gt;&lt;br /&gt;
In the following multidimensional array, values of 1, 2, and 3 are assigned to DA:0:0 to DA:0:2, respectively.&amp;lt;/br&amp;gt;&lt;br /&gt;
DA:0:0 to DA:0:99 is not assigned to DA:1:0, and an out-of-array reference error occurs&amp;lt;br&amp;gt;&lt;br /&gt;
However, it cannot be used for compound assignment (A += 1,2,3 etc.).&amp;lt;/br&amp;gt;&lt;br /&gt;
Also, when using batch assignment for assignment to a string type array variable, you must perform [../exetc#Assignment to a String Variable Using a String Expression|assignment using a string expression]&lt;br /&gt;
&lt;br /&gt;
 ;The string &amp;quot;Strawberry, Melon, Blue Hawaii&amp;quot; is assigned to STR: 20&lt;br /&gt;
 STR:20 = Strawberry, Melon, Blue Hawaii&lt;br /&gt;
 ;&amp;quot;Strawberry&amp;quot;, &amp;quot;Melon&amp;quot;, &amp;quot;Blue Hawaii&amp;quot; are assigned to STR:20~STR:22 respectively&lt;br /&gt;
 STR:20 '= &amp;quot;Strawberry&amp;quot;, &amp;quot;Melon&amp;quot;, &amp;quot;Blue Hawaii&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Assignment to String Variable Using FORM Syntax ==&lt;br /&gt;
When assigning to a string variable, you can specify the character string to be assigned in the same format as PRINTFORM.&lt;br /&gt;
&lt;br /&gt;
 SAVESTR:0 = %RESULTS%&lt;br /&gt;
&lt;br /&gt;
In this statement, you can substitute the contents of RESULTS for SAVESTR:0.&amp;lt;/br&amp;gt;&lt;br /&gt;
The same statement means that eramaker substitutes the actual string of %RESULTS% for SAVESTR:0.&amp;lt;/br&amp;gt;&lt;br /&gt;
If you want to substitute for the string %RESULTS% itself in Emuera, write as follows:&lt;br /&gt;
&lt;br /&gt;
 SAVESTR:0 = \%RESULT\%&lt;br /&gt;
&lt;br /&gt;
The character immediately after the \ symbol is not treated as a system symbol.&amp;lt;/br&amp;gt;&lt;br /&gt;
If you want to include the \ symbol in the string, use \\.&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
In the rare case, if you want the same behavior on eramaker and Emuera, you need to write as follows.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ;!;SAVESTR:0 = \%RESULT\%&lt;br /&gt;
 ;!;[SKIPSTART]&lt;br /&gt;
 SAVESTR:0 = %RESULTS%&lt;br /&gt;
 ;!;[SKIPEND]&lt;br /&gt;
&lt;br /&gt;
== Assignment to a String Variable Using a String Expression ==&lt;br /&gt;
&lt;br /&gt;
In Emuera after ver1813, assignment to string variables can be newly performed using the assignment operator '= and a string expression.&lt;br /&gt;
&lt;br /&gt;
 ;Same as &amp;quot;STR = Ayu&amp;quot;&lt;br /&gt;
 STR '= &amp;quot;Ayu&amp;quot;&lt;br /&gt;
 ;Same as &amp;quot;STR = %TSTR:0%ABC&amp;quot;&lt;br /&gt;
 STR '= TSTR:0 + &amp;quot;ABC&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Specifying Array Variable Elements Using Character Strings ==&lt;br /&gt;
&lt;br /&gt;
For the following variables, the argument can be called as a character string defined in *.csv.&amp;lt;/br&amp;gt;&lt;br /&gt;
For details on the new variables of Emuera, see [../exvar|Extended Syntax-Constants and Variables Added by Emuera].&lt;br /&gt;
&lt;br /&gt;
 ITEM (item.csv)&lt;br /&gt;
 ITEMSALES (item.csv)&lt;br /&gt;
 LOSEBASE (base.csv)&lt;br /&gt;
 BASE (base.csv)&lt;br /&gt;
 MAXBASE (base.csv)&lt;br /&gt;
 ABL (abl.csv)&lt;br /&gt;
 TALENT (talent.csv)&lt;br /&gt;
 EXP (exp.csv)&lt;br /&gt;
 MARK (mark.csv)&lt;br /&gt;
 RELATION (chara*.csv)&lt;br /&gt;
 UP (palam.csv)&lt;br /&gt;
 DOWN (palam.csv)&lt;br /&gt;
 PALAM (palam.csv)&lt;br /&gt;
 JUEL (palam.csv)&lt;br /&gt;
 GOTJUEL (palam.csv)&lt;br /&gt;
 STAIN (stain.csv)&lt;br /&gt;
 SOURCE (source.csv)&lt;br /&gt;
 EX (ex.csv)&lt;br /&gt;
 NOWEX (ex.csv)&lt;br /&gt;
 TEQUIP (tequip.csv)&lt;br /&gt;
 EQUIP (equip.csv)&lt;br /&gt;
 FLAG (flag.csv)&lt;br /&gt;
 TFLAG (tflag.csv)&lt;br /&gt;
 CFLAG (cflag.csv)&lt;br /&gt;
 STR (strname.csv)&lt;br /&gt;
 SAVESTR (savestr.csv)&lt;br /&gt;
 &lt;br /&gt;
The following are variables added by Emuera&lt;br /&gt;
&lt;br /&gt;
 ITEMPRICE (item.csv)&lt;br /&gt;
 DOWNBASE (base.csv)&lt;br /&gt;
 CUP (palam.csv)&lt;br /&gt;
 CDOWN (palam.csv)&lt;br /&gt;
 TCVAR (tcvar.csv)&lt;br /&gt;
 TSTR (tstr.csv)&lt;br /&gt;
 CSTR (cstr.csv)&lt;br /&gt;
 CDFLAG (cdflag1.csv, cdflag2.csv)&lt;br /&gt;
 GLOBAL (global.csv)&lt;br /&gt;
 GLOBALS (globals.csv)&lt;br /&gt;
&lt;br /&gt;
For example, if abl.csv has the definition &amp;quot;2, Skill&amp;quot;, the following four lines have the same meaning.&lt;br /&gt;
&lt;br /&gt;
 ABL:Skill += 1&lt;br /&gt;
 ABL:2 += 1&lt;br /&gt;
 ABL:&amp;quot;Skill&amp;quot; += 1&lt;br /&gt;
 ABL:(ABLNAME:2) += 1&lt;br /&gt;
&lt;br /&gt;
For RELATION, you can specify either NAME or CALLNAME.&amp;lt;/br&amp;gt;&lt;br /&gt;
If there are multiple definitions with the same name, the one defined first will be called.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if abl.csv contains &amp;quot;2, Skill&amp;quot; and &amp;quot;4, Skill&amp;quot;, and &amp;quot;2, Skill&amp;quot; is defined in the previous line, &amp;quot;ABL:Skill&amp;quot; becomes &amp;quot;ABL:2&amp;quot;.&amp;lt;/br&amp;gt;&lt;br /&gt;
Strings can be expressions or variables. In that case, please add () as shown below.&lt;br /&gt;
&lt;br /&gt;
 ABL:(RESULTS:0) = ABL:(RESULTS:0) + 1&lt;br /&gt;
&lt;br /&gt;
If () is omitted, the item name and the variable name may be the same. In that case, the variable takes precedence.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if abl.csv has the definition &amp;quot;0, Rotor&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 @HOGE&lt;br /&gt;
 #DIM Rotor, 0&lt;br /&gt;
 Rotor = 1&lt;br /&gt;
 PRINTFORML {ABL:Rotor}&lt;br /&gt;
&lt;br /&gt;
In this case, it is interpreted as the first ABL, not the zeroth ABL.&amp;lt;/br&amp;gt;&lt;br /&gt;
Similarly, if the item name is a number, interpretation as a number takes precedence.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if you define &amp;quot;0,10&amp;quot; in abl.csv and refer to ABL: 10, it will not be interpreted as the 0th ABL and will be the 10th ABL.&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This can also be used in definitions in chara*.csv.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if abl.csv has the definition &amp;quot;2, Skill&amp;quot;, the following two lines have the same meaning:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 能力,2,2&lt;br /&gt;
 能力,Skill,2&lt;br /&gt;
&lt;br /&gt;
However, it cannot be used for RELATION(相性).&amp;lt;/br&amp;gt;&lt;br /&gt;
This is because the system does not know the correspondence between chara name and NO when reading chara*.csv.&lt;br /&gt;
&lt;br /&gt;
== Formatted String (FORM Syntax) Extension ==&lt;br /&gt;
You can specify the number of digits (characters) to be displayed in {} and %% in the formatted strings used in PRINTFORM, etc.&amp;lt;/br&amp;gt;&lt;br /&gt;
In the form of:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;{Variable/Expression, Number of digits, Justification (LEFT or RIGHT)}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;%Variable/String Expression, Number of digits, Justification (LEFT or RIGHT)%&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full-width (Japanese) characters are counted as 2 characters.&amp;lt;/br&amp;gt;&lt;br /&gt;
Half-size spaces will be added to the number of digits (characters) in the display.&amp;lt;/br&amp;gt;&lt;br /&gt;
Normally it is right-aligned, but if you specify the keyword LEFT, it will be left-aligned.&amp;lt;/br&amp;gt;&lt;br /&gt;
If the original number of digits is larger than the specified number of display digits, it is displayed as it is.&lt;br /&gt;
&lt;br /&gt;
 A = 123456&lt;br /&gt;
 STR:0 = あいう&lt;br /&gt;
 PRINTFORML [{A}]&lt;br /&gt;
 PRINTFORML [{A,10}]&lt;br /&gt;
 PRINTFORML [{A,10,LEFT}]&lt;br /&gt;
 PRINTFORML [%STR:0%]&lt;br /&gt;
 PRINTFORML [%STR:0,10%]&lt;br /&gt;
 PRINTFORML [%STR:0,10,LEFT%]&lt;br /&gt;
 PRINTFORML [{A,2}]&lt;br /&gt;
 PRINTFORML [%STR:0,2%]&lt;br /&gt;
&lt;br /&gt;
Results into&lt;br /&gt;
&lt;br /&gt;
 [123456]&lt;br /&gt;
 [    123456]&lt;br /&gt;
 [123456    ]&lt;br /&gt;
 [あいう]&lt;br /&gt;
 [    あいう]&lt;br /&gt;
 [あいう    ]&lt;br /&gt;
 [123456]&lt;br /&gt;
 [あいう]&lt;br /&gt;
&lt;br /&gt;
== 文字列式中での書式付文字列（FORM構文）の使用 ==&lt;br /&gt;
PRINTSやユーザー定義の式中関数の引数といった文字列式中でFORM構文を使用するとエラーになります。&amp;lt;/br&amp;gt;&lt;br /&gt;
そのため文字列式中で書式付文字列を使用する場合、文字列式中で定文字列を使うときに&amp;quot;～&amp;quot;を使用するのと同じように&amp;lt;/br&amp;gt;&lt;br /&gt;
@&amp;quot;～&amp;quot;を使用します。&lt;br /&gt;
また、@&amp;quot;～&amp;quot;の中の文字列が\@～\@を用いた三項演算子による記載のみである場合、@&amp;quot;～&amp;quot;を省略して直接\@～\@と書くことができます&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
正しい例&lt;br /&gt;
 ;代入はFORM構文&lt;br /&gt;
 STR:0 = あいう&lt;br /&gt;
 ;加算は文字列式&lt;br /&gt;
 RESULTS += STR:0&lt;br /&gt;
 ;文字列式に定文字列を使用する例&lt;br /&gt;
 RESULTS += &amp;quot;えお&amp;quot;&lt;br /&gt;
 ;文字列式にFORM構文を使用する例&lt;br /&gt;
 PRINTS @&amp;quot;%RESULTS%かきくけこ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 ;以下の4行はすべて同じである&lt;br /&gt;
 PRINTS STR:0 + &amp;quot;！&amp;quot;&lt;br /&gt;
 PRINTFORM %STR:0%！&lt;br /&gt;
 PRINTS @&amp;quot;%STR:0%！&amp;quot;&lt;br /&gt;
 PRINTFORM %STR:0 + &amp;quot;！&amp;quot;%&lt;br /&gt;
間違った例&lt;br /&gt;
 ;中身が「RESULTS」になる&lt;br /&gt;
 STR:0 = RESULTS&lt;br /&gt;
 ;エラーが出る&lt;br /&gt;
 RESULTS += えお&lt;br /&gt;
 ;エラーが出る&lt;br /&gt;
 RESULTS += %STR:0%&lt;br /&gt;
 ;「@&amp;quot;」と「&amp;quot;」も表示される&lt;br /&gt;
 PRINTFORM @&amp;quot;%RESULTS%かきくけこ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== INPUTS系でのマクロ構文の使用 ==&lt;br /&gt;
INPUTSやそれに類する入力受付命令で、マクロ式を用いることができます。&amp;lt;/br&amp;gt;&lt;br /&gt;
マクロの書式については[[../howto|利用方法]]のマクロの項目を確認してください。&amp;lt;/br&amp;gt;&lt;br /&gt;
マクロ構文を使わず、単なる文字列として()を使用する場合、\を用いてエスケープしてください。&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/exetc&amp;diff=39883</id>
		<title>Emuera/exetc</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/exetc&amp;diff=39883"/>
		<updated>2020-05-16T22:52:31Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Formatted String (FORM Syntax) Extension */ adjustments&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== End of line comment ==&lt;br /&gt;
&lt;br /&gt;
 A = B ;Substitute A for B&lt;br /&gt;
&lt;br /&gt;
You can insert a comment at the end of a line in this way.&amp;lt;/br&amp;gt;&lt;br /&gt;
However, there are some exceptions, and if the argument is a simple string instruction such as the “PRINT” instruction, it will be evaluated as part of the string without commenting&lt;br /&gt;
&lt;br /&gt;
 PRINT foo;bar&lt;br /&gt;
&lt;br /&gt;
In this case, &amp;quot;foo;bar&amp;quot; is PRINTed.&lt;br /&gt;
&lt;br /&gt;
== Concatenate Rows ==&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
 	DIM CONST HOGE =&lt;br /&gt;
 		1,2,3,4&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Will be interpreted as &amp;quot;#DIM CONST HOGE = 1,2,3,4&amp;quot;&amp;lt;/br&amp;gt;&lt;br /&gt;
'{' and '}' lines must not contain any other characters besides white space.&amp;lt;/br&amp;gt;&lt;br /&gt;
One-byte space is added at the position where there is a line feed symbol.&amp;lt;/br&amp;gt;&lt;br /&gt;
In other words, lines cannot be split in the middle of function names and variable names,&amp;lt;/br&amp;gt;&lt;br /&gt;
If you divide PRINT etc., the display character string will include the half-width space that was a line feed&amp;lt;/br&amp;gt;&lt;br /&gt;
In Emuera's grammatical interpretation, line continuation processing is performed before interpretation of comments.&amp;lt;/br&amp;gt;&lt;br /&gt;
In other words&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
 	#DIM CONST HOGE =&lt;br /&gt;
 		1,2,3,4 ;comment&lt;br /&gt;
 		,5,6,7,8&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Becomes &amp;quot;#DIM CONST HOGE = 1,2,3,4 ;comment ,5,6,7,8&amp;quot;,&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;quot;,5,6,7,8&amp;quot; is considered part of the end-of-line comment and ignored.&lt;br /&gt;
&lt;br /&gt;
== Special Comment Line ==&lt;br /&gt;
=== ;!; ===&lt;br /&gt;
In both Emuera and eramaker, lines starting with ; are considered comment lines, but Emuera considers lines starting with ;!; To be valid lines, not comments.&amp;lt;/br&amp;gt;&lt;br /&gt;
Use this when writing statements that you do not want eramaker to execute.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, adding the following script to @SHOWSHOP can prohibit operation on Emuera.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ;!;PRINTW This script cannot be executed in Emuera&lt;br /&gt;
 ;!;QUIT&lt;br /&gt;
&lt;br /&gt;
(Also, by using it together with [SKIPSTART] and [SKIPEND], you can prohibit the operation of other than Emuera like the following script.)&amp;lt;/br&amp;gt;&lt;br /&gt;
Use this when writing statements that you do not want to be executed except by Emuera.&lt;br /&gt;
&lt;br /&gt;
 ;!;[SKIPSTART]&lt;br /&gt;
 PRINTW This script cannot be executed except by Emuera&lt;br /&gt;
 QUIT&lt;br /&gt;
 ;!;[SKIPEND]&lt;br /&gt;
&lt;br /&gt;
=== ;#; ===&lt;br /&gt;
Lines starting with ;#; are executed only in debug mode.&amp;lt;/br&amp;gt;&lt;br /&gt;
In non-debug mode, it is regarded as a comment line and is not executed.&amp;lt;/br&amp;gt;&lt;br /&gt;
However, since DEBUG instructions are originally ignored in non-debug mode, there is no need to prefix ;#; to the line. &amp;lt;/br&amp;gt;&lt;br /&gt;
Similarly, debug variables are empty strings or 0 in non-debug mode, so there is no worry about errors.&amp;lt;/br&amp;gt;&lt;br /&gt;
See [../debug|here] for debug mode.&lt;br /&gt;
&lt;br /&gt;
== Character Array ==&lt;br /&gt;
eramaker probably has only 100 arrays for character creation.&amp;lt;/br&amp;gt;&lt;br /&gt;
Therefore, even if different characters are defined in chara3.csv, chara03.csv, and chara3B.csv, only one person is valid.&amp;lt;/br&amp;gt;&lt;br /&gt;
In Emuera, characters can be defined as many as memory allows.&amp;lt;/br&amp;gt;&lt;br /&gt;
Also, if it corresponds to &amp;quot;chara*.csv&amp;quot;, it will read any file such as chara101.csv, charaABC.csv&amp;lt;/br&amp;gt;&lt;br /&gt;
If the character number is duplicated and there are multiple candidates for ADDCHARA or ADDSPCHARA, only the one that was read first will be valid.&lt;br /&gt;
&lt;br /&gt;
== Integer Value Range ==&lt;br /&gt;
Integers that can be handled by eramaker are 32-bit signed integers, that is, in the range from -2147483648 to 2147483647.&amp;lt;/br&amp;gt;&lt;br /&gt;
Emuera handles 64-bit signed integers in the same range as Kirikiri (吉里吉里), from -9223372036854775808 to 9223372036854775807.&lt;br /&gt;
&lt;br /&gt;
== Batch Assignment to Array Variables ==&lt;br /&gt;
&lt;br /&gt;
 A:10 = 1,2,3&lt;br /&gt;
 DA:0:0 = 1,2,3&lt;br /&gt;
&lt;br /&gt;
When written as above, the values ​​of 1, 2, and 3 are assigned to A:10 to A:12, respectively&amp;lt;/br&amp;gt;&lt;br /&gt;
In the following multidimensional array, values of 1, 2, and 3 are assigned to DA:0:0 to DA:0:2, respectively.&amp;lt;/br&amp;gt;&lt;br /&gt;
DA:0:0 to DA:0:99 is not assigned to DA:1:0, and an out-of-array reference error occurs&amp;lt;br&amp;gt;&lt;br /&gt;
However, it cannot be used for compound assignment (A += 1,2,3 etc.).&amp;lt;/br&amp;gt;&lt;br /&gt;
Also, when using batch assignment for assignment to a string type array variable, you must perform [../exetc#Assignment to a String Variable Using a String Expression|assignment using a string expression]&lt;br /&gt;
&lt;br /&gt;
 ;The string &amp;quot;Strawberry, Melon, Blue Hawaii&amp;quot; is assigned to STR: 20&lt;br /&gt;
 STR:20 = Strawberry, Melon, Blue Hawaii&lt;br /&gt;
 ;&amp;quot;Strawberry&amp;quot;, &amp;quot;Melon&amp;quot;, &amp;quot;Blue Hawaii&amp;quot; are assigned to STR:20~STR:22 respectively&lt;br /&gt;
 STR:20 '= &amp;quot;Strawberry&amp;quot;, &amp;quot;Melon&amp;quot;, &amp;quot;Blue Hawaii&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Assignment to String Variable Using FORM Syntax ==&lt;br /&gt;
When assigning to a string variable, you can specify the character string to be assigned in the same format as PRINTFORM.&lt;br /&gt;
&lt;br /&gt;
 SAVESTR:0 = %RESULTS%&lt;br /&gt;
&lt;br /&gt;
In this statement, you can substitute the contents of RESULTS for SAVESTR:0.&amp;lt;/br&amp;gt;&lt;br /&gt;
The same statement means that eramaker substitutes the actual string of %RESULTS% for SAVESTR:0.&amp;lt;/br&amp;gt;&lt;br /&gt;
If you want to substitute for the string %RESULTS% itself in Emuera, write as follows:&lt;br /&gt;
&lt;br /&gt;
 SAVESTR:0 = \%RESULT\%&lt;br /&gt;
&lt;br /&gt;
The character immediately after the \ symbol is not treated as a system symbol.&amp;lt;/br&amp;gt;&lt;br /&gt;
If you want to include the \ symbol in the string, use \\.&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
In the rare case, if you want the same behavior on eramaker and Emuera, you need to write as follows.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ;!;SAVESTR:0 = \%RESULT\%&lt;br /&gt;
 ;!;[SKIPSTART]&lt;br /&gt;
 SAVESTR:0 = %RESULTS%&lt;br /&gt;
 ;!;[SKIPEND]&lt;br /&gt;
&lt;br /&gt;
== Assignment to a String Variable Using a String Expression ==&lt;br /&gt;
&lt;br /&gt;
In Emuera after ver1813, assignment to string variables can be newly performed using the assignment operator '= and a string expression.&lt;br /&gt;
&lt;br /&gt;
 ;Same as &amp;quot;STR = Ayu&amp;quot;&lt;br /&gt;
 STR '= &amp;quot;Ayu&amp;quot;&lt;br /&gt;
 ;Same as &amp;quot;STR = %TSTR:0%ABC&amp;quot;&lt;br /&gt;
 STR '= TSTR:0 + &amp;quot;ABC&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Specifying Array Variable Elements Using Character Strings ==&lt;br /&gt;
&lt;br /&gt;
For the following variables, the argument can be called as a character string defined in *.csv.&amp;lt;/br&amp;gt;&lt;br /&gt;
For details on the new variables of Emuera, see [../exvar|Extended Syntax-Constants and Variables Added by Emuera].&lt;br /&gt;
&lt;br /&gt;
 ITEM (item.csv)&lt;br /&gt;
 ITEMSALES (item.csv)&lt;br /&gt;
 LOSEBASE (base.csv)&lt;br /&gt;
 BASE (base.csv)&lt;br /&gt;
 MAXBASE (base.csv)&lt;br /&gt;
 ABL (abl.csv)&lt;br /&gt;
 TALENT (talent.csv)&lt;br /&gt;
 EXP (exp.csv)&lt;br /&gt;
 MARK (mark.csv)&lt;br /&gt;
 RELATION (chara*.csv)&lt;br /&gt;
 UP (palam.csv)&lt;br /&gt;
 DOWN (palam.csv)&lt;br /&gt;
 PALAM (palam.csv)&lt;br /&gt;
 JUEL (palam.csv)&lt;br /&gt;
 GOTJUEL (palam.csv)&lt;br /&gt;
 STAIN (stain.csv)&lt;br /&gt;
 SOURCE (source.csv)&lt;br /&gt;
 EX (ex.csv)&lt;br /&gt;
 NOWEX (ex.csv)&lt;br /&gt;
 TEQUIP (tequip.csv)&lt;br /&gt;
 EQUIP (equip.csv)&lt;br /&gt;
 FLAG (flag.csv)&lt;br /&gt;
 TFLAG (tflag.csv)&lt;br /&gt;
 CFLAG (cflag.csv)&lt;br /&gt;
 STR (strname.csv)&lt;br /&gt;
 SAVESTR (savestr.csv)&lt;br /&gt;
 &lt;br /&gt;
The following are variables added by Emuera&lt;br /&gt;
&lt;br /&gt;
 ITEMPRICE (item.csv)&lt;br /&gt;
 DOWNBASE (base.csv)&lt;br /&gt;
 CUP (palam.csv)&lt;br /&gt;
 CDOWN (palam.csv)&lt;br /&gt;
 TCVAR (tcvar.csv)&lt;br /&gt;
 TSTR (tstr.csv)&lt;br /&gt;
 CSTR (cstr.csv)&lt;br /&gt;
 CDFLAG (cdflag1.csv, cdflag2.csv)&lt;br /&gt;
 GLOBAL (global.csv)&lt;br /&gt;
 GLOBALS (globals.csv)&lt;br /&gt;
&lt;br /&gt;
For example, if abl.csv has the definition &amp;quot;2, Skill&amp;quot;, the following four lines have the same meaning.&lt;br /&gt;
&lt;br /&gt;
 ABL:Skill += 1&lt;br /&gt;
 ABL:2 += 1&lt;br /&gt;
 ABL:&amp;quot;Skill&amp;quot; += 1&lt;br /&gt;
 ABL:(ABLNAME:2) += 1&lt;br /&gt;
&lt;br /&gt;
For RELATION, you can specify either NAME or CALLNAME.&amp;lt;/br&amp;gt;&lt;br /&gt;
If there are multiple definitions with the same name, the one defined first will be called.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if abl.csv contains &amp;quot;2, Skill&amp;quot; and &amp;quot;4, Skill&amp;quot;, and &amp;quot;2, Skill&amp;quot; is defined in the previous line, &amp;quot;ABL:Skill&amp;quot; becomes &amp;quot;ABL:2&amp;quot;.&amp;lt;/br&amp;gt;&lt;br /&gt;
Strings can be expressions or variables. In that case, please add () as shown below.&lt;br /&gt;
&lt;br /&gt;
 ABL:(RESULTS:0) = ABL:(RESULTS:0) + 1&lt;br /&gt;
&lt;br /&gt;
If () is omitted, the item name and the variable name may be the same. In that case, the variable takes precedence.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if abl.csv has the definition &amp;quot;0, Rotor&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 @HOGE&lt;br /&gt;
 #DIM Rotor, 0&lt;br /&gt;
 Rotor = 1&lt;br /&gt;
 PRINTFORML {ABL:Rotor}&lt;br /&gt;
&lt;br /&gt;
In this case, it is interpreted as the first ABL, not the zeroth ABL.&amp;lt;/br&amp;gt;&lt;br /&gt;
Similarly, if the item name is a number, interpretation as a number takes precedence.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if you define &amp;quot;0,10&amp;quot; in abl.csv and refer to ABL: 10, it will not be interpreted as the 0th ABL and will be the 10th ABL.&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This can also be used in definitions in chara*.csv.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if abl.csv has the definition &amp;quot;2, Skill&amp;quot;, the following two lines have the same meaning:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 能力,2,2&lt;br /&gt;
 能力,Skill,2&lt;br /&gt;
&lt;br /&gt;
However, it cannot be used for RELATION(相性).&amp;lt;/br&amp;gt;&lt;br /&gt;
This is because the system does not know the correspondence between chara name and NO when reading chara*.csv.&lt;br /&gt;
&lt;br /&gt;
== Formatted String (FORM Syntax) Extension ==&lt;br /&gt;
You can specify the number of digits (characters) to be displayed in {} and %% in the formatted strings used in PRINTFORM, etc.&amp;lt;/br&amp;gt;&lt;br /&gt;
In the form of:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;{Variable/Expression, Number of digits, Justification (LEFT or RIGHT)}&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;%Variable/String Expression, Number of digits, Justification (LEFT or RIGHT)%&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full-width (Japanese) characters are counted as 2 characters.&amp;lt;/br&amp;gt;&lt;br /&gt;
Half-size spaces will be added to the number of digits (characters) in the display.&amp;lt;/br&amp;gt;&lt;br /&gt;
Normally it is right-aligned, but if you specify the keyword LEFT, it will be left-aligned.&amp;lt;/br&amp;gt;&lt;br /&gt;
If the original number of digits is larger than the specified number of display digits, it is displayed as it is.&lt;br /&gt;
&lt;br /&gt;
 A = 123456&lt;br /&gt;
 STR:0 = あいう&lt;br /&gt;
 PRINTFORML [{A}]&lt;br /&gt;
 PRINTFORML [{A,10}]&lt;br /&gt;
 PRINTFORML [{A,10,LEFT}]&lt;br /&gt;
 PRINTFORML [%STR:0%]&lt;br /&gt;
 PRINTFORML [%STR:0,10%]&lt;br /&gt;
 PRINTFORML [%STR:0,10,LEFT%]&lt;br /&gt;
 PRINTFORML [{A,2}]&lt;br /&gt;
 PRINTFORML [%STR:0,2%]&lt;br /&gt;
&lt;br /&gt;
Results&lt;br /&gt;
&lt;br /&gt;
 [123456]&lt;br /&gt;
 [    123456]&lt;br /&gt;
 [123456    ]&lt;br /&gt;
 [あいう]&lt;br /&gt;
 [    あいう]&lt;br /&gt;
 [あいう    ]&lt;br /&gt;
 [123456]&lt;br /&gt;
 [あいう]&lt;br /&gt;
&lt;br /&gt;
== 文字列式中での書式付文字列（FORM構文）の使用 ==&lt;br /&gt;
PRINTSやユーザー定義の式中関数の引数といった文字列式中でFORM構文を使用するとエラーになります。&amp;lt;/br&amp;gt;&lt;br /&gt;
そのため文字列式中で書式付文字列を使用する場合、文字列式中で定文字列を使うときに&amp;quot;～&amp;quot;を使用するのと同じように&amp;lt;/br&amp;gt;&lt;br /&gt;
@&amp;quot;～&amp;quot;を使用します。&lt;br /&gt;
また、@&amp;quot;～&amp;quot;の中の文字列が\@～\@を用いた三項演算子による記載のみである場合、@&amp;quot;～&amp;quot;を省略して直接\@～\@と書くことができます&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
正しい例&lt;br /&gt;
 ;代入はFORM構文&lt;br /&gt;
 STR:0 = あいう&lt;br /&gt;
 ;加算は文字列式&lt;br /&gt;
 RESULTS += STR:0&lt;br /&gt;
 ;文字列式に定文字列を使用する例&lt;br /&gt;
 RESULTS += &amp;quot;えお&amp;quot;&lt;br /&gt;
 ;文字列式にFORM構文を使用する例&lt;br /&gt;
 PRINTS @&amp;quot;%RESULTS%かきくけこ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 ;以下の4行はすべて同じである&lt;br /&gt;
 PRINTS STR:0 + &amp;quot;！&amp;quot;&lt;br /&gt;
 PRINTFORM %STR:0%！&lt;br /&gt;
 PRINTS @&amp;quot;%STR:0%！&amp;quot;&lt;br /&gt;
 PRINTFORM %STR:0 + &amp;quot;！&amp;quot;%&lt;br /&gt;
間違った例&lt;br /&gt;
 ;中身が「RESULTS」になる&lt;br /&gt;
 STR:0 = RESULTS&lt;br /&gt;
 ;エラーが出る&lt;br /&gt;
 RESULTS += えお&lt;br /&gt;
 ;エラーが出る&lt;br /&gt;
 RESULTS += %STR:0%&lt;br /&gt;
 ;「@&amp;quot;」と「&amp;quot;」も表示される&lt;br /&gt;
 PRINTFORM @&amp;quot;%RESULTS%かきくけこ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== INPUTS系でのマクロ構文の使用 ==&lt;br /&gt;
INPUTSやそれに類する入力受付命令で、マクロ式を用いることができます。&amp;lt;/br&amp;gt;&lt;br /&gt;
マクロの書式については[[../howto|利用方法]]のマクロの項目を確認してください。&amp;lt;/br&amp;gt;&lt;br /&gt;
マクロ構文を使わず、単なる文字列として()を使用する場合、\を用いてエスケープしてください。&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/exetc&amp;diff=39882</id>
		<title>Emuera/exetc</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/exetc&amp;diff=39882"/>
		<updated>2020-05-16T22:49:14Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Formatted String (FORM Syntax) Extension */ translation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== End of line comment ==&lt;br /&gt;
&lt;br /&gt;
 A = B ;Substitute A for B&lt;br /&gt;
&lt;br /&gt;
You can insert a comment at the end of a line in this way.&amp;lt;/br&amp;gt;&lt;br /&gt;
However, there are some exceptions, and if the argument is a simple string instruction such as the “PRINT” instruction, it will be evaluated as part of the string without commenting&lt;br /&gt;
&lt;br /&gt;
 PRINT foo;bar&lt;br /&gt;
&lt;br /&gt;
In this case, &amp;quot;foo;bar&amp;quot; is PRINTed.&lt;br /&gt;
&lt;br /&gt;
== Concatenate Rows ==&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
 	DIM CONST HOGE =&lt;br /&gt;
 		1,2,3,4&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Will be interpreted as &amp;quot;#DIM CONST HOGE = 1,2,3,4&amp;quot;&amp;lt;/br&amp;gt;&lt;br /&gt;
'{' and '}' lines must not contain any other characters besides white space.&amp;lt;/br&amp;gt;&lt;br /&gt;
One-byte space is added at the position where there is a line feed symbol.&amp;lt;/br&amp;gt;&lt;br /&gt;
In other words, lines cannot be split in the middle of function names and variable names,&amp;lt;/br&amp;gt;&lt;br /&gt;
If you divide PRINT etc., the display character string will include the half-width space that was a line feed&amp;lt;/br&amp;gt;&lt;br /&gt;
In Emuera's grammatical interpretation, line continuation processing is performed before interpretation of comments.&amp;lt;/br&amp;gt;&lt;br /&gt;
In other words&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
 	#DIM CONST HOGE =&lt;br /&gt;
 		1,2,3,4 ;comment&lt;br /&gt;
 		,5,6,7,8&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Becomes &amp;quot;#DIM CONST HOGE = 1,2,3,4 ;comment ,5,6,7,8&amp;quot;,&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;quot;,5,6,7,8&amp;quot; is considered part of the end-of-line comment and ignored.&lt;br /&gt;
&lt;br /&gt;
== Special Comment Line ==&lt;br /&gt;
=== ;!; ===&lt;br /&gt;
In both Emuera and eramaker, lines starting with ; are considered comment lines, but Emuera considers lines starting with ;!; To be valid lines, not comments.&amp;lt;/br&amp;gt;&lt;br /&gt;
Use this when writing statements that you do not want eramaker to execute.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, adding the following script to @SHOWSHOP can prohibit operation on Emuera.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ;!;PRINTW This script cannot be executed in Emuera&lt;br /&gt;
 ;!;QUIT&lt;br /&gt;
&lt;br /&gt;
(Also, by using it together with [SKIPSTART] and [SKIPEND], you can prohibit the operation of other than Emuera like the following script.)&amp;lt;/br&amp;gt;&lt;br /&gt;
Use this when writing statements that you do not want to be executed except by Emuera.&lt;br /&gt;
&lt;br /&gt;
 ;!;[SKIPSTART]&lt;br /&gt;
 PRINTW This script cannot be executed except by Emuera&lt;br /&gt;
 QUIT&lt;br /&gt;
 ;!;[SKIPEND]&lt;br /&gt;
&lt;br /&gt;
=== ;#; ===&lt;br /&gt;
Lines starting with ;#; are executed only in debug mode.&amp;lt;/br&amp;gt;&lt;br /&gt;
In non-debug mode, it is regarded as a comment line and is not executed.&amp;lt;/br&amp;gt;&lt;br /&gt;
However, since DEBUG instructions are originally ignored in non-debug mode, there is no need to prefix ;#; to the line. &amp;lt;/br&amp;gt;&lt;br /&gt;
Similarly, debug variables are empty strings or 0 in non-debug mode, so there is no worry about errors.&amp;lt;/br&amp;gt;&lt;br /&gt;
See [../debug|here] for debug mode.&lt;br /&gt;
&lt;br /&gt;
== Character Array ==&lt;br /&gt;
eramaker probably has only 100 arrays for character creation.&amp;lt;/br&amp;gt;&lt;br /&gt;
Therefore, even if different characters are defined in chara3.csv, chara03.csv, and chara3B.csv, only one person is valid.&amp;lt;/br&amp;gt;&lt;br /&gt;
In Emuera, characters can be defined as many as memory allows.&amp;lt;/br&amp;gt;&lt;br /&gt;
Also, if it corresponds to &amp;quot;chara*.csv&amp;quot;, it will read any file such as chara101.csv, charaABC.csv&amp;lt;/br&amp;gt;&lt;br /&gt;
If the character number is duplicated and there are multiple candidates for ADDCHARA or ADDSPCHARA, only the one that was read first will be valid.&lt;br /&gt;
&lt;br /&gt;
== Integer Value Range ==&lt;br /&gt;
Integers that can be handled by eramaker are 32-bit signed integers, that is, in the range from -2147483648 to 2147483647.&amp;lt;/br&amp;gt;&lt;br /&gt;
Emuera handles 64-bit signed integers in the same range as Kirikiri (吉里吉里), from -9223372036854775808 to 9223372036854775807.&lt;br /&gt;
&lt;br /&gt;
== Batch Assignment to Array Variables ==&lt;br /&gt;
&lt;br /&gt;
 A:10 = 1,2,3&lt;br /&gt;
 DA:0:0 = 1,2,3&lt;br /&gt;
&lt;br /&gt;
When written as above, the values ​​of 1, 2, and 3 are assigned to A:10 to A:12, respectively&amp;lt;/br&amp;gt;&lt;br /&gt;
In the following multidimensional array, values of 1, 2, and 3 are assigned to DA:0:0 to DA:0:2, respectively.&amp;lt;/br&amp;gt;&lt;br /&gt;
DA:0:0 to DA:0:99 is not assigned to DA:1:0, and an out-of-array reference error occurs&amp;lt;br&amp;gt;&lt;br /&gt;
However, it cannot be used for compound assignment (A += 1,2,3 etc.).&amp;lt;/br&amp;gt;&lt;br /&gt;
Also, when using batch assignment for assignment to a string type array variable, you must perform [../exetc#Assignment to a String Variable Using a String Expression|assignment using a string expression]&lt;br /&gt;
&lt;br /&gt;
 ;The string &amp;quot;Strawberry, Melon, Blue Hawaii&amp;quot; is assigned to STR: 20&lt;br /&gt;
 STR:20 = Strawberry, Melon, Blue Hawaii&lt;br /&gt;
 ;&amp;quot;Strawberry&amp;quot;, &amp;quot;Melon&amp;quot;, &amp;quot;Blue Hawaii&amp;quot; are assigned to STR:20~STR:22 respectively&lt;br /&gt;
 STR:20 '= &amp;quot;Strawberry&amp;quot;, &amp;quot;Melon&amp;quot;, &amp;quot;Blue Hawaii&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Assignment to String Variable Using FORM Syntax ==&lt;br /&gt;
When assigning to a string variable, you can specify the character string to be assigned in the same format as PRINTFORM.&lt;br /&gt;
&lt;br /&gt;
 SAVESTR:0 = %RESULTS%&lt;br /&gt;
&lt;br /&gt;
In this statement, you can substitute the contents of RESULTS for SAVESTR:0.&amp;lt;/br&amp;gt;&lt;br /&gt;
The same statement means that eramaker substitutes the actual string of %RESULTS% for SAVESTR:0.&amp;lt;/br&amp;gt;&lt;br /&gt;
If you want to substitute for the string %RESULTS% itself in Emuera, write as follows:&lt;br /&gt;
&lt;br /&gt;
 SAVESTR:0 = \%RESULT\%&lt;br /&gt;
&lt;br /&gt;
The character immediately after the \ symbol is not treated as a system symbol.&amp;lt;/br&amp;gt;&lt;br /&gt;
If you want to include the \ symbol in the string, use \\.&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
In the rare case, if you want the same behavior on eramaker and Emuera, you need to write as follows.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ;!;SAVESTR:0 = \%RESULT\%&lt;br /&gt;
 ;!;[SKIPSTART]&lt;br /&gt;
 SAVESTR:0 = %RESULTS%&lt;br /&gt;
 ;!;[SKIPEND]&lt;br /&gt;
&lt;br /&gt;
== Assignment to a String Variable Using a String Expression ==&lt;br /&gt;
&lt;br /&gt;
In Emuera after ver1813, assignment to string variables can be newly performed using the assignment operator '= and a string expression.&lt;br /&gt;
&lt;br /&gt;
 ;Same as &amp;quot;STR = Ayu&amp;quot;&lt;br /&gt;
 STR '= &amp;quot;Ayu&amp;quot;&lt;br /&gt;
 ;Same as &amp;quot;STR = %TSTR:0%ABC&amp;quot;&lt;br /&gt;
 STR '= TSTR:0 + &amp;quot;ABC&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Specifying Array Variable Elements Using Character Strings ==&lt;br /&gt;
&lt;br /&gt;
For the following variables, the argument can be called as a character string defined in *.csv.&amp;lt;/br&amp;gt;&lt;br /&gt;
For details on the new variables of Emuera, see [../exvar|Extended Syntax-Constants and Variables Added by Emuera].&lt;br /&gt;
&lt;br /&gt;
 ITEM (item.csv)&lt;br /&gt;
 ITEMSALES (item.csv)&lt;br /&gt;
 LOSEBASE (base.csv)&lt;br /&gt;
 BASE (base.csv)&lt;br /&gt;
 MAXBASE (base.csv)&lt;br /&gt;
 ABL (abl.csv)&lt;br /&gt;
 TALENT (talent.csv)&lt;br /&gt;
 EXP (exp.csv)&lt;br /&gt;
 MARK (mark.csv)&lt;br /&gt;
 RELATION (chara*.csv)&lt;br /&gt;
 UP (palam.csv)&lt;br /&gt;
 DOWN (palam.csv)&lt;br /&gt;
 PALAM (palam.csv)&lt;br /&gt;
 JUEL (palam.csv)&lt;br /&gt;
 GOTJUEL (palam.csv)&lt;br /&gt;
 STAIN (stain.csv)&lt;br /&gt;
 SOURCE (source.csv)&lt;br /&gt;
 EX (ex.csv)&lt;br /&gt;
 NOWEX (ex.csv)&lt;br /&gt;
 TEQUIP (tequip.csv)&lt;br /&gt;
 EQUIP (equip.csv)&lt;br /&gt;
 FLAG (flag.csv)&lt;br /&gt;
 TFLAG (tflag.csv)&lt;br /&gt;
 CFLAG (cflag.csv)&lt;br /&gt;
 STR (strname.csv)&lt;br /&gt;
 SAVESTR (savestr.csv)&lt;br /&gt;
 &lt;br /&gt;
The following are variables added by Emuera&lt;br /&gt;
&lt;br /&gt;
 ITEMPRICE (item.csv)&lt;br /&gt;
 DOWNBASE (base.csv)&lt;br /&gt;
 CUP (palam.csv)&lt;br /&gt;
 CDOWN (palam.csv)&lt;br /&gt;
 TCVAR (tcvar.csv)&lt;br /&gt;
 TSTR (tstr.csv)&lt;br /&gt;
 CSTR (cstr.csv)&lt;br /&gt;
 CDFLAG (cdflag1.csv, cdflag2.csv)&lt;br /&gt;
 GLOBAL (global.csv)&lt;br /&gt;
 GLOBALS (globals.csv)&lt;br /&gt;
&lt;br /&gt;
For example, if abl.csv has the definition &amp;quot;2, Skill&amp;quot;, the following four lines have the same meaning.&lt;br /&gt;
&lt;br /&gt;
 ABL:Skill += 1&lt;br /&gt;
 ABL:2 += 1&lt;br /&gt;
 ABL:&amp;quot;Skill&amp;quot; += 1&lt;br /&gt;
 ABL:(ABLNAME:2) += 1&lt;br /&gt;
&lt;br /&gt;
For RELATION, you can specify either NAME or CALLNAME.&amp;lt;/br&amp;gt;&lt;br /&gt;
If there are multiple definitions with the same name, the one defined first will be called.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if abl.csv contains &amp;quot;2, Skill&amp;quot; and &amp;quot;4, Skill&amp;quot;, and &amp;quot;2, Skill&amp;quot; is defined in the previous line, &amp;quot;ABL:Skill&amp;quot; becomes &amp;quot;ABL:2&amp;quot;.&amp;lt;/br&amp;gt;&lt;br /&gt;
Strings can be expressions or variables. In that case, please add () as shown below.&lt;br /&gt;
&lt;br /&gt;
 ABL:(RESULTS:0) = ABL:(RESULTS:0) + 1&lt;br /&gt;
&lt;br /&gt;
If () is omitted, the item name and the variable name may be the same. In that case, the variable takes precedence.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if abl.csv has the definition &amp;quot;0, Rotor&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 @HOGE&lt;br /&gt;
 #DIM Rotor, 0&lt;br /&gt;
 Rotor = 1&lt;br /&gt;
 PRINTFORML {ABL:Rotor}&lt;br /&gt;
&lt;br /&gt;
In this case, it is interpreted as the first ABL, not the zeroth ABL.&amp;lt;/br&amp;gt;&lt;br /&gt;
Similarly, if the item name is a number, interpretation as a number takes precedence.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if you define &amp;quot;0,10&amp;quot; in abl.csv and refer to ABL: 10, it will not be interpreted as the 0th ABL and will be the 10th ABL.&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This can also be used in definitions in chara*.csv.&amp;lt;/br&amp;gt;&lt;br /&gt;
For example, if abl.csv has the definition &amp;quot;2, Skill&amp;quot;, the following two lines have the same meaning:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 能力,2,2&lt;br /&gt;
 能力,Skill,2&lt;br /&gt;
&lt;br /&gt;
However, it cannot be used for RELATION(相性).&amp;lt;/br&amp;gt;&lt;br /&gt;
This is because the system does not know the correspondence between chara name and NO when reading chara*.csv.&lt;br /&gt;
&lt;br /&gt;
== Formatted String (FORM Syntax) Extension ==&lt;br /&gt;
You can specify the number of digits (characters) to be displayed in {} and %% of the formatted strings used in PRINTFORM, etc.&amp;lt;/br&amp;gt;&lt;br /&gt;
In the form of {Variable/Expression, Number of digits, Justification (LEFT or RIGHT)}, %Variable/String Expression, Number of digits, Justification (LEFT or RIGHT)%.&amp;lt;/br&amp;gt;&lt;br /&gt;
Full-width (japanese) characters are counted as 2 characters.&amp;lt;/br&amp;gt;&lt;br /&gt;
Half-size spaces will be added to the number of digits (characters) in the display.&amp;lt;/br&amp;gt;&lt;br /&gt;
Normally it is right-aligned, but if you specify the keyword LEFT, it will be left-aligned.&amp;lt;/br&amp;gt;&lt;br /&gt;
If the original number of digits is larger than the specified number of display digits, it is displayed as it is.&lt;br /&gt;
&lt;br /&gt;
 A = 123456&lt;br /&gt;
 STR:0 = あいう&lt;br /&gt;
 PRINTFORML [{A}]&lt;br /&gt;
 PRINTFORML [{A,10}]&lt;br /&gt;
 PRINTFORML [{A,10,LEFT}]&lt;br /&gt;
 PRINTFORML [%STR:0%]&lt;br /&gt;
 PRINTFORML [%STR:0,10%]&lt;br /&gt;
 PRINTFORML [%STR:0,10,LEFT%]&lt;br /&gt;
 PRINTFORML [{A,2}]&lt;br /&gt;
 PRINTFORML [%STR:0,2%]&lt;br /&gt;
&lt;br /&gt;
Results&lt;br /&gt;
&lt;br /&gt;
 [123456]&lt;br /&gt;
 [    123456]&lt;br /&gt;
 [123456    ]&lt;br /&gt;
 [あいう]&lt;br /&gt;
 [    あいう]&lt;br /&gt;
 [あいう    ]&lt;br /&gt;
 [123456]&lt;br /&gt;
 [あいう]&lt;br /&gt;
&lt;br /&gt;
== 文字列式中での書式付文字列（FORM構文）の使用 ==&lt;br /&gt;
PRINTSやユーザー定義の式中関数の引数といった文字列式中でFORM構文を使用するとエラーになります。&amp;lt;/br&amp;gt;&lt;br /&gt;
そのため文字列式中で書式付文字列を使用する場合、文字列式中で定文字列を使うときに&amp;quot;～&amp;quot;を使用するのと同じように&amp;lt;/br&amp;gt;&lt;br /&gt;
@&amp;quot;～&amp;quot;を使用します。&lt;br /&gt;
また、@&amp;quot;～&amp;quot;の中の文字列が\@～\@を用いた三項演算子による記載のみである場合、@&amp;quot;～&amp;quot;を省略して直接\@～\@と書くことができます&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
正しい例&lt;br /&gt;
 ;代入はFORM構文&lt;br /&gt;
 STR:0 = あいう&lt;br /&gt;
 ;加算は文字列式&lt;br /&gt;
 RESULTS += STR:0&lt;br /&gt;
 ;文字列式に定文字列を使用する例&lt;br /&gt;
 RESULTS += &amp;quot;えお&amp;quot;&lt;br /&gt;
 ;文字列式にFORM構文を使用する例&lt;br /&gt;
 PRINTS @&amp;quot;%RESULTS%かきくけこ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 ;以下の4行はすべて同じである&lt;br /&gt;
 PRINTS STR:0 + &amp;quot;！&amp;quot;&lt;br /&gt;
 PRINTFORM %STR:0%！&lt;br /&gt;
 PRINTS @&amp;quot;%STR:0%！&amp;quot;&lt;br /&gt;
 PRINTFORM %STR:0 + &amp;quot;！&amp;quot;%&lt;br /&gt;
間違った例&lt;br /&gt;
 ;中身が「RESULTS」になる&lt;br /&gt;
 STR:0 = RESULTS&lt;br /&gt;
 ;エラーが出る&lt;br /&gt;
 RESULTS += えお&lt;br /&gt;
 ;エラーが出る&lt;br /&gt;
 RESULTS += %STR:0%&lt;br /&gt;
 ;「@&amp;quot;」と「&amp;quot;」も表示される&lt;br /&gt;
 PRINTFORM @&amp;quot;%RESULTS%かきくけこ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== INPUTS系でのマクロ構文の使用 ==&lt;br /&gt;
INPUTSやそれに類する入力受付命令で、マクロ式を用いることができます。&amp;lt;/br&amp;gt;&lt;br /&gt;
マクロの書式については[[../howto|利用方法]]のマクロの項目を確認してください。&amp;lt;/br&amp;gt;&lt;br /&gt;
マクロ構文を使わず、単なる文字列として()を使用する場合、\を用いてエスケープしてください。&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/eramaerb&amp;diff=39881</id>
		<title>Emuera/eramaerb</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/eramaerb&amp;diff=39881"/>
		<updated>2020-05-16T22:41:23Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Update History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;B&amp;gt;eramaker ERB file format (provisional)&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
I think &amp;lt;em&amp;gt;&amp;lt;b&amp;gt;it's hard to get a picture just by looking at this file.&amp;lt;/b&amp;gt;&amp;lt;/em&amp;gt; It is easier to understand if you play the sample game first, and then look at the ERB files of the sample game while looking at it.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Basic Info==&lt;br /&gt;
===About the ERB file===&lt;br /&gt;
* Put a folder named ERB directly under eramaker.exe, and put ERB file in it.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can use any file name as long as the extension is .ERB&amp;lt;BR&amp;gt;&lt;br /&gt;
* Please edit it with a text editor such as Notepad.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to write an ERB file===&lt;br /&gt;
====Comments &amp;amp; Spaces====&lt;br /&gt;
In all ERB files,&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* If the first character in the first column is a ; (semicolon), the line is ignored. Empty lines are also ignored.&amp;lt;BR&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Don't put a semicolon at the end of a line, or a comment after it.&amp;lt;/del&amp;gt; Both ways can be done in Emuera.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Any number of spaces or tabs at the beginning of a line will be ignored.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
;Setting up the money&lt;br /&gt;
MONEY = 500&lt;br /&gt;
;Setting the time&lt;br /&gt;
DAY = 10&lt;br /&gt;
TIME = 1&lt;br /&gt;
;Game start&lt;br /&gt;
PRINT What do we do now?&lt;br /&gt;
&lt;br /&gt;
; Also CORRECT in Emuera&lt;br /&gt;
; The ; at the end of MONEY = 500 is not needed&lt;br /&gt;
; MISTAKE in eramaker&lt;br /&gt;
&lt;br /&gt;
MONEY = 500;&lt;br /&gt;
TIME = 5; (Start on Day 5)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Half-width input====&lt;br /&gt;
Please use half-width characters when inputting numbers, instructions, variable names, function names, etc.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
PRINT Let the game begin.&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
ＭＯＮＥＹ ＝　500&lt;br /&gt;
ＰＲＩＮＴ Let the game begin.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Inputting a string====&lt;br /&gt;
It doesn't work properly if you enclose a string with &amp;quot;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
PRINT The day is over...&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
PRINT &amp;quot;The day is over...&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====It' s all in one line====&lt;br /&gt;
Even when writing long instructions, don't split them into more than two lines.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
PRINT Nayuki's body was sensitive and she had a lot of experience, so she was happy even if it was a little rough. Even though she denies it with her mouth, Nayuki is getting more and more promiscuous. But the peculiar circumstance of her being asleep made me hesitant to make a bolder move.&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
PRINT &lt;br /&gt;
Nayuki's body was sensitive and she had a lot of experience, so she was happy even if it was a little rough. Even though she denies it with her mouth, Nayuki is getting more and more promiscuous. But the peculiar circumstance of her being asleep made me hesitant to make a bolder move.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Variables and Instructions==&lt;br /&gt;
===About the variables===&lt;br /&gt;
&lt;br /&gt;
In training SLG, the change of parameters is vital. Therefore, it is necessary to learn how to use &amp;quot;variables&amp;quot; that can store data and perform calculations such as adding and multiplying data.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
====Putting a number in a variable====&lt;br /&gt;
Use = (equal). Please enter it in half-width characters. Before and after = is separated by a half-size space or a tab.&amp;lt;BR&amp;gt;&lt;br /&gt;
The numbers that can be used in eramaker are basically integers. Do not enter a decimal point.&amp;lt;b&amp;gt;*&amp;lt;/b&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
MONEY ＝ 500&lt;br /&gt;
MONEY=500&lt;br /&gt;
MONEY = 3.14&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;*Adendum:&amp;lt;/b&amp;gt; Emuera has since added more number literal types. Check [[Emuera/exvar#Constants_(Literals)|Constants (Literals)]] for more information.&lt;br /&gt;
&lt;br /&gt;
====Putting a calculated number into a variable====&lt;br /&gt;
Use = in the same way. Note that * is for multiplication, / is for division, and % is for the rest of the division.&amp;lt;BR&amp;gt;&lt;br /&gt;
Fractions are rounded down when the result is a decimal.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
;set MONEY to 74&lt;br /&gt;
MONEY = 15+34+25&lt;br /&gt;
;set MONEY to 650&lt;br /&gt;
MONEY = 150+(100-50)*10&lt;br /&gt;
;set MONEY to 3&lt;br /&gt;
MONEY = 10/3&lt;br /&gt;
;set MONEY to TIME multiplied by 10&lt;br /&gt;
MONEY = TIME*10&lt;br /&gt;
;If DAY is 0,1,2... then MONEY becomes 0,10,20... and returns to 0 when it exceeds 7.&lt;br /&gt;
MONEY = DAY%7*10&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
MONEY = 500×10÷4&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Add or multiply variables====&lt;br /&gt;
Use +=, -=, *=, /=, %=.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
MONEY = 100&lt;br /&gt;
TIME = 12&lt;br /&gt;
;set MONEY to 150&lt;br /&gt;
MONEY += 50&lt;br /&gt;
;set MONEY to 750&lt;br /&gt;
MONEY *= 7-2&lt;br /&gt;
;set MONEY to 80&lt;br /&gt;
MONEY -= 670&lt;br /&gt;
;set MONEY to 8&lt;br /&gt;
MONEY %= TIME&lt;br /&gt;
;set MONEY to 1&lt;br /&gt;
MONEY /= TIME-4&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====About Arrays====&lt;br /&gt;
* The variables can be accessed as an &amp;quot;array&amp;quot;. An &amp;quot;array&amp;quot; is for managing multiple data with the variable of the same name.&amp;lt;BR&amp;gt;&lt;br /&gt;
* To access the array, use : (colon). Please enter it in half-width characters. Don't put any spaces in between.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The number that can be put after the array is at least 0. The maximum value is determined by the variable. See the list for more information.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also put a variable instead of a number after the array. However, you can't put an array after an array.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
A = 35&lt;br /&gt;
;Set the FLAG to a value&lt;br /&gt;
FLAG:0 = 0&lt;br /&gt;
FLAG:2 = 10&lt;br /&gt;
FLAG:35 = 440&lt;br /&gt;
;Calculate with FLAG&lt;br /&gt;
FLAG:A += 100/FLAG:2&lt;br /&gt;
FLAG:2 *= FLAG:A&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
FLAG：0 = 10&lt;br /&gt;
FLAG : 52 = 1000&lt;br /&gt;
FLAG:FLAG:20 = 10000&lt;br /&gt;
FLAG:91881816 = 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====About the Double Sequence====&lt;br /&gt;
* Exceptionally, some variables can be accessed using two colons. Usually variables related to your character's data.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Use (variable name):(character number):(variable number) to access it.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
A = 2&lt;br /&gt;
;Makes the 5th character's 0th ability LV3.&lt;br /&gt;
ABL:5:0 = 3&lt;br /&gt;
;A (2nd) character's first experience is increased by 1.&lt;br /&gt;
EXP:A:1 += 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Display the variable on the screen====&lt;br /&gt;
* The easiest way to do this is to use the PRINTV and PRINTVL commands. We will discuss the instruction in more detail later.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
A = 2&lt;br /&gt;
PRINTV A&lt;br /&gt;
A = 30&lt;br /&gt;
PRINTVL A&lt;br /&gt;
B = 400&lt;br /&gt;
PRINTVL B&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
230&lt;br /&gt;
400&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====About String Variables====&lt;br /&gt;
* Regular variables can only handle integers, but there are string variables that can handle strings. However, the features are limited.&amp;lt;BR&amp;gt;&lt;br /&gt;
* To display a string variable on the screen, use the PRINTS or PRINTSL instruction.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
STR:0 = aiueo&lt;br /&gt;
PRINTSL STR:0&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
;You can't add it with +=&lt;br /&gt;
STR:0 += ueo&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Variable List====&lt;br /&gt;
* See [[Emuera/eramavar|here]].&lt;br /&gt;
&lt;br /&gt;
===About Instructions (Basic)===&lt;br /&gt;
Instructions can be used to display characters on the screen and to make conditional judgments.&lt;br /&gt;
====How to write an instruction====&lt;br /&gt;
* The basic writing style is (instruction name) (instruction content). Separate (instruction name) and (instruction content) with a half-size space or tab. &amp;lt;BR&amp;gt;&lt;br /&gt;
* If there is no (instruction content), start a new line as it is.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
PRINT This is a test.&lt;br /&gt;
SIF 3 == 1+2&lt;br /&gt;
   PRINT Obviously.&lt;br /&gt;
WAIT&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
PRINTThis is a test.。&lt;br /&gt;
;wait for input&lt;br /&gt;
WAIT 0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Displaying Text====&lt;br /&gt;
* PRINT is an instruction to display text; PRINTL displays text and starts a new line; PRINTW displays text and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The PRINTV command displays the content of a variable, the PRINTVL command displays the content of the variable and makes a new line, the PRINTVW command displays the content of the variable and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINTS is an instruction that displays the contents of a string variable, PRINTSL displays the contents of the string variable and starts a new line, PRINTSW displays the contents of the string variable and waits for input, and PRINTSW displays the contents of the string variable and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINTFORM can display a combination of characters, variables, and string variables; PRINTFORML can do the same and break a new line; PRINTFORMW can do the same and wait for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINTFORMS is the same as PRINTFORM. PRINTFORMSL is the same as PRINTFORM, but with a new line, PRINTFORMSW is the same as PRINTFORM and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
(If you are waiting for input with a W at the end of the command, press Enter to move on, and the line will eventually be broken.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
NAME:0 = Sato&lt;br /&gt;
PRINT The money is &lt;br /&gt;
PRINTV MONEY&lt;br /&gt;
PRINTL  yen.&lt;br /&gt;
PRINT My name is &lt;br /&gt;
PRINTS NAME:0&lt;br /&gt;
PRINTL .&lt;br /&gt;
PRINTFORML To repeat, the name is %NAME:0% and the money is {MONEY} yen.&lt;br /&gt;
PRINTFORMW If you get 1000 yen and pay 600 yen, you're left with {MONEY+1000-600} yen.&lt;br /&gt;
STR:0 = If you multiply that money by five, it's {(MONEY+1000-600)*5} yen.&lt;br /&gt;
PRINTFORMSW STR:0&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
The money is 500 yen.&lt;br /&gt;
My name is Sato.&lt;br /&gt;
To repeat, the name is Sato and the money is 500 yen.&lt;br /&gt;
If you get 1000 yen and pay 600 yen, you're left with 900 yen.&lt;br /&gt;
If you multiply that money by five, it's 4500 yen.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Making Conditional Decisions====&lt;br /&gt;
&lt;br /&gt;
* The quickest way to understand conditional decisions is to look at &amp;lt;b&amp;gt;examples&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* SIF executes the next line if the conditional expression is not 0 (if true). If it is 0 (if not true), it skips the next line.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If the conditional expression is not 0 (if satisfied), IF executes from the next line until ELSE, ELSEIF, or ENDIF are encountered. (If it's ELSE, it will be executed from the next line until it receives an ENDIF. If the conditional expression is satisfied in ELSEIF, it executes the next lines until it encounters ELSE, ELSEIF, or ENDIF. If the conditional expression is not satisfied, skip until ELSE, ELSEIF, or ENDIF, and repeat)&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
A = 1&lt;br /&gt;
B = 2&lt;br /&gt;
C = 4&lt;br /&gt;
&lt;br /&gt;
SIF A == 1&lt;br /&gt;
   PRINTL Test 1&lt;br /&gt;
SIF B != 1&lt;br /&gt;
   PRINTL Test 2&lt;br /&gt;
SIF C &amp;lt; 5&lt;br /&gt;
   PRINTL Test 3&lt;br /&gt;
IF A+B &amp;gt; 2&lt;br /&gt;
   IF C &amp;gt;= 6&lt;br /&gt;
      PRINTL Test 4&lt;br /&gt;
   ELSE&lt;br /&gt;
      PRINTL Test 5&lt;br /&gt;
   ENDIF&lt;br /&gt;
   IF A == 1 &amp;amp;&amp;amp; B == 3&lt;br /&gt;
      PRINTL Test 6&lt;br /&gt;
   ELSEIF A == 1 || B == 3&lt;br /&gt;
      PRINTL Test 7&lt;br /&gt;
   ELSEIF A &amp;gt; 1 || (B &amp;gt; 2 &amp;amp;&amp;amp; C &amp;gt; 2)&lt;br /&gt;
      PRINTL Test 8&lt;br /&gt;
   ENDIF&lt;br /&gt;
ELSEIF A+B == 2&lt;br /&gt;
   PRINTL Test 9&lt;br /&gt;
ELSE&lt;br /&gt;
   PRINTL Test 10&lt;br /&gt;
ENDIF&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
Test 1&lt;br /&gt;
Test 2&lt;br /&gt;
Test 3&lt;br /&gt;
Test 5&lt;br /&gt;
Test 7&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Use == for &amp;quot;equal&amp;quot; and != for &amp;quot;not equal&amp;quot;, &amp;gt; for &amp;quot;left is greater than&amp;quot;, &amp;gt;= for &amp;quot;left is greater or equal than right&amp;quot;, &amp;lt; for &amp;quot;left is less than&amp;quot;, and &amp;lt;= for &amp;quot;left is less or equal than right&amp;quot;. All fields must be typed in half-width characters.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Use &amp;amp;&amp;amp; for &amp;quot;and&amp;quot; and || for &amp;quot;or&amp;quot;. All fields must be typed in half-width characters.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also use parentheses to describe complex conditions.&lt;br /&gt;
&lt;br /&gt;
====Input and wait for input====&lt;br /&gt;
* Use WAIT to wait for input, e.g. to display a sentence.&amp;lt;BR&amp;gt;&lt;br /&gt;
（※Usually something like PRINTW is used instead. It makes it easier to see because stuff can be expressed with fewer lines）&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you want the player to input an integer, use INPUT. The result of the input is stored in the RESULT variable.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you want the player to input a string, use INPUTS. The result of the input is stored in RESULTS variable.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
PRINT Data entry begins.&lt;br /&gt;
WAIT&lt;br /&gt;
PRINTL Please enter your age.&lt;br /&gt;
INPUT&lt;br /&gt;
PRINTL Please enter your name.&lt;br /&gt;
INPUTS&lt;br /&gt;
PRINTFORML %RESULTS% is {RESULT} years old, isn't it?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Repetition and GOTO====&lt;br /&gt;
* If you want to repeat the same instruction, use REPEAT, which is repeated until REND is found. The number of times it is repeated is stored in the COUNT.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Please note that you cannot create a REPEAT inside a REPEAT.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you use CONTINUE on the way from REPEAT to REND, it will go back to where REPEAT was. If you use BREAK, it will stop repeating and skip to the next line after REND.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you want to move to another place at once, you can use GOTO. To use GOTO, you need to register a &amp;quot;label&amp;quot; with $.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Example 1&lt;br /&gt;
&lt;br /&gt;
REPEAT 10&lt;br /&gt;
   PRINT AIU&lt;br /&gt;
REND&lt;br /&gt;
;Line break by writing 0 characters in PRINTL&lt;br /&gt;
PRINTL &lt;br /&gt;
REPEAT 5&lt;br /&gt;
   PRINTFORML Score: {COUNT*5}&lt;br /&gt;
REND&lt;br /&gt;
&lt;br /&gt;
; Results Of Example 1&lt;br /&gt;
&lt;br /&gt;
AIUAIUAIUAIUAIUAIUAIUAIUAIUAIU&lt;br /&gt;
Score: 0&lt;br /&gt;
Score: 5&lt;br /&gt;
Score: 10&lt;br /&gt;
Score: 15&lt;br /&gt;
Score: 20&lt;br /&gt;
&lt;br /&gt;
; Example 2&lt;br /&gt;
&lt;br /&gt;
MONEY = 300&lt;br /&gt;
REPEAT 5&lt;br /&gt;
    SIF MONEY &amp;lt;= COUNT*100&lt;br /&gt;
        BREAK&lt;br /&gt;
    PRINTFORML That's more money than {COUNT*100} yen.&lt;br /&gt;
REND&lt;br /&gt;
REPEAT 5&lt;br /&gt;
    SIF MONEY == COUNT*100&lt;br /&gt;
        CONTINUE&lt;br /&gt;
    PRINTFORML The holdings are not {COUNT*100} yen.&lt;br /&gt;
REND&lt;br /&gt;
&lt;br /&gt;
; Results Of Example 2&lt;br /&gt;
&lt;br /&gt;
That's more money than 0 yen.&lt;br /&gt;
That's more money than 100 yen.&lt;br /&gt;
That's more money than 200 yen.&lt;br /&gt;
The holdings are not 0 yen.&lt;br /&gt;
The holdings are not 100 yen.&lt;br /&gt;
The holdings are not 200 yen.&lt;br /&gt;
The holdings are not 400 yen.&lt;br /&gt;
&lt;br /&gt;
; Example 3&lt;br /&gt;
&lt;br /&gt;
$INPUT_LOOP&lt;br /&gt;
PRINTL Enter a number from 0 to 9.&lt;br /&gt;
INPUT&lt;br /&gt;
SIF RESULT &amp;lt; 0 || RESULT &amp;gt; 9&lt;br /&gt;
    GOTO INPUT_LOOP&lt;br /&gt;
PRINTFORML {RESULT} has been entered.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====About Functions====&lt;br /&gt;
* It's hard to understand your program when you're writing it from start to finish.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can use &amp;quot;functions&amp;quot; to break them down into parts and make them easier to understand.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Functions are registered using @. After @, write the name of the function using the alphabet and _ (underscore). Please enter the function name in half-width characters.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The first function called in the game should be named EVENTFIRST (more on this later).&amp;lt;BR&amp;gt;&lt;br /&gt;
* To move to another function, use JUMP.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you want to move to another function and then resume from the original position when the function is finished, use CALL.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you use RETURN in a function called by CALL, you can terminate the function in the middle. At that time, the number specified by RETURN is stored in RESULT. If the function exits without using RETURN, RESULT will be set to 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you use RESTART, you start from the beginning of the function.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
@EVENTFIRST&lt;br /&gt;
PRINTW Game start.&lt;br /&gt;
&lt;br /&gt;
CALL OPENING&lt;br /&gt;
PRINTFORMW The opening result was {RESULT}.&lt;br /&gt;
CALL GAME_MAIN&lt;br /&gt;
PRINTFORMW The result of the game was {RESULT}.&lt;br /&gt;
JUMP ENDING&lt;br /&gt;
&lt;br /&gt;
PRINTL You can't see this part because I used JUMP.&lt;br /&gt;
&lt;br /&gt;
@OPENING&lt;br /&gt;
PRINTW Doing Opening.&lt;br /&gt;
RETURN 25&lt;br /&gt;
&lt;br /&gt;
@GAME_MAIN&lt;br /&gt;
PRINTW We're in the game.&lt;br /&gt;
PRINTL Ending without RETURN.&lt;br /&gt;
&lt;br /&gt;
@ENDING&lt;br /&gt;
PRINTW Doing Ending.&lt;br /&gt;
RESTART&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
Game start.&lt;br /&gt;
Doing Opening.&lt;br /&gt;
The opening result was 25.&lt;br /&gt;
We're in the game.&lt;br /&gt;
Ending without RETURN.&lt;br /&gt;
The result of the game was 0.&lt;br /&gt;
Doing Ending.&lt;br /&gt;
Doing Ending.&lt;br /&gt;
Doing Ending.&lt;br /&gt;
Doing Ending.&lt;br /&gt;
Doing Ending.&lt;br /&gt;
.......(keeps on infinitely)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Other Basic Instructions====&lt;br /&gt;
* Use QUIT to quit the game.&amp;lt;BR&amp;gt;&lt;br /&gt;
* With DRAWLINE, you can draw a line ---- from the left edge of the screen to the right edge of the screen.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can use TIMES to multiply by decimals. eramaker basically treats numbers as integers, so if you want to intertwine decimals, you can use this instruction: TIMES (variable),(fractional).&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you use BAR, you can display a graph like [*****....], if you use BARL, you can use it in the form of a new line. BARL is used the same way as BAR (variable),(maximum value),(length).&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
DRAWLINE&lt;br /&gt;
BARL MONEY , 1000 , 20&lt;br /&gt;
PRINTFORMW I have {MONEY} yen.&lt;br /&gt;
DRAWLINE&lt;br /&gt;
TIMES MONEY , 1.25&lt;br /&gt;
BARL MONEY , 1000 , 20&lt;br /&gt;
PRINTFORMW It is now {MONEY} yen. End the game.&lt;br /&gt;
QUIT&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------&lt;br /&gt;
[**********..........]&lt;br /&gt;
I have 500 yen.&lt;br /&gt;
---------------------------------------------------------------------&lt;br /&gt;
[************........]&lt;br /&gt;
It is now 625 yen. End the game.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Instructions (for Training)===&lt;br /&gt;
* The eramaker has a number of special instructions to use for training.&lt;br /&gt;
&lt;br /&gt;
====Display of training data====&lt;br /&gt;
* PRINT_ABL displays the character's abilities.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_TALENT displays the character's qualities.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_MARK displays the character's marks.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_EXP displays the experiences of the character.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_PALAM displays the character's training parameters.&amp;lt;BR&amp;gt;&lt;br /&gt;
* When using the above instructions, specify which character's data you want to display. For example, PRINT_ABL 0 will usually show the ability of the protagonist.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_ITEM displays the items in your possession.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_SHOPITEM displays the items available in the shop.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* UPCHECK shows the change in training parameters as a result of training commands.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
====Character Management====&lt;br /&gt;
* ADDCHARA adds a character. If you want to add the character number 3, you do it with ADDCHARA 3.&amp;lt;BR&amp;gt;&lt;br /&gt;
* ADDSPCHARA adds an SP character. If you want to add an SP character with character number 3, use ADDSPCHARA 3.&amp;lt;BR&amp;gt;&lt;br /&gt;
(An SP character is a character whose character flag number 0 is 1)&amp;lt;BR&amp;gt;&lt;br /&gt;
* DELCHARA removes characters added by ADDCHARA and others.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
;The name of the character with character number 0 is Hiroyuki, the main character.&lt;br /&gt;
;Suppose the name of the character number 3 is Tomoko, the name of the character number 5 is Remy, and the name of the character number 6 is Kotone.&lt;br /&gt;
PRINTFORML The number of characters you have now is {CHARANUM}.&lt;br /&gt;
&lt;br /&gt;
ADDCHARA 3&lt;br /&gt;
ADDCHARA 5&lt;br /&gt;
ADDCHARA 6&lt;br /&gt;
PRINTFORML The number of characters you have now is {CHARANUM}.&lt;br /&gt;
REPEAT CHARANUM&lt;br /&gt;
   PRINTFORML At number {COUNT} is %NAME:COUNT%。&lt;br /&gt;
REND&lt;br /&gt;
DELCHARA 2&lt;br /&gt;
PRINTFORML The number of characters you have now is {CHARANUM}.&lt;br /&gt;
REPEAT CHARANUM&lt;br /&gt;
   PRINTFORML At number {COUNT} is %NAME:COUNT%。&lt;br /&gt;
REND&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
The number of characters you have now is 1.&lt;br /&gt;
The number of characters you have now is 4.&lt;br /&gt;
At number 0 is Hiroyuki。&lt;br /&gt;
At number 1 is Tomoko。&lt;br /&gt;
At number 2 is Remy。&lt;br /&gt;
At number 3 is Kotone。&lt;br /&gt;
The number of characters you have now is 3.&lt;br /&gt;
At number 0 is Hiroyuki。&lt;br /&gt;
At number 1 is Tomoko。&lt;br /&gt;
At number 2 is Kotone。&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Save-Related====&lt;br /&gt;
* SAVEGAME calls the save screen and LOADGAME calls the load screen. You must be a SHOP to be able to call them.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PUTFORM can only be used with a special function called @SAVEINFO, which can be written in the same format as PRINTFORM to give an overview of the saved data. It's a good idea to write data such as what day it is, how good your characters are, and which characters you're training.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====BEGIN====&lt;br /&gt;
* BEGIN progresses the game by invoking various system instructions.&amp;lt;BR&amp;gt;&lt;br /&gt;
* When BEGIN is called, the running function is terminated, and even if it is called from somewhere by CALL, it does not return to the original function.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN TRAIN will start training.&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN AFTERTRAIN is no longer training.&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN ABLUP invokes the Ability Up screen.&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN TURNEND ends its turn.&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN SHOP calls the SHOP.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Update History==&lt;br /&gt;
* 2020/04/09　Page fully translated.&lt;br /&gt;
* 2006/05/05　Provisional version released.&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera&amp;diff=39880</id>
		<title>Emuera</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera&amp;diff=39880"/>
		<updated>2020-05-16T22:03:56Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* eramaker basic Information for Developers */ corrections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a work in progress port/translation of the Emuera wiki at https://osdn.net/projects/emuera/wiki/FrontPage&lt;br /&gt;
&lt;br /&gt;
Things will be incomplete or missing.&lt;br /&gt;
== Information about eramaker ==&lt;br /&gt;
Most of the features implemented in eramaker are not explained in Emuera's documentation. Therefore if you need, check eramaker's below:&lt;br /&gt;
&lt;br /&gt;
* [[Emuera/eramacsv|Eramaker CSV File Format]]&lt;br /&gt;
* [[Emuera/eramaerc|Eramaker Game Structure]]&lt;br /&gt;
* [[Emuera/eramaerb|Eramaker ERB File Format]]&lt;br /&gt;
* [[Emuera/eramavar|Eramaker Variable List]]&lt;br /&gt;
&lt;br /&gt;
You can also refer to the following link for the original documentation: http://cbaku.com/b/2010/12/eramaker/&lt;br /&gt;
&lt;br /&gt;
== Information for end users ==&lt;br /&gt;
* [[Emuera/howto|How to Use]] [[https://osdn.net/projects/emuera/wiki/howto Source]]&lt;br /&gt;
* [[Emuera/config|Config Settings]] [[https://osdn.net/projects/emuera/wiki/config Source]]&lt;br /&gt;
* [[Emuera/shortcut|Shortcut Keys]] [[https://osdn.net/projects/emuera/wiki/shortcut Source]]&lt;br /&gt;
* [[Emuera/history|Update History]] [[https://osdn.net/projects/emuera/wiki/history Source]]&lt;br /&gt;
* [[Emuera/Thread|Emuera thread]] [[https://osdn.net/projects/emuera/wiki/Thread Source]]&lt;br /&gt;
&lt;br /&gt;
==eramaker basic Information for Developers==&lt;br /&gt;
* [[Emuera/EmuDic|Glossary]] [[https://osdn.net/projects/emuera/wiki/EmuDic Source]]&lt;br /&gt;
* [[Emuera/debugcom|Debug Commands]] [[https://osdn.net/projects/emuera/wiki/debugcom Source]]&lt;br /&gt;
* [[Emuera/debug|Debug Mode]] [[https://osdn.net/projects/emuera/wiki/debug Source]]&lt;br /&gt;
* [[Emuera/replace|_replace.csv]] [[https://osdn.net/projects/emuera/wiki/replace Source]]&lt;br /&gt;
* [[Emuera/exconfig|Forcing a Config item]] [[https://osdn.net/projects/emuera/wiki/exconfig Source]]&lt;br /&gt;
* [[Emuera/flow|Flowchart]] [[https://osdn.net/projects/emuera/wiki/flow Source]]&lt;br /&gt;
* [[Emuera/diff|Differences with eramaker]] [[https://osdn.net/projects/emuera/wiki/diff Source]]&lt;br /&gt;
* [[Emuera/extended|Extended syntax added in Emuera]] [[https://osdn.net/projects/emuera/wiki/extended Source]]&lt;br /&gt;
** [[Emuera/exetc|General]] [[https://osdn.net/projects/emuera/wiki/exetc Source]]&lt;br /&gt;
** [[Emuera/exop|Operations]] [[https://osdn.net/projects/emuera/wiki/exop Source]]&lt;br /&gt;
** [[Emuera/exvar|Constants / Variables]] [[https://osdn.net/projects/emuera/wiki/exvar Source]]&lt;br /&gt;
** [[Emuera/UserVars|User-Defined Variables]] [[https://osdn.net/projects/emuera/wiki/UserVars Source]]&lt;br /&gt;
** [[Emuera/excom|Instructions]] [[https://osdn.net/projects/emuera/wiki/excom Source]]&lt;br /&gt;
** [[Emuera/exfunc|Function / Preprocessor]] [[https://osdn.net/projects/emuera/wiki/exfunc Source]]&lt;br /&gt;
** [[Emuera/exmeth|Functions that can be used in expressions]] [[https://osdn.net/projects/emuera/wiki/exmeth Source]]&lt;br /&gt;
** [[Emuera/UserMeth|User-defined in-expression functions]] [[https://osdn.net/projects/emuera/wiki/UserMeth Source]]&lt;br /&gt;
** [[Emuera/ERH|Header Files（ERH）]] [[https://osdn.net/projects/emuera/wiki/ERH Source]]&lt;br /&gt;
** [[Emuera/exhtml|HTML_PRINT related]] [[https://osdn.net/projects/emuera/wiki/exhtml Source]]&lt;br /&gt;
** [[Emuera/resources|Resource file]] [[https://osdn.net/projects/emuera/wiki/resources Source]]&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera&amp;diff=39879</id>
		<title>Emuera</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera&amp;diff=39879"/>
		<updated>2020-05-16T21:59:31Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Information for end users */ more sources&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a work in progress port/translation of the Emuera wiki at https://osdn.net/projects/emuera/wiki/FrontPage&lt;br /&gt;
&lt;br /&gt;
Things will be incomplete or missing.&lt;br /&gt;
== Information about eramaker ==&lt;br /&gt;
Most of the features implemented in eramaker are not explained in Emuera's documentation. Therefore if you need, check eramaker's below:&lt;br /&gt;
&lt;br /&gt;
* [[Emuera/eramacsv|Eramaker CSV File Format]]&lt;br /&gt;
* [[Emuera/eramaerc|Eramaker Game Structure]]&lt;br /&gt;
* [[Emuera/eramaerb|Eramaker ERB File Format]]&lt;br /&gt;
* [[Emuera/eramavar|Eramaker Variable List]]&lt;br /&gt;
&lt;br /&gt;
You can also refer to the following link for the original documentation: http://cbaku.com/b/2010/12/eramaker/&lt;br /&gt;
&lt;br /&gt;
== Information for end users ==&lt;br /&gt;
* [[Emuera/howto|How to Use]] [[https://osdn.net/projects/emuera/wiki/howto Source]]&lt;br /&gt;
* [[Emuera/config|Config Settings]] [[https://osdn.net/projects/emuera/wiki/config Source]]&lt;br /&gt;
* [[Emuera/shortcut|Shortcut Keys]] [[https://osdn.net/projects/emuera/wiki/shortcut Source]]&lt;br /&gt;
* [[Emuera/history|Update History]] [[https://osdn.net/projects/emuera/wiki/history Source]]&lt;br /&gt;
* [[Emuera/Thread|Emuera thread]] [[https://osdn.net/projects/emuera/wiki/Thread Source]]&lt;br /&gt;
&lt;br /&gt;
==eramaker basic Information for Developers==&lt;br /&gt;
* [[Emuera/EmuDic|Glossary]] [[https://osdn.net/projects/emuera/wiki/EmuDic Source]]&lt;br /&gt;
* [[Emuera/debugcom|Debug Commands]] [[https://osdn.net/projects/emuera/wiki/debugcom Source]]&lt;br /&gt;
* [[Emuera/debug|Debug Mode]] [[https://osdn.net/projects/emuera/wiki/debug Source]]&lt;br /&gt;
* [[Emuera/replace|_replace.csv]] [[https://osdn.net/projects/emuera/wiki/replace Source]]&lt;br /&gt;
* [[Emuera/exconfig|Forcing a Config item]] [[https://osdn.net/projects/emuera/wiki/exconfig Source]]&lt;br /&gt;
* [[Emuera/flow|Flowchart]] [[https://osdn.net/projects/emuera/wiki/flow Source]]&lt;br /&gt;
* [[Emuera/diff|Differences with eramaker]] [[https://osdn.net/projects/emuera/wiki/diff Source]]&lt;br /&gt;
* [[Emuera/extended|Extended syntax added in Emuera]] [[https://osdn.net/projects/emuera/wiki/extended Source]]&lt;br /&gt;
** [[Emuera/exetc|General]] [[https://osdn.net/projects/emuera/wiki/exetc Source]]&lt;br /&gt;
** [[Emuera/exop|Operations]] [[https://osdn.net/projects/emuera/wiki/exop Source]]&lt;br /&gt;
** [[Emuera/exvar|Constants / Variables]] [[https://osdn.net/projects/emuera/wiki/exvar Source]]&lt;br /&gt;
** [[Emuera/UserVars|User-Defined Variables]] [[https://osdn.net/projects/emuera/wiki/UserVars Source]]&lt;br /&gt;
** [[Emuera/excom|Instructions]] [[https://osdn.net/projects/emuera/wiki/excom Source]]&lt;br /&gt;
** [[Emuera/exfunc|Function / Preprocessor]] [[https://osdn.net/projects/emuera/wiki/exfunc Source]]&lt;br /&gt;
** [[Emuera/exmeth|Functions that can be used in expressions]] [[https://osdn.net/projects/emuera/wiki/exmeth Source]]&lt;br /&gt;
** [[Emuera/UserMeth|User-defined in-expression functions]] [[https://osdn.net/projects/emuera/wiki/ERH Source]]&lt;br /&gt;
** [[Emuera/ERH|Header Files（ERH）]] [[https://osdn.net/projects/emuera/wiki/UserVars Source]]&lt;br /&gt;
** [[Emuera/exhtml|HTML_PRINT related]] [[https://osdn.net/projects/emuera/wiki/exhtml Source]]&lt;br /&gt;
** [[Emuera/resources|Resource file]] [[https://osdn.net/projects/emuera/wiki/resources Source]]&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera&amp;diff=39878</id>
		<title>Emuera</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera&amp;diff=39878"/>
		<updated>2020-05-16T21:58:51Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* eramaker basic Information for Developers */ added sources for easy navigation of untranslated pages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a work in progress port/translation of the Emuera wiki at https://osdn.net/projects/emuera/wiki/FrontPage&lt;br /&gt;
&lt;br /&gt;
Things will be incomplete or missing.&lt;br /&gt;
== Information about eramaker ==&lt;br /&gt;
Most of the features implemented in eramaker are not explained in Emuera's documentation. Therefore if you need, check eramaker's below:&lt;br /&gt;
&lt;br /&gt;
* [[Emuera/eramacsv|Eramaker CSV File Format]]&lt;br /&gt;
* [[Emuera/eramaerc|Eramaker Game Structure]]&lt;br /&gt;
* [[Emuera/eramaerb|Eramaker ERB File Format]]&lt;br /&gt;
* [[Emuera/eramavar|Eramaker Variable List]]&lt;br /&gt;
&lt;br /&gt;
You can also refer to the following link for the original documentation: http://cbaku.com/b/2010/12/eramaker/&lt;br /&gt;
&lt;br /&gt;
== Information for end users ==&lt;br /&gt;
* [[Emuera/howto|How to Use]]&lt;br /&gt;
* [[Emuera/config|Config Settings]]&lt;br /&gt;
* [[Emuera/shortcut|Shortcut Keys]]&lt;br /&gt;
* [[Emuera/history|Update History]]&lt;br /&gt;
* [[Emuera/Thread|Emuera thread]]&lt;br /&gt;
&lt;br /&gt;
==eramaker basic Information for Developers==&lt;br /&gt;
* [[Emuera/EmuDic|Glossary]] [[https://osdn.net/projects/emuera/wiki/EmuDic Source]]&lt;br /&gt;
* [[Emuera/debugcom|Debug Commands]] [[https://osdn.net/projects/emuera/wiki/debugcom Source]]&lt;br /&gt;
* [[Emuera/debug|Debug Mode]] [[https://osdn.net/projects/emuera/wiki/debug Source]]&lt;br /&gt;
* [[Emuera/replace|_replace.csv]] [[https://osdn.net/projects/emuera/wiki/replace Source]]&lt;br /&gt;
* [[Emuera/exconfig|Forcing a Config item]] [[https://osdn.net/projects/emuera/wiki/exconfig Source]]&lt;br /&gt;
* [[Emuera/flow|Flowchart]] [[https://osdn.net/projects/emuera/wiki/flow Source]]&lt;br /&gt;
* [[Emuera/diff|Differences with eramaker]] [[https://osdn.net/projects/emuera/wiki/diff Source]]&lt;br /&gt;
* [[Emuera/extended|Extended syntax added in Emuera]] [[https://osdn.net/projects/emuera/wiki/extended Source]]&lt;br /&gt;
** [[Emuera/exetc|General]] [[https://osdn.net/projects/emuera/wiki/exetc Source]]&lt;br /&gt;
** [[Emuera/exop|Operations]] [[https://osdn.net/projects/emuera/wiki/exop Source]]&lt;br /&gt;
** [[Emuera/exvar|Constants / Variables]] [[https://osdn.net/projects/emuera/wiki/exvar Source]]&lt;br /&gt;
** [[Emuera/UserVars|User-Defined Variables]] [[https://osdn.net/projects/emuera/wiki/UserVars Source]]&lt;br /&gt;
** [[Emuera/excom|Instructions]] [[https://osdn.net/projects/emuera/wiki/excom Source]]&lt;br /&gt;
** [[Emuera/exfunc|Function / Preprocessor]] [[https://osdn.net/projects/emuera/wiki/exfunc Source]]&lt;br /&gt;
** [[Emuera/exmeth|Functions that can be used in expressions]] [[https://osdn.net/projects/emuera/wiki/exmeth Source]]&lt;br /&gt;
** [[Emuera/UserMeth|User-defined in-expression functions]] [[https://osdn.net/projects/emuera/wiki/ERH Source]]&lt;br /&gt;
** [[Emuera/ERH|Header Files（ERH）]] [[https://osdn.net/projects/emuera/wiki/UserVars Source]]&lt;br /&gt;
** [[Emuera/exhtml|HTML_PRINT related]] [[https://osdn.net/projects/emuera/wiki/exhtml Source]]&lt;br /&gt;
** [[Emuera/resources|Resource file]] [[https://osdn.net/projects/emuera/wiki/resources Source]]&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera&amp;diff=39873</id>
		<title>Emuera</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera&amp;diff=39873"/>
		<updated>2020-04-27T20:43:18Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Information about eramaker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a work in progress port/translation of the Emuera wiki at https://osdn.net/projects/emuera/wiki/FrontPage&lt;br /&gt;
&lt;br /&gt;
Things will be incomplete or missing.&lt;br /&gt;
== Information about eramaker ==&lt;br /&gt;
Most of the features implemented in eramaker are not explained in Emuera's documentation. Therefore if you need, check eramaker's below:&lt;br /&gt;
&lt;br /&gt;
* [[Emuera/eramacsv|Eramaker CSV File Format]]&lt;br /&gt;
* [[Emuera/eramaerc|Eramaker Game Structure]]&lt;br /&gt;
* [[Emuera/eramaerb|Eramaker ERB File Format]]&lt;br /&gt;
* [[Emuera/eramavar|Eramaker Variable List]]&lt;br /&gt;
&lt;br /&gt;
You can also refer to the following link for the original documentation: http://cbaku.com/b/2010/12/eramaker/&lt;br /&gt;
&lt;br /&gt;
== Information for end users ==&lt;br /&gt;
* [[Emuera/howto|How to Use]]&lt;br /&gt;
* [[Emuera/config|Config Settings]]&lt;br /&gt;
* [[Emuera/shortcut|Shortcut Keys]]&lt;br /&gt;
* [[Emuera/history|Update History]]&lt;br /&gt;
* [[Emuera/Thread|Emuera thread]]&lt;br /&gt;
&lt;br /&gt;
==eramaker basic Information for Developers==&lt;br /&gt;
* [[Emuera/EmuDic|Glossary]]&lt;br /&gt;
* [[Emuera/debugcom|Debug Commands]]&lt;br /&gt;
* [[Emuera/debug|Debug Mode]]&lt;br /&gt;
* [[Emuera/replace|_replace.csv]]&lt;br /&gt;
* [[Emuera/exconfig|Forcing a Config item]]&lt;br /&gt;
* [[Emuera/flow|Flowchart]]&lt;br /&gt;
* [[Emuera/diff|Differences with eramaker]]&lt;br /&gt;
* [[Emuera/extended|Extended syntax added in Emuera]]&lt;br /&gt;
** [[Emuera/exetc|General]]&lt;br /&gt;
** [[Emuera/exop|Operations]]&lt;br /&gt;
** [[Emuera/exvar|Constants / Variables]]&lt;br /&gt;
** [[Emuera/UserVars|User-Defined Variables]]&lt;br /&gt;
** [[Emuera/excom|Instructions]]&lt;br /&gt;
** [[Emuera/exfunc|Function / Preprocessor]]&lt;br /&gt;
** [[Emuera/exmeth|Functions that can be used in expressions]]&lt;br /&gt;
** [[Emuera/UserMeth|User-defined in-expression functions]]&lt;br /&gt;
** [[Emuera/ERH|Header Files（ERH）]]&lt;br /&gt;
** [[Emuera/exhtml|HTML_PRINT related]]&lt;br /&gt;
** [[Emuera/resources|Resource file]]&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera&amp;diff=39872</id>
		<title>Emuera</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera&amp;diff=39872"/>
		<updated>2020-04-27T20:42:19Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Information about eramaker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a work in progress port/translation of the Emuera wiki at https://osdn.net/projects/emuera/wiki/FrontPage&lt;br /&gt;
&lt;br /&gt;
Things will be incomplete or missing.&lt;br /&gt;
== Information about eramaker ==&lt;br /&gt;
Most of the features implemented in eramaker are not explained in Emuera's documentation. Therefore if you need, check the eramaker's below:&lt;br /&gt;
&lt;br /&gt;
* [[Emuera/eramacsv|Eramaker CSV File Format]]&lt;br /&gt;
* [[Emuera/eramaerc|Eramaker Game Structure]]&lt;br /&gt;
* [[Emuera/eramaerb|Eramaker ERB File Format]]&lt;br /&gt;
* [[Emuera/eramavar|Eramaker Variable List]]&lt;br /&gt;
&lt;br /&gt;
You can also refer to the following link for the original documentation: http://cbaku.com/b/2010/12/eramaker/&lt;br /&gt;
&lt;br /&gt;
== Information for end users ==&lt;br /&gt;
* [[Emuera/howto|How to Use]]&lt;br /&gt;
* [[Emuera/config|Config Settings]]&lt;br /&gt;
* [[Emuera/shortcut|Shortcut Keys]]&lt;br /&gt;
* [[Emuera/history|Update History]]&lt;br /&gt;
* [[Emuera/Thread|Emuera thread]]&lt;br /&gt;
&lt;br /&gt;
==eramaker basic Information for Developers==&lt;br /&gt;
* [[Emuera/EmuDic|Glossary]]&lt;br /&gt;
* [[Emuera/debugcom|Debug Commands]]&lt;br /&gt;
* [[Emuera/debug|Debug Mode]]&lt;br /&gt;
* [[Emuera/replace|_replace.csv]]&lt;br /&gt;
* [[Emuera/exconfig|Forcing a Config item]]&lt;br /&gt;
* [[Emuera/flow|Flowchart]]&lt;br /&gt;
* [[Emuera/diff|Differences with eramaker]]&lt;br /&gt;
* [[Emuera/extended|Extended syntax added in Emuera]]&lt;br /&gt;
** [[Emuera/exetc|General]]&lt;br /&gt;
** [[Emuera/exop|Operations]]&lt;br /&gt;
** [[Emuera/exvar|Constants / Variables]]&lt;br /&gt;
** [[Emuera/UserVars|User-Defined Variables]]&lt;br /&gt;
** [[Emuera/excom|Instructions]]&lt;br /&gt;
** [[Emuera/exfunc|Function / Preprocessor]]&lt;br /&gt;
** [[Emuera/exmeth|Functions that can be used in expressions]]&lt;br /&gt;
** [[Emuera/UserMeth|User-defined in-expression functions]]&lt;br /&gt;
** [[Emuera/ERH|Header Files（ERH）]]&lt;br /&gt;
** [[Emuera/exhtml|HTML_PRINT related]]&lt;br /&gt;
** [[Emuera/resources|Resource file]]&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/exop&amp;diff=39871</id>
		<title>Emuera/exop</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/exop&amp;diff=39871"/>
		<updated>2020-04-26T21:57:14Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Operators */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Operators==&lt;br /&gt;
* Unary Operators&lt;br /&gt;
** ~ ビットごとの否定(ビットごとのNOT) 単項演算子（優先度最大）&lt;br /&gt;
** ! 論理否定(NOT) 単項演算子（優先度最大）&lt;br /&gt;
* Binary Operators&lt;br /&gt;
** &amp;lt;&amp;lt; 左ビットシフト。比較やビット演算より優先度が高く、四則演算より低い。&lt;br /&gt;
** &amp;gt;&amp;gt; 右ビットシフト。比較やビット演算より優先度が高く、四則演算より低い。&lt;br /&gt;
** ^  ビットごとの排他論理和(ビットごとのXOR) 優先度は&amp;amp;、|と同じ&lt;br /&gt;
** ^^ ビットによらない排他論理和(ビットによらないXOR) 優先度は&amp;amp;&amp;amp;、||と同じ&lt;br /&gt;
** !&amp;amp; ビットによらない否定論理積(ビットによらないNAND) 優先度は&amp;amp;&amp;amp;、||と同じ&lt;br /&gt;
** !| ビットによらない否定論理和(ビットによらないNOR) 優先度は&amp;amp;&amp;amp;、||と同じ&lt;br /&gt;
* Ternary Operators&lt;br /&gt;
** ?～# Regular Ternary Operator - Priority is lower than the other operators above = (judgment and results are processed first)&amp;lt;/br&amp;gt;&lt;br /&gt;
::Format (Numeric) : &amp;lt;Destination Variable of the Assignment&amp;gt; = &amp;lt;Conditional&amp;gt; ? &amp;lt;Assigned value if true&amp;gt; # &amp;lt;Assigned value if false&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
::Format (String)　: &amp;lt;Destination Variable of the Assignment&amp;gt; = \@&amp;lt;Conditional&amp;gt; ? &amp;lt;Assigned value if true&amp;gt; # &amp;lt;Assigned value if false&amp;gt;\@&amp;lt;/br&amp;gt;&lt;br /&gt;
::It is processed the same way as&lt;br /&gt;
&lt;br /&gt;
 　　　IF &amp;lt;Conditional&amp;gt;&lt;br /&gt;
 　　　　　&amp;lt;Destination Variable of the Assignment&amp;gt; = &amp;lt;Assigned value if true&amp;gt;&lt;br /&gt;
 　　　ELSE&lt;br /&gt;
 　　　　　&amp;lt;Destination Variable of the Assignment&amp;gt; = &amp;lt;Assigned value if false&amp;gt;&lt;br /&gt;
 　　　ENDIF&lt;br /&gt;
&lt;br /&gt;
::Ternary numeric operators can be used in normal calculations by putting them in (), and ternary string operators can be used directly in PRINTFORM instructions.&amp;lt;/br&amp;gt;&lt;br /&gt;
::However, the # cannot be omitted in the ternary operator in the format of \@～\@.&lt;br /&gt;
* 代入演算子&lt;br /&gt;
** '= 文字列式を用いた文字列型変数への代入を行う演算子 詳しくは[[exetc#h4-.E6.96.87.E5.AD.97.E5.88.97.E5.BC.8F.E3.82.92.E7.94.A8.E3.81.84.E3.81.9F.E6.96.87.E5.AD.97.E5.88.97.E5.A4.89.E6.95.B0.E3.81.B8.E3.81.AE.E4.BB.A3.E5.85.A5|こちら]]&lt;br /&gt;
* インクリメント・デクリメント&lt;br /&gt;
** ++ インクリメント&lt;br /&gt;
** -- デクリメント&amp;lt;/br&amp;gt;&lt;br /&gt;
::代入文の代わりに使います。他の演算子と組み合わせることはできません。&lt;br /&gt;
&lt;br /&gt;
==暫定的な演算子の優先度表==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|分類&lt;br /&gt;
|優先度&lt;br /&gt;
|代入複合演算&lt;br /&gt;
|記号&lt;br /&gt;
|-&lt;br /&gt;
|否定演算子&lt;br /&gt;
|高&lt;br /&gt;
|×&lt;br /&gt;
|~, !&lt;br /&gt;
|-&lt;br /&gt;
|算術演算子&lt;br /&gt;
|↑&lt;br /&gt;
|○&lt;br /&gt;
|*, /, %&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|○&lt;br /&gt;
|+, -&lt;br /&gt;
|-&lt;br /&gt;
|ビットシフト演算子&lt;br /&gt;
|&lt;br /&gt;
|○&lt;br /&gt;
|&amp;lt;&amp;lt;, &amp;gt;&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|比較演算子&lt;br /&gt;
|&lt;br /&gt;
|×&lt;br /&gt;
|&amp;lt;, &amp;gt;, &amp;lt;=, &amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|×&lt;br /&gt;
|==, !=&lt;br /&gt;
|-&lt;br /&gt;
|論理演算子&lt;br /&gt;
|&lt;br /&gt;
|○&lt;br /&gt;
|&amp;amp;, |, !^&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|↓&lt;br /&gt;
|×&lt;br /&gt;
|&amp;amp;&amp;amp;, !&amp;amp;, |?|, !|, !^!^&lt;br /&gt;
|-&lt;br /&gt;
|三項演算子&lt;br /&gt;
|低&lt;br /&gt;
|×&lt;br /&gt;
|～?…#＿&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==演算の追加==&lt;br /&gt;
* == 文字列同士の比較。数値と文字列を比較することはできません。&lt;br /&gt;
* != 文字列同士の比較。&lt;br /&gt;
* &amp;lt;  文字列同士の比較。比較は先頭から行われ、異なる文字が見つかった時点で決定されます。&lt;br /&gt;
* &amp;gt;  文字列同士の比較。&lt;br /&gt;
* &amp;lt;= 文字列同士の比較。&lt;br /&gt;
* &amp;gt;= 文字列同士の比較。&lt;br /&gt;
* + 文字列同士の連結。数値と文字列を加算・連結することはできません。&lt;br /&gt;
** 文字列と整数の乗算。文字列と文字列を乗算することはできません。&lt;br /&gt;
&lt;br /&gt;
 	STR:0 = % &amp;quot;あ&amp;quot;* 10 %&lt;br /&gt;
 	PRINTFORML STR:0 = &amp;quot;%STR:0%&amp;quot;&lt;br /&gt;
 	WAIT&lt;br /&gt;
 ;結果&lt;br /&gt;
 STR:0 = &amp;quot;ああああああああああ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==論理演算子の短絡評価==&lt;br /&gt;
短絡評価とはたとえば(X &amp;amp;&amp;amp; Y)という式でXが0である時、Yの値によらず演算結果が0になることが明らかなのでYを評価しない、という評価法です。&amp;lt;/br&amp;gt;&lt;br /&gt;
吉里吉里を含む多くの言語では論理演算子を短絡評価します。&amp;lt;/br&amp;gt;&lt;br /&gt;
この評価法により以下のような書き方ができます。&lt;br /&gt;
&lt;br /&gt;
 	IF (ASSI &amp;gt;= 0) &amp;amp;&amp;amp; (NO:ASSI == 1)&lt;br /&gt;
 		～～～&lt;br /&gt;
 	ELSE &lt;br /&gt;
 		～～～&lt;br /&gt;
 	ENDIF &lt;br /&gt;
&lt;br /&gt;
ASSIが0以下の場合、(NO:ASSI == 1)の結果によらず全体の結果は0なのでNO:ASSIは参照されません。&lt;br /&gt;
したがってエラーも発生しません。&amp;lt;/br&amp;gt;&lt;br /&gt;
評価順は左項が先、右項が後です。&lt;br /&gt;
&lt;br /&gt;
 	IF (NO:ASSI == 1) &amp;amp;&amp;amp; (ASSI &amp;gt;= 0)&lt;br /&gt;
&lt;br /&gt;
このように書くと先に(NO:ASSI == 1)を計算しようとするのでASSI &amp;lt; 0のときエラーになります。&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/exop&amp;diff=39870</id>
		<title>Emuera/exop</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/exop&amp;diff=39870"/>
		<updated>2020-04-26T21:55:57Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Operators */ Ternary Operators&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Operators==&lt;br /&gt;
* Unary Operators&lt;br /&gt;
** ~ ビットごとの否定(ビットごとのNOT) 単項演算子（優先度最大）&lt;br /&gt;
** ! 論理否定(NOT) 単項演算子（優先度最大）&lt;br /&gt;
* Binary Operators&lt;br /&gt;
** &amp;lt;&amp;lt; 左ビットシフト。比較やビット演算より優先度が高く、四則演算より低い。&lt;br /&gt;
** &amp;gt;&amp;gt; 右ビットシフト。比較やビット演算より優先度が高く、四則演算より低い。&lt;br /&gt;
** ^  ビットごとの排他論理和(ビットごとのXOR) 優先度は&amp;amp;、|と同じ&lt;br /&gt;
** ^^ ビットによらない排他論理和(ビットによらないXOR) 優先度は&amp;amp;&amp;amp;、||と同じ&lt;br /&gt;
** !&amp;amp; ビットによらない否定論理積(ビットによらないNAND) 優先度は&amp;amp;&amp;amp;、||と同じ&lt;br /&gt;
** !| ビットによらない否定論理和(ビットによらないNOR) 優先度は&amp;amp;&amp;amp;、||と同じ&lt;br /&gt;
* Ternary Operators&lt;br /&gt;
** ?～# Regular Ternary Operator - Priority is lower than the other operators above = (judgment and results are processed first)&amp;lt;/br&amp;gt;&lt;br /&gt;
::Format (Numeric) : &amp;lt;Destination Variable of the Assignment&amp;gt; = &amp;lt;Conditional&amp;gt; ? &amp;lt;Assigned value if true&amp;gt; # &amp;lt;Assigned value if false&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
::Format (String)　: &amp;lt;Destination Variable of the Assignment&amp;gt; = \@&amp;lt;Conditional&amp;gt; ? &amp;lt;Assigned value if true&amp;gt; # &amp;lt;Assigned value if false&amp;gt;\@&amp;lt;/br&amp;gt;&lt;br /&gt;
::It is processed the same way as&lt;br /&gt;
&lt;br /&gt;
 　　　IF &amp;lt;Conditional&amp;gt;&lt;br /&gt;
 　　　　　&amp;lt;Destination Variable of the Assignment&amp;gt; = &amp;lt;Assigned value if true&amp;gt;&lt;br /&gt;
 　　　ELSE&lt;br /&gt;
 　　　　　&amp;lt;Destination Variable of the Assignment&amp;gt; = &amp;lt;Assigned value if false&amp;gt;&lt;br /&gt;
 　　　ENDIF&lt;br /&gt;
&lt;br /&gt;
::Ternary numeric operators can be used in normal calculations by putting them in (), and ternary string operators can be used directly in PRINTFORM instructions.&amp;lt;/br&amp;gt;&lt;br /&gt;
::However, the # cannot be omitted in the ternary operator in the format of \@～\@.&lt;br /&gt;
* 代入演算子&lt;br /&gt;
** '= 文字列式を用いた文字列型変数への代入を行う演算子 詳しくは[[exetc#h4-.E6.96.87.E5.AD.97.E5.88.97.E5.BC.8F.E3.82.92.E7.94.A8.E3.81.84.E3.81.9F.E6.96.87.E5.AD.97.E5.88.97.E5.A4.89.E6.95.B0.E3.81.B8.E3.81.AE.E4.BB.A3.E5.85.A5|こちら]]&lt;br /&gt;
* インクリメント・デクリメント&lt;br /&gt;
** ++ インクリメント&lt;br /&gt;
** -- デクリメント&amp;lt;/br&amp;gt;&lt;br /&gt;
     代入文の代わりに使います。他の演算子と組み合わせることはできません。&lt;br /&gt;
&lt;br /&gt;
==暫定的な演算子の優先度表==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|分類&lt;br /&gt;
|優先度&lt;br /&gt;
|代入複合演算&lt;br /&gt;
|記号&lt;br /&gt;
|-&lt;br /&gt;
|否定演算子&lt;br /&gt;
|高&lt;br /&gt;
|×&lt;br /&gt;
|~, !&lt;br /&gt;
|-&lt;br /&gt;
|算術演算子&lt;br /&gt;
|↑&lt;br /&gt;
|○&lt;br /&gt;
|*, /, %&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|○&lt;br /&gt;
|+, -&lt;br /&gt;
|-&lt;br /&gt;
|ビットシフト演算子&lt;br /&gt;
|&lt;br /&gt;
|○&lt;br /&gt;
|&amp;lt;&amp;lt;, &amp;gt;&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|比較演算子&lt;br /&gt;
|&lt;br /&gt;
|×&lt;br /&gt;
|&amp;lt;, &amp;gt;, &amp;lt;=, &amp;gt;=&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|×&lt;br /&gt;
|==, !=&lt;br /&gt;
|-&lt;br /&gt;
|論理演算子&lt;br /&gt;
|&lt;br /&gt;
|○&lt;br /&gt;
|&amp;amp;, |, !^&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|↓&lt;br /&gt;
|×&lt;br /&gt;
|&amp;amp;&amp;amp;, !&amp;amp;, |?|, !|, !^!^&lt;br /&gt;
|-&lt;br /&gt;
|三項演算子&lt;br /&gt;
|低&lt;br /&gt;
|×&lt;br /&gt;
|～?…#＿&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==演算の追加==&lt;br /&gt;
* == 文字列同士の比較。数値と文字列を比較することはできません。&lt;br /&gt;
* != 文字列同士の比較。&lt;br /&gt;
* &amp;lt;  文字列同士の比較。比較は先頭から行われ、異なる文字が見つかった時点で決定されます。&lt;br /&gt;
* &amp;gt;  文字列同士の比較。&lt;br /&gt;
* &amp;lt;= 文字列同士の比較。&lt;br /&gt;
* &amp;gt;= 文字列同士の比較。&lt;br /&gt;
* + 文字列同士の連結。数値と文字列を加算・連結することはできません。&lt;br /&gt;
** 文字列と整数の乗算。文字列と文字列を乗算することはできません。&lt;br /&gt;
&lt;br /&gt;
 	STR:0 = % &amp;quot;あ&amp;quot;* 10 %&lt;br /&gt;
 	PRINTFORML STR:0 = &amp;quot;%STR:0%&amp;quot;&lt;br /&gt;
 	WAIT&lt;br /&gt;
 ;結果&lt;br /&gt;
 STR:0 = &amp;quot;ああああああああああ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==論理演算子の短絡評価==&lt;br /&gt;
短絡評価とはたとえば(X &amp;amp;&amp;amp; Y)という式でXが0である時、Yの値によらず演算結果が0になることが明らかなのでYを評価しない、という評価法です。&amp;lt;/br&amp;gt;&lt;br /&gt;
吉里吉里を含む多くの言語では論理演算子を短絡評価します。&amp;lt;/br&amp;gt;&lt;br /&gt;
この評価法により以下のような書き方ができます。&lt;br /&gt;
&lt;br /&gt;
 	IF (ASSI &amp;gt;= 0) &amp;amp;&amp;amp; (NO:ASSI == 1)&lt;br /&gt;
 		～～～&lt;br /&gt;
 	ELSE &lt;br /&gt;
 		～～～&lt;br /&gt;
 	ENDIF &lt;br /&gt;
&lt;br /&gt;
ASSIが0以下の場合、(NO:ASSI == 1)の結果によらず全体の結果は0なのでNO:ASSIは参照されません。&lt;br /&gt;
したがってエラーも発生しません。&amp;lt;/br&amp;gt;&lt;br /&gt;
評価順は左項が先、右項が後です。&lt;br /&gt;
&lt;br /&gt;
 	IF (NO:ASSI == 1) &amp;amp;&amp;amp; (ASSI &amp;gt;= 0)&lt;br /&gt;
&lt;br /&gt;
このように書くと先に(NO:ASSI == 1)を計算しようとするのでASSI &amp;lt; 0のときエラーになります。&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/diff&amp;diff=39868</id>
		<title>Emuera/diff</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/diff&amp;diff=39868"/>
		<updated>2020-04-14T01:14:39Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Characters that can be used in function names */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Differences from eramaker =&lt;br /&gt;
== Fixed bugs and unnatural behavior ==&lt;br /&gt;
=== The last element of the array is unavailable ===&lt;br /&gt;
In eramaker, if the last element of the array is not zero, the data will be corrupted on load&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not have this problem.&amp;lt;BR&amp;gt;&lt;br /&gt;
This problem is caused by the fact that the save and load specifications are not unified in eramaker, but Emuera is.&amp;lt;BR&amp;gt;&lt;br /&gt;
Therefore, saving with eramaker and loading with Emuera does not cause this problem, but saving with Emuera and loading with eramaker reproduces this problem.&lt;br /&gt;
&lt;br /&gt;
=== Anomaly of the unary operator &amp;quot;-&amp;quot; ===&lt;br /&gt;
There are problems with eramaker, such as -100 &amp;lt; 0 being false.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not have this problem.&lt;br /&gt;
&lt;br /&gt;
=== The last line of the file is unreadable ===&lt;br /&gt;
eramaker ignores lines without a newline.&amp;lt;BR&amp;gt;&lt;br /&gt;
This means that the last line of the file, whether it is CSV or ERB, will be ignored.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not reproduce this behavior.&lt;br /&gt;
&lt;br /&gt;
=== If there are extra elements in the array, they're ignored ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
	A:1:2 = 34&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
In eramaker, the above expression assigns 34 to A:1.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera makes this an error.&lt;br /&gt;
&lt;br /&gt;
=== Can't use a specific format for array calls ===&lt;br /&gt;
In eramaker, you can use variables such as A:0 and A:(COUNT+1).&amp;lt;BR&amp;gt;&lt;br /&gt;
However, writing double array variables such as ABL:0:2 or TALENT:(COUNT+1):2 will result in an error.&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, if the argument is omitted when calling a string variable, an error may occur.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not have this problem.&amp;lt;BR&amp;gt;&lt;br /&gt;
No error occurs whether the argument of the double array is a constant or a formula, and the argument of a string variable can be omitted.&lt;br /&gt;
&lt;br /&gt;
=== Treating abnormal numbers in the CSV as integers ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
	0,Rotor,200&lt;br /&gt;
	0xFF,Router,200&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
If the above is found in Item.csv, eramaker interprets 0xFF as 0 and ITEM:0 is defined as a Router.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera doesn't reproduce this, but invalidates this definition with an error, and ITEM:0 is defined as a Rotor.&lt;br /&gt;
&lt;br /&gt;
=== Awkward notation works ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
	A:0:1:99999 +-RESULTS:0=@=+123|*?=Y&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The above expression works in eramaker.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera makes this an error.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other points that are different from eramaker ==&lt;br /&gt;
&lt;br /&gt;
=== If the line immediately after the SIF is a blank line, comment line, etc. ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
SIF conditional&lt;br /&gt;
	;comment&lt;br /&gt;
	PRINT hogehoge&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
eramaker always executes a PRINT line.&amp;lt;BR&amp;gt;&lt;br /&gt;
This is because eramaker recognizes that the next line in the SIF is &amp;quot;;comment&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Emuera only executes PRINT lines if the conditional statement is true, just like Kiri Kiri (吉里吉里) and others.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera treats blank lines and comment lines as non-existent, and recognizes the next line in the SIF as &amp;quot;PRINT hogehoge&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, eramaker can put an IF or REPEAT statement on the next line after the SIF, but this often behaves differently from the author's intentions, so Emuera limits the lines that can be brought after the SIF.&lt;br /&gt;
&lt;br /&gt;
=== Behavior when arguments such as IF and ELSEIF are omitted. ===&lt;br /&gt;
In eramaker, if you omit IF, ELSEIF or the argument of the assignment statement, the behavior becomes indeterminate.&amp;lt;BR&amp;gt;&lt;br /&gt;
However, if the RETURN argument is omitted, it acts like RETURN 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera always interprets the omitted argument as 0, so anything inside a blank IF is always not executed, but is subject to a warning.&lt;br /&gt;
&lt;br /&gt;
=== Characters that can be used in function names ===&lt;br /&gt;
In eramaker, all characters, including symbols and double-byte characters, can be used.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera also allows full-width characters, but not symbols other than _ (underscores).&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, Emuera does not recommend to start the function name with a half-size number.&amp;lt;BR&amp;gt;&lt;br /&gt;
The following script will work with eramaker, but will give an error with Emuera.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
	CALL \.,)(][+-%* 　@&amp;amp;$&lt;br /&gt;
&lt;br /&gt;
@\.,)(][+-%* 　@&amp;amp;$&lt;br /&gt;
	PRINTL Function @\.,)(][+-%* 　@&amp;amp;$ was called.&lt;br /&gt;
	RETURN 0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
In Emuera, if the function name contains ( or ), it is misunderstood as a function argument.&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, the LOCAL@ function name does not work properly when the function name includes @ or the symbol of the operator.&amp;lt;BR&amp;gt;&lt;br /&gt;
Including {} or % will interfere with the CALLFORM call.&amp;lt;BR&amp;gt;&lt;br /&gt;
For this reason, Emuera, like many programming languages such as C# and Kirikiri (吉里吉里), prohibits the use of symbols in function names.&amp;lt;BR&amp;gt;&lt;br /&gt;
As of ver 1.721, this is a warning level 1 and not a warning that immediately terminates the error, but it may behave unintentionally at some point.&lt;br /&gt;
&lt;br /&gt;
Also, if the function name starts with a half-width number, it cannot be called as a [[exmeth|function that can be used in an expression]].&lt;br /&gt;
This is to determine whether it is a number or a variable or function by looking at a single letter in the expression.&lt;br /&gt;
&lt;br /&gt;
=== RAND Specifications ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
	A = RAND:X&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
In eramaker, it returns 0 when X is 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
Otherwise, it returns (a random number from 0 to 32767) % (the absolute value of X).&amp;lt;BR&amp;gt;&lt;br /&gt;
This method works even when X is negative, never returns a value greater than 32767, and the bias of the value is negligible when X is greater than 1000.&lt;br /&gt;
&lt;br /&gt;
Emuera does not reproduce this.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera returns (a random number from 0 to 18446744073709551615) % (X).&amp;lt;BR&amp;gt;&lt;br /&gt;
When X is a value of 0 or negative, Emuera gives an error.&amp;lt;BR&amp;gt;&lt;br /&gt;
(This is the result of focusing on the consistency of the return values, based on the official description that &amp;quot;the return value is an integer from 0 to A-1 in the case of RAND:A&amp;quot;)&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, X is valid from 1 to 9223372036854775807 (positive 64-bit signed integer range).&amp;lt;BR&amp;gt;&lt;br /&gt;
If X is less than about 100 trillion, there is not enough bias to be felt.&lt;br /&gt;
&lt;br /&gt;
=== WAIT Specifications ===&lt;br /&gt;
In eramaker, the line break is printed when the Enter key is pressed, rather than when the WAIT instruction is executed.&amp;lt;BR&amp;gt;&lt;br /&gt;
In Emuera, if the cursor is in the middle of a line when executing a WAIT instruction, a new line will be started, and if the cursor &amp;quot;pressed the Enter key&amp;quot; or &amp;quot;left clicked&amp;quot;, it will not be accompanied by a new line.&lt;br /&gt;
&lt;br /&gt;
=== JUMP Specifications ===&lt;br /&gt;
In eramaker, JUMP can't be done from a function called by CALL.&amp;lt;BR&amp;gt;&lt;br /&gt;
In Emuera, even a called function can be JUMPed.&amp;lt;BR&amp;gt;&lt;br /&gt;
RETURN in JUMP destination is the same as RETURN in JUMP source function.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
	CALL FOOBAR&lt;br /&gt;
&lt;br /&gt;
	@FOO&lt;br /&gt;
	PRINTL Functino @FOO&lt;br /&gt;
	JUMP BAR&lt;br /&gt;
	@BAR&lt;br /&gt;
	PRINTL Functino @BAR&lt;br /&gt;
	RETURN 0&lt;br /&gt;
	@FOOBAR&lt;br /&gt;
	PRINTL Functino @FOOBAR&lt;br /&gt;
	CALL FOO&lt;br /&gt;
	PRINTW Back to the @FOOBAR function&lt;br /&gt;
;Result of the execution&lt;br /&gt;
;eramaker(error)&lt;br /&gt;
CALLで呼ばれた先からJUMPで関数を呼び出そうとしました&lt;br /&gt;
(Tried to call a function with JUMP from a destination called with CALL)&lt;br /&gt;
&lt;br /&gt;
;Emuera&lt;br /&gt;
Function @FOOBAR&lt;br /&gt;
Function @FOO&lt;br /&gt;
Function @BAR&lt;br /&gt;
Back to the @FOOBAR function&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CALLNAME Specifications ===&lt;br /&gt;
In eramaker, when referring to CALLNAME, if CALLNAME is an empty string, it returns the value of NAME instead.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera returns an empty string if CALLNAME is an empty string.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
To bridge this difference, Emuera provides an option to use NAME if CALLNAME is an empty string.&amp;lt;BR&amp;gt;&lt;br /&gt;
When this option is YES, if CALLNAME is not set in chara*.csv or is set to an empty string, it is treated as being set to the same string as NAME.&amp;lt;BR&amp;gt;&lt;br /&gt;
However, even this option is not completely reproducible.&amp;lt;BR&amp;gt;&lt;br /&gt;
For example, if you add a character in eramaker and read the save data in Emuera, the behavior may be different.&lt;br /&gt;
&lt;br /&gt;
=== Unfolding PRINTFORM and other FORMs ===&lt;br /&gt;
eramaker repeats over and over until there is nothing left to unroll.&amp;lt;BR&amp;gt;&lt;br /&gt;
If there is a self-reference or circular reference, it will freeze.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera only unrolls once.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An eramaker unfolding would probably look like this&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 str = String to unroll&lt;br /&gt;
while(str with {～～} in it)&lt;br /&gt;
	Unroll the leftmost {～～}&lt;br /&gt;
while(str with %～～% in it)&lt;br /&gt;
	Unroll the leftmost %～～%&lt;br /&gt;
while(str with *** in it)&lt;br /&gt;
	Unroll the leftmost ***&lt;br /&gt;
while(str with $$$ in it)&lt;br /&gt;
	Unroll the leftmost $$$&lt;br /&gt;
while(str with +++ in it)&lt;br /&gt;
	Unroll the leftmost +++&lt;br /&gt;
while(str with /// in it)&lt;br /&gt;
	Unroll the leftmost ///&lt;br /&gt;
while(str with === in it)&lt;br /&gt;
	Unroll the leftmost ===&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Because of this behavior, eramaker also allows you to do the following&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
STR:1 = S1%STR:2%3%4%&lt;br /&gt;
STR:2 = S2%STR:&lt;br /&gt;
STR:3 = S3%STR:&lt;br /&gt;
STR:4 = S4&lt;br /&gt;
PRINTFORMSL STR:1&lt;br /&gt;
PRINTFORML %STR:1%&lt;br /&gt;
DRAWLINE&lt;br /&gt;
;・Result&lt;br /&gt;
;S1S2S3S4&lt;br /&gt;
;S1S2S3S4&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Emuera does not replicate this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Attributes of the EVENT Functions ===&lt;br /&gt;
In eramaker, the event function call is done as follows.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
foreach(Function with #PRI)&lt;br /&gt;
{&lt;br /&gt;
	Function Call&lt;br /&gt;
	if(#SINGLE and the return value is 1)&lt;br /&gt;
		break;&lt;br /&gt;
}&lt;br /&gt;
foreach(Function with no #PRI and no #LATER)&lt;br /&gt;
{&lt;br /&gt;
	Function Call&lt;br /&gt;
	if(#SINGLE and the return value is 1)&lt;br /&gt;
		break;&lt;br /&gt;
}&lt;br /&gt;
foreach(Function with #LATER)&lt;br /&gt;
{&lt;br /&gt;
	Function Call&lt;br /&gt;
	if(#SINGLE and the return value is 1)&lt;br /&gt;
		break;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Event functions with both #PRI and #LATER will be called twice.&amp;lt;BR&amp;gt;&lt;br /&gt;
#SINGLE interrupts subsequent function calls only when the return value is 1.&amp;lt;BR&amp;gt;&lt;br /&gt;
In addition, the function call is interrupted by #SINGLE for each pair with #PRI or #LATER.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera since ver1.800 (1.756alpha018 if you include the development version) reproduces this behavior exactly.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Prior to that, Emuera used the following event function calls.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Sort the list of functions according to #PRI and #LATER&lt;br /&gt;
foreach(All functions)&lt;br /&gt;
{&lt;br /&gt;
	Function Call&lt;br /&gt;
	if(#SINGLE and the return value is 1)&lt;br /&gt;
		break;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
If both #PRI and #LATER are added, it is treated as if neither of them were added.&amp;lt;BR&amp;gt;&lt;br /&gt;
If the function call is interrupted by #SINGLE, the event function call is terminated regardless of the presence or absence of #PRI or #LATER.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Note that up to Emuera 1.751b, #SINGLE interrupts subsequent function calls when the return value is not 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
This was fixed in 1.752, and as with eramaker, the current version only aborts further function calls when the return value is 1.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to read the gamebase.csv &amp;quot;コード&amp;quot; (code) ===&lt;br /&gt;
If the code in gamebase.csv contains a number of values beyond the range of -2147483648 to 2147483647, which is the number that eramaker can handle, eramaker rewrites the values in the csv to hexadecimal and uses the last 8 digits as the game code.&amp;lt;BR&amp;gt;&lt;br /&gt;
For example, in the case of &amp;quot;コード,08231000181818110&amp;quot;, the game code will be 301712126, which is in the range that eramaker can handle.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not reproduce this behavior.&amp;lt;BR&amp;gt;&lt;br /&gt;
In Emuera version 1.803 or earlier, the game code is set to 0 when the code is &amp;quot;08231000181818110&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera can handle numbers in the range of -9223372036854775808 to 9223372036854775807, but&amp;lt;BR&amp;gt;&lt;br /&gt;
just like eramaker, GAMEBASE_GAMECODE only handles the number in the range from -2147483648 to 2147483647, and if the range is exceeded, it becomes 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
In addition, in ver. 1.804 or later Emuera, the game code is 8231000181818110 as written in the case of &amp;quot;コード,08231000181818110&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
(GAMEBASE_GAMECODE has been changed to a variable that handles the same range as the other variables.)&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, the game code is set to 0 if the game code is beyond the range that Emuera can handle, such as &amp;quot;コード,98231000181818110110&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
In ver. 1.805 or later, Emuera can read saved data with a game code of 0 regardless of the game's game code.&lt;br /&gt;
&lt;br /&gt;
=== How to read abl.csv, etc ===&lt;br /&gt;
In eramaker, you can specify negative or very large values for the index, such as &amp;quot;99999,Technique&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
However, since the number specified here is used by PRINT_ABL, etc., ABL:99999 is referenced in PRINT_ABL (internally by eramaker) and an error occurs.&amp;lt;BR&amp;gt;&lt;br /&gt;
Thus, the practical value is the same as the number of arrays in ABL and TALENT.&amp;lt;BR&amp;gt;&lt;br /&gt;
An error occurs in item.csv when referring to ITEM and ITEMSALES in SHOP as well.&amp;lt;BR&amp;gt;&lt;br /&gt;
In Emuera, you cannot specify values outside the range of an array such as ABL.&amp;lt;BR&amp;gt;&lt;br /&gt;
Such lines will be ignored.&amp;lt;BR&amp;gt;&lt;br /&gt;
Instead, you can change the range of the array by using !VariableSize.csv.&lt;br /&gt;
&lt;br /&gt;
=== How to read train.csv ===&lt;br /&gt;
It's basically the same as any other csv file, but the circumstances are a little different from the others.&amp;lt;BR&amp;gt;&lt;br /&gt;
In eramaker, for example, even if you define &amp;quot;XXX,99999&amp;quot;, if @COM99999 is defined, it will be executed correctly.&amp;lt;BR&amp;gt;&lt;br /&gt;
On the other hand, if you define a negative value, such as &amp;quot;YYY,-2&amp;quot;, the command will be displayed, but nothing will happen when you select it.&lt;br /&gt;
&lt;br /&gt;
Emuera does not reproduce this behavior.&amp;lt;BR&amp;gt;&lt;br /&gt;
The range that can be defined is up to the size of the TRAINNAME specified in !VariableSize.csv, otherwise it is ignored.&amp;lt;BR&amp;gt;&lt;br /&gt;
If the size of TRAINNAME is not changed, the valid range is from 0 to 999.&lt;br /&gt;
&lt;br /&gt;
=== How to read chara*.csv ===&lt;br /&gt;
With eramaker, even if the &amp;quot;number&amp;quot; is less than 0 or more than 1000, ADDCHARA can be done normally.&amp;lt;BR&amp;gt;&lt;br /&gt;
This works the same way with Emuera.&lt;br /&gt;
&lt;br /&gt;
In eramaker, if a third value is required, such as &amp;quot;基礎,0&amp;quot; (BASE), it is treated as 0 if omitted.&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, if the third value is not needed, such as &amp;quot;素質,0,100&amp;quot; (TALENT), it will be ignored and set to 1.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not reproduce this behavior.&amp;lt;BR&amp;gt;&lt;br /&gt;
MAXBASE:0 becomes 1 if it is set with &amp;quot;基礎,0&amp;quot; and TALENT:0 becomes 100 if it is set to &amp;quot;素質,0,100&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== File Newline Code ===&lt;br /&gt;
In eramaker, when the line feed code is ![CR]![LF] and ![LF], it is a line feed, but when it is only ![CR], it is not a line feed and various malfunctions occur.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not reproduce this behavior and considers ![CR] a line break even if it is alone.&lt;br /&gt;
&lt;br /&gt;
== Unfixed bugs and Unnatural behavior ==&lt;br /&gt;
=== File reading order depends on the file system ===&lt;br /&gt;
In eramaker basic, there is a case that the behavior depends on the order of reading files, for example, when CALLing a multiplexed function.&amp;lt;BR&amp;gt;&lt;br /&gt;
However, eramaker may not work as expected because the order in which files are read depends on the file system.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera also reproduces this problem.&amp;lt;BR&amp;gt;&lt;br /&gt;
Many of the currently released scripts assume that the file system is NTFS and will not work properly if the file system is FAT.&lt;br /&gt;
&lt;br /&gt;
=== Count is added at the end of REPEAT-REND ===&lt;br /&gt;
In eramaker, when exiting REPEAT-REND, the count is increased by 1.&amp;lt;BR&amp;gt;&lt;br /&gt;
You will also get +1 if you exit with a BREAK.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emuera replicates this behavior.&amp;lt;BR&amp;gt;&lt;br /&gt;
In the FOR-NEXT syntax, the loop variable is incremented by 1 as well.&amp;lt;BR&amp;gt;&lt;br /&gt;
Note that the behavior is different from the for syntax and break statements in common programming languages.&lt;br /&gt;
&lt;br /&gt;
=== NEXTCOM behavior ===&lt;br /&gt;
In eramaker, the initial value of NEXTCOM is -1, but after NEXTCOM is executed, the value assigned is 0 instead of -1.&amp;lt;BR&amp;gt;&lt;br /&gt;
Therefore, unless the ERB side is assigned again, COM0 will continue to be repeated.&amp;lt;BR&amp;gt;&lt;br /&gt;
The official description of eramaker does not mention the existence of NEXTCOM.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emuera replicates this behavior.&amp;lt;BR&amp;gt;&lt;br /&gt;
The functionality of NEXTCOM is reproduced for eramaker compatibility only and is not recommended for use.&amp;lt;BR&amp;gt;&lt;br /&gt;
If you don't plan to run your code in eramaker, consider using the DOTRAIN or CALLTRAIN instructions.&lt;br /&gt;
&lt;br /&gt;
== Changed Features ==&lt;br /&gt;
=== SP Characters ===&lt;br /&gt;
In eramaker, a character whose CFLAG:0 is set to non-zero in csv becomes an SP character.&amp;lt;BR&amp;gt;&lt;br /&gt;
The specification was a bit confusing because it cannot be registered by ADDCHARA, but must be registered by ADDDSPCHARA.&amp;lt;BR&amp;gt;&lt;br /&gt;
It was also the cause of a bug, such as unintentionally setting CFLAG:0 to non-zero and not being able to register with ADDCHARA.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emuera has decided not to support this feature by default, starting with ver 1.816.&amp;lt;BR&amp;gt;&lt;br /&gt;
CFLAG:0 is no longer singled out and all characters can now be registered from ADDCHARA.&amp;lt;BR&amp;gt;&lt;br /&gt;
It is possible to reproduce eramaker's behavior with the compatibility option &amp;quot;SPキャラを使用する&amp;quot; (Use SP character), but it is not recommended to use it for any purpose other than to run old scripts.&lt;br /&gt;
&lt;br /&gt;
== Added Features ==&lt;br /&gt;
See [[Emuera/extended|Extended grammar added in Emuera]&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/diff&amp;diff=39867</id>
		<title>Emuera/diff</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/diff&amp;diff=39867"/>
		<updated>2020-04-14T01:13:30Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* If the line immediately after the SIF is a blank line, comment line, etc. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Differences from eramaker =&lt;br /&gt;
== Fixed bugs and unnatural behavior ==&lt;br /&gt;
=== The last element of the array is unavailable ===&lt;br /&gt;
In eramaker, if the last element of the array is not zero, the data will be corrupted on load&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not have this problem.&amp;lt;BR&amp;gt;&lt;br /&gt;
This problem is caused by the fact that the save and load specifications are not unified in eramaker, but Emuera is.&amp;lt;BR&amp;gt;&lt;br /&gt;
Therefore, saving with eramaker and loading with Emuera does not cause this problem, but saving with Emuera and loading with eramaker reproduces this problem.&lt;br /&gt;
&lt;br /&gt;
=== Anomaly of the unary operator &amp;quot;-&amp;quot; ===&lt;br /&gt;
There are problems with eramaker, such as -100 &amp;lt; 0 being false.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not have this problem.&lt;br /&gt;
&lt;br /&gt;
=== The last line of the file is unreadable ===&lt;br /&gt;
eramaker ignores lines without a newline.&amp;lt;BR&amp;gt;&lt;br /&gt;
This means that the last line of the file, whether it is CSV or ERB, will be ignored.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not reproduce this behavior.&lt;br /&gt;
&lt;br /&gt;
=== If there are extra elements in the array, they're ignored ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
	A:1:2 = 34&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
In eramaker, the above expression assigns 34 to A:1.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera makes this an error.&lt;br /&gt;
&lt;br /&gt;
=== Can't use a specific format for array calls ===&lt;br /&gt;
In eramaker, you can use variables such as A:0 and A:(COUNT+1).&amp;lt;BR&amp;gt;&lt;br /&gt;
However, writing double array variables such as ABL:0:2 or TALENT:(COUNT+1):2 will result in an error.&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, if the argument is omitted when calling a string variable, an error may occur.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not have this problem.&amp;lt;BR&amp;gt;&lt;br /&gt;
No error occurs whether the argument of the double array is a constant or a formula, and the argument of a string variable can be omitted.&lt;br /&gt;
&lt;br /&gt;
=== Treating abnormal numbers in the CSV as integers ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
	0,Rotor,200&lt;br /&gt;
	0xFF,Router,200&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
If the above is found in Item.csv, eramaker interprets 0xFF as 0 and ITEM:0 is defined as a Router.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera doesn't reproduce this, but invalidates this definition with an error, and ITEM:0 is defined as a Rotor.&lt;br /&gt;
&lt;br /&gt;
=== Awkward notation works ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
	A:0:1:99999 +-RESULTS:0=@=+123|*?=Y&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The above expression works in eramaker.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera makes this an error.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other points that are different from eramaker ==&lt;br /&gt;
&lt;br /&gt;
=== If the line immediately after the SIF is a blank line, comment line, etc. ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
SIF conditional&lt;br /&gt;
	;comment&lt;br /&gt;
	PRINT hogehoge&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
eramaker always executes a PRINT line.&amp;lt;BR&amp;gt;&lt;br /&gt;
This is because eramaker recognizes that the next line in the SIF is &amp;quot;;comment&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Emuera only executes PRINT lines if the conditional statement is true, just like Kiri Kiri (吉里吉里) and others.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera treats blank lines and comment lines as non-existent, and recognizes the next line in the SIF as &amp;quot;PRINT hogehoge&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, eramaker can put an IF or REPEAT statement on the next line after the SIF, but this often behaves differently from the author's intentions, so Emuera limits the lines that can be brought after the SIF.&lt;br /&gt;
&lt;br /&gt;
=== Behavior when arguments such as IF and ELSEIF are omitted. ===&lt;br /&gt;
In eramaker, if you omit IF, ELSEIF or the argument of the assignment statement, the behavior becomes indeterminate.&amp;lt;BR&amp;gt;&lt;br /&gt;
However, if the RETURN argument is omitted, it acts like RETURN 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera always interprets the omitted argument as 0, so anything inside a blank IF is always not executed, but is subject to a warning.&lt;br /&gt;
&lt;br /&gt;
=== Characters that can be used in function names ===&lt;br /&gt;
In eramaker, all characters, including symbols and double-byte characters, can be used.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera also allows full-width characters, but not symbols other than _ (underscores).&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, Emuera does not recommend to start the function name with a half-size number.&amp;lt;BR&amp;gt;&lt;br /&gt;
The following script will work with eramaker, but will give an error with Emuera.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
	CALL \.,)(][+-%* 　@&amp;amp;$&lt;br /&gt;
&lt;br /&gt;
@\.,)(][+-%* 　@&amp;amp;$&lt;br /&gt;
	PRINTL Function @\.,)(][+-%* 　@&amp;amp;$ was called.&lt;br /&gt;
	RETURN 0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
In Emuera, if the function name contains ( or ), it is misunderstood as a function argument.&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, the call LOCAL@ function name does not function properly when the function name includes @ or the symbol of the operator.&amp;lt;BR&amp;gt;&lt;br /&gt;
Including {} or % will interfere with the CALLFORM call.&amp;lt;BR&amp;gt;&lt;br /&gt;
For this reason, Emuera, like many programming languages such as C# and Kirikiri (吉里吉里), prohibits the use of symbols in function names.&amp;lt;BR&amp;gt;&lt;br /&gt;
As of ver 1.721, this is a warning level 1 and not a warning that immediately terminates the error, but it may behave unintentionally at some point.&lt;br /&gt;
&lt;br /&gt;
Also, if the function name starts with a half-width number, it cannot be called as a [[exmeth|function that can be used in an expression]].&lt;br /&gt;
This is to determine whether it is a number or a variable or function by looking at a single letter in the expression.&lt;br /&gt;
&lt;br /&gt;
=== RAND Specifications ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
	A = RAND:X&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
In eramaker, it returns 0 when X is 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
Otherwise, it returns (a random number from 0 to 32767) % (the absolute value of X).&amp;lt;BR&amp;gt;&lt;br /&gt;
This method works even when X is negative, never returns a value greater than 32767, and the bias of the value is negligible when X is greater than 1000.&lt;br /&gt;
&lt;br /&gt;
Emuera does not reproduce this.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera returns (a random number from 0 to 18446744073709551615) % (X).&amp;lt;BR&amp;gt;&lt;br /&gt;
When X is a value of 0 or negative, Emuera gives an error.&amp;lt;BR&amp;gt;&lt;br /&gt;
(This is the result of focusing on the consistency of the return values, based on the official description that &amp;quot;the return value is an integer from 0 to A-1 in the case of RAND:A&amp;quot;)&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, X is valid from 1 to 9223372036854775807 (positive 64-bit signed integer range).&amp;lt;BR&amp;gt;&lt;br /&gt;
If X is less than about 100 trillion, there is not enough bias to be felt.&lt;br /&gt;
&lt;br /&gt;
=== WAIT Specifications ===&lt;br /&gt;
In eramaker, the line break is printed when the Enter key is pressed, rather than when the WAIT instruction is executed.&amp;lt;BR&amp;gt;&lt;br /&gt;
In Emuera, if the cursor is in the middle of a line when executing a WAIT instruction, a new line will be started, and if the cursor &amp;quot;pressed the Enter key&amp;quot; or &amp;quot;left clicked&amp;quot;, it will not be accompanied by a new line.&lt;br /&gt;
&lt;br /&gt;
=== JUMP Specifications ===&lt;br /&gt;
In eramaker, JUMP can't be done from a function called by CALL.&amp;lt;BR&amp;gt;&lt;br /&gt;
In Emuera, even a called function can be JUMPed.&amp;lt;BR&amp;gt;&lt;br /&gt;
RETURN in JUMP destination is the same as RETURN in JUMP source function.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
	CALL FOOBAR&lt;br /&gt;
&lt;br /&gt;
	@FOO&lt;br /&gt;
	PRINTL Functino @FOO&lt;br /&gt;
	JUMP BAR&lt;br /&gt;
	@BAR&lt;br /&gt;
	PRINTL Functino @BAR&lt;br /&gt;
	RETURN 0&lt;br /&gt;
	@FOOBAR&lt;br /&gt;
	PRINTL Functino @FOOBAR&lt;br /&gt;
	CALL FOO&lt;br /&gt;
	PRINTW Back to the @FOOBAR function&lt;br /&gt;
;Result of the execution&lt;br /&gt;
;eramaker(error)&lt;br /&gt;
CALLで呼ばれた先からJUMPで関数を呼び出そうとしました&lt;br /&gt;
(Tried to call a function with JUMP from a destination called with CALL)&lt;br /&gt;
&lt;br /&gt;
;Emuera&lt;br /&gt;
Function @FOOBAR&lt;br /&gt;
Function @FOO&lt;br /&gt;
Function @BAR&lt;br /&gt;
Back to the @FOOBAR function&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CALLNAME Specifications ===&lt;br /&gt;
In eramaker, when referring to CALLNAME, if CALLNAME is an empty string, it returns the value of NAME instead.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera returns an empty string if CALLNAME is an empty string.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
To bridge this difference, Emuera provides an option to use NAME if CALLNAME is an empty string.&amp;lt;BR&amp;gt;&lt;br /&gt;
When this option is YES, if CALLNAME is not set in chara*.csv or is set to an empty string, it is treated as being set to the same string as NAME.&amp;lt;BR&amp;gt;&lt;br /&gt;
However, even this option is not completely reproducible.&amp;lt;BR&amp;gt;&lt;br /&gt;
For example, if you add a character in eramaker and read the save data in Emuera, the behavior may be different.&lt;br /&gt;
&lt;br /&gt;
=== Unfolding PRINTFORM and other FORMs ===&lt;br /&gt;
eramaker repeats over and over until there is nothing left to unroll.&amp;lt;BR&amp;gt;&lt;br /&gt;
If there is a self-reference or circular reference, it will freeze.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera only unrolls once.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An eramaker unfolding would probably look like this&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 str = String to unroll&lt;br /&gt;
while(str with {～～} in it)&lt;br /&gt;
	Unroll the leftmost {～～}&lt;br /&gt;
while(str with %～～% in it)&lt;br /&gt;
	Unroll the leftmost %～～%&lt;br /&gt;
while(str with *** in it)&lt;br /&gt;
	Unroll the leftmost ***&lt;br /&gt;
while(str with $$$ in it)&lt;br /&gt;
	Unroll the leftmost $$$&lt;br /&gt;
while(str with +++ in it)&lt;br /&gt;
	Unroll the leftmost +++&lt;br /&gt;
while(str with /// in it)&lt;br /&gt;
	Unroll the leftmost ///&lt;br /&gt;
while(str with === in it)&lt;br /&gt;
	Unroll the leftmost ===&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Because of this behavior, eramaker also allows you to do the following&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
STR:1 = S1%STR:2%3%4%&lt;br /&gt;
STR:2 = S2%STR:&lt;br /&gt;
STR:3 = S3%STR:&lt;br /&gt;
STR:4 = S4&lt;br /&gt;
PRINTFORMSL STR:1&lt;br /&gt;
PRINTFORML %STR:1%&lt;br /&gt;
DRAWLINE&lt;br /&gt;
;・Result&lt;br /&gt;
;S1S2S3S4&lt;br /&gt;
;S1S2S3S4&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Emuera does not replicate this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Attributes of the EVENT Functions ===&lt;br /&gt;
In eramaker, the event function call is done as follows.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
foreach(Function with #PRI)&lt;br /&gt;
{&lt;br /&gt;
	Function Call&lt;br /&gt;
	if(#SINGLE and the return value is 1)&lt;br /&gt;
		break;&lt;br /&gt;
}&lt;br /&gt;
foreach(Function with no #PRI and no #LATER)&lt;br /&gt;
{&lt;br /&gt;
	Function Call&lt;br /&gt;
	if(#SINGLE and the return value is 1)&lt;br /&gt;
		break;&lt;br /&gt;
}&lt;br /&gt;
foreach(Function with #LATER)&lt;br /&gt;
{&lt;br /&gt;
	Function Call&lt;br /&gt;
	if(#SINGLE and the return value is 1)&lt;br /&gt;
		break;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Event functions with both #PRI and #LATER will be called twice.&amp;lt;BR&amp;gt;&lt;br /&gt;
#SINGLE interrupts subsequent function calls only when the return value is 1.&amp;lt;BR&amp;gt;&lt;br /&gt;
In addition, the function call is interrupted by #SINGLE for each pair with #PRI or #LATER.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera since ver1.800 (1.756alpha018 if you include the development version) reproduces this behavior exactly.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Prior to that, Emuera used the following event function calls.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Sort the list of functions according to #PRI and #LATER&lt;br /&gt;
foreach(All functions)&lt;br /&gt;
{&lt;br /&gt;
	Function Call&lt;br /&gt;
	if(#SINGLE and the return value is 1)&lt;br /&gt;
		break;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
If both #PRI and #LATER are added, it is treated as if neither of them were added.&amp;lt;BR&amp;gt;&lt;br /&gt;
If the function call is interrupted by #SINGLE, the event function call is terminated regardless of the presence or absence of #PRI or #LATER.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Note that up to Emuera 1.751b, #SINGLE interrupts subsequent function calls when the return value is not 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
This was fixed in 1.752, and as with eramaker, the current version only aborts further function calls when the return value is 1.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to read the gamebase.csv &amp;quot;コード&amp;quot; (code) ===&lt;br /&gt;
If the code in gamebase.csv contains a number of values beyond the range of -2147483648 to 2147483647, which is the number that eramaker can handle, eramaker rewrites the values in the csv to hexadecimal and uses the last 8 digits as the game code.&amp;lt;BR&amp;gt;&lt;br /&gt;
For example, in the case of &amp;quot;コード,08231000181818110&amp;quot;, the game code will be 301712126, which is in the range that eramaker can handle.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not reproduce this behavior.&amp;lt;BR&amp;gt;&lt;br /&gt;
In Emuera version 1.803 or earlier, the game code is set to 0 when the code is &amp;quot;08231000181818110&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera can handle numbers in the range of -9223372036854775808 to 9223372036854775807, but&amp;lt;BR&amp;gt;&lt;br /&gt;
just like eramaker, GAMEBASE_GAMECODE only handles the number in the range from -2147483648 to 2147483647, and if the range is exceeded, it becomes 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
In addition, in ver. 1.804 or later Emuera, the game code is 8231000181818110 as written in the case of &amp;quot;コード,08231000181818110&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
(GAMEBASE_GAMECODE has been changed to a variable that handles the same range as the other variables.)&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, the game code is set to 0 if the game code is beyond the range that Emuera can handle, such as &amp;quot;コード,98231000181818110110&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
In ver. 1.805 or later, Emuera can read saved data with a game code of 0 regardless of the game's game code.&lt;br /&gt;
&lt;br /&gt;
=== How to read abl.csv, etc ===&lt;br /&gt;
In eramaker, you can specify negative or very large values for the index, such as &amp;quot;99999,Technique&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
However, since the number specified here is used by PRINT_ABL, etc., ABL:99999 is referenced in PRINT_ABL (internally by eramaker) and an error occurs.&amp;lt;BR&amp;gt;&lt;br /&gt;
Thus, the practical value is the same as the number of arrays in ABL and TALENT.&amp;lt;BR&amp;gt;&lt;br /&gt;
An error occurs in item.csv when referring to ITEM and ITEMSALES in SHOP as well.&amp;lt;BR&amp;gt;&lt;br /&gt;
In Emuera, you cannot specify values outside the range of an array such as ABL.&amp;lt;BR&amp;gt;&lt;br /&gt;
Such lines will be ignored.&amp;lt;BR&amp;gt;&lt;br /&gt;
Instead, you can change the range of the array by using !VariableSize.csv.&lt;br /&gt;
&lt;br /&gt;
=== How to read train.csv ===&lt;br /&gt;
It's basically the same as any other csv file, but the circumstances are a little different from the others.&amp;lt;BR&amp;gt;&lt;br /&gt;
In eramaker, for example, even if you define &amp;quot;XXX,99999&amp;quot;, if @COM99999 is defined, it will be executed correctly.&amp;lt;BR&amp;gt;&lt;br /&gt;
On the other hand, if you define a negative value, such as &amp;quot;YYY,-2&amp;quot;, the command will be displayed, but nothing will happen when you select it.&lt;br /&gt;
&lt;br /&gt;
Emuera does not reproduce this behavior.&amp;lt;BR&amp;gt;&lt;br /&gt;
The range that can be defined is up to the size of the TRAINNAME specified in !VariableSize.csv, otherwise it is ignored.&amp;lt;BR&amp;gt;&lt;br /&gt;
If the size of TRAINNAME is not changed, the valid range is from 0 to 999.&lt;br /&gt;
&lt;br /&gt;
=== How to read chara*.csv ===&lt;br /&gt;
With eramaker, even if the &amp;quot;number&amp;quot; is less than 0 or more than 1000, ADDCHARA can be done normally.&amp;lt;BR&amp;gt;&lt;br /&gt;
This works the same way with Emuera.&lt;br /&gt;
&lt;br /&gt;
In eramaker, if a third value is required, such as &amp;quot;基礎,0&amp;quot; (BASE), it is treated as 0 if omitted.&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, if the third value is not needed, such as &amp;quot;素質,0,100&amp;quot; (TALENT), it will be ignored and set to 1.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not reproduce this behavior.&amp;lt;BR&amp;gt;&lt;br /&gt;
MAXBASE:0 becomes 1 if it is set with &amp;quot;基礎,0&amp;quot; and TALENT:0 becomes 100 if it is set to &amp;quot;素質,0,100&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== File Newline Code ===&lt;br /&gt;
In eramaker, when the line feed code is ![CR]![LF] and ![LF], it is a line feed, but when it is only ![CR], it is not a line feed and various malfunctions occur.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not reproduce this behavior and considers ![CR] a line break even if it is alone.&lt;br /&gt;
&lt;br /&gt;
== Unfixed bugs and Unnatural behavior ==&lt;br /&gt;
=== File reading order depends on the file system ===&lt;br /&gt;
In eramaker basic, there is a case that the behavior depends on the order of reading files, for example, when CALLing a multiplexed function.&amp;lt;BR&amp;gt;&lt;br /&gt;
However, eramaker may not work as expected because the order in which files are read depends on the file system.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera also reproduces this problem.&amp;lt;BR&amp;gt;&lt;br /&gt;
Many of the currently released scripts assume that the file system is NTFS and will not work properly if the file system is FAT.&lt;br /&gt;
&lt;br /&gt;
=== Count is added at the end of REPEAT-REND ===&lt;br /&gt;
In eramaker, when exiting REPEAT-REND, the count is increased by 1.&amp;lt;BR&amp;gt;&lt;br /&gt;
You will also get +1 if you exit with a BREAK.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emuera replicates this behavior.&amp;lt;BR&amp;gt;&lt;br /&gt;
In the FOR-NEXT syntax, the loop variable is incremented by 1 as well.&amp;lt;BR&amp;gt;&lt;br /&gt;
Note that the behavior is different from the for syntax and break statements in common programming languages.&lt;br /&gt;
&lt;br /&gt;
=== NEXTCOM behavior ===&lt;br /&gt;
In eramaker, the initial value of NEXTCOM is -1, but after NEXTCOM is executed, the value assigned is 0 instead of -1.&amp;lt;BR&amp;gt;&lt;br /&gt;
Therefore, unless the ERB side is assigned again, COM0 will continue to be repeated.&amp;lt;BR&amp;gt;&lt;br /&gt;
The official description of eramaker does not mention the existence of NEXTCOM.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emuera replicates this behavior.&amp;lt;BR&amp;gt;&lt;br /&gt;
The functionality of NEXTCOM is reproduced for eramaker compatibility only and is not recommended for use.&amp;lt;BR&amp;gt;&lt;br /&gt;
If you don't plan to run your code in eramaker, consider using the DOTRAIN or CALLTRAIN instructions.&lt;br /&gt;
&lt;br /&gt;
== Changed Features ==&lt;br /&gt;
=== SP Characters ===&lt;br /&gt;
In eramaker, a character whose CFLAG:0 is set to non-zero in csv becomes an SP character.&amp;lt;BR&amp;gt;&lt;br /&gt;
The specification was a bit confusing because it cannot be registered by ADDCHARA, but must be registered by ADDDSPCHARA.&amp;lt;BR&amp;gt;&lt;br /&gt;
It was also the cause of a bug, such as unintentionally setting CFLAG:0 to non-zero and not being able to register with ADDCHARA.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emuera has decided not to support this feature by default, starting with ver 1.816.&amp;lt;BR&amp;gt;&lt;br /&gt;
CFLAG:0 is no longer singled out and all characters can now be registered from ADDCHARA.&amp;lt;BR&amp;gt;&lt;br /&gt;
It is possible to reproduce eramaker's behavior with the compatibility option &amp;quot;SPキャラを使用する&amp;quot; (Use SP character), but it is not recommended to use it for any purpose other than to run old scripts.&lt;br /&gt;
&lt;br /&gt;
== Added Features ==&lt;br /&gt;
See [[Emuera/extended|Extended grammar added in Emuera]&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/diff&amp;diff=39866</id>
		<title>Emuera/diff</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/diff&amp;diff=39866"/>
		<updated>2020-04-14T01:12:09Z</updated>

		<summary type="html">&lt;p&gt;Maldito: created and translated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Differences from eramaker =&lt;br /&gt;
== Fixed bugs and unnatural behavior ==&lt;br /&gt;
=== The last element of the array is unavailable ===&lt;br /&gt;
In eramaker, if the last element of the array is not zero, the data will be corrupted on load&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not have this problem.&amp;lt;BR&amp;gt;&lt;br /&gt;
This problem is caused by the fact that the save and load specifications are not unified in eramaker, but Emuera is.&amp;lt;BR&amp;gt;&lt;br /&gt;
Therefore, saving with eramaker and loading with Emuera does not cause this problem, but saving with Emuera and loading with eramaker reproduces this problem.&lt;br /&gt;
&lt;br /&gt;
=== Anomaly of the unary operator &amp;quot;-&amp;quot; ===&lt;br /&gt;
There are problems with eramaker, such as -100 &amp;lt; 0 being false.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not have this problem.&lt;br /&gt;
&lt;br /&gt;
=== The last line of the file is unreadable ===&lt;br /&gt;
eramaker ignores lines without a newline.&amp;lt;BR&amp;gt;&lt;br /&gt;
This means that the last line of the file, whether it is CSV or ERB, will be ignored.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not reproduce this behavior.&lt;br /&gt;
&lt;br /&gt;
=== If there are extra elements in the array, they're ignored ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
	A:1:2 = 34&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
In eramaker, the above expression assigns 34 to A:1.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera makes this an error.&lt;br /&gt;
&lt;br /&gt;
=== Can't use a specific format for array calls ===&lt;br /&gt;
In eramaker, you can use variables such as A:0 and A:(COUNT+1).&amp;lt;BR&amp;gt;&lt;br /&gt;
However, writing double array variables such as ABL:0:2 or TALENT:(COUNT+1):2 will result in an error.&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, if the argument is omitted when calling a string variable, an error may occur.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not have this problem.&amp;lt;BR&amp;gt;&lt;br /&gt;
No error occurs whether the argument of the double array is a constant or a formula, and the argument of a string variable can be omitted.&lt;br /&gt;
&lt;br /&gt;
=== Treating abnormal numbers in the CSV as integers ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
	0,Rotor,200&lt;br /&gt;
	0xFF,Router,200&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
If the above is found in Item.csv, eramaker interprets 0xFF as 0 and ITEM:0 is defined as a Router.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera doesn't reproduce this, but invalidates this definition with an error, and ITEM:0 is defined as a Rotor.&lt;br /&gt;
&lt;br /&gt;
=== Awkward notation works ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
	A:0:1:99999 +-RESULTS:0=@=+123|*?=Y&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
The above expression works in eramaker.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera makes this an error.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other points that are different from eramaker ==&lt;br /&gt;
&lt;br /&gt;
=== If the line immediately after the SIF is a blank line, comment line, etc. ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
SIF conditional&lt;br /&gt;
	;coment&lt;br /&gt;
	PRINT hogehoge&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
eramaker always executes a PRINT line.&amp;lt;BR&amp;gt;&lt;br /&gt;
This is because eramaker recognizes that the next line in the SIF is &amp;quot;;comment&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Emuera only executes PRINT lines if the conditional statement is true, just like Kiri Kiri (吉里吉里) and others.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera treats blank lines and comment lines as non-existent, and recognizes the next line in the SIF as &amp;quot;PRINT hogehoge&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, eramaker can put an IF or REPEAT statement on the next line after the SIF, but this often behaves differently from the author's intentions, so Emuera limits the lines that can be brought after the SIF.&lt;br /&gt;
&lt;br /&gt;
=== Behavior when arguments such as IF and ELSEIF are omitted. ===&lt;br /&gt;
In eramaker, if you omit IF, ELSEIF or the argument of the assignment statement, the behavior becomes indeterminate.&amp;lt;BR&amp;gt;&lt;br /&gt;
However, if the RETURN argument is omitted, it acts like RETURN 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera always interprets the omitted argument as 0, so anything inside a blank IF is always not executed, but is subject to a warning.&lt;br /&gt;
&lt;br /&gt;
=== Characters that can be used in function names ===&lt;br /&gt;
In eramaker, all characters, including symbols and double-byte characters, can be used.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera also allows full-width characters, but not symbols other than _ (underscores).&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, Emuera does not recommend to start the function name with a half-size number.&amp;lt;BR&amp;gt;&lt;br /&gt;
The following script will work with eramaker, but will give an error with Emuera.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
	CALL \.,)(][+-%* 　@&amp;amp;$&lt;br /&gt;
&lt;br /&gt;
@\.,)(][+-%* 　@&amp;amp;$&lt;br /&gt;
	PRINTL Function @\.,)(][+-%* 　@&amp;amp;$ was called.&lt;br /&gt;
	RETURN 0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
In Emuera, if the function name contains ( or ), it is misunderstood as a function argument.&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, the call LOCAL@ function name does not function properly when the function name includes @ or the symbol of the operator.&amp;lt;BR&amp;gt;&lt;br /&gt;
Including {} or % will interfere with the CALLFORM call.&amp;lt;BR&amp;gt;&lt;br /&gt;
For this reason, Emuera, like many programming languages such as C# and Kirikiri (吉里吉里), prohibits the use of symbols in function names.&amp;lt;BR&amp;gt;&lt;br /&gt;
As of ver 1.721, this is a warning level 1 and not a warning that immediately terminates the error, but it may behave unintentionally at some point.&lt;br /&gt;
&lt;br /&gt;
Also, if the function name starts with a half-width number, it cannot be called as a [[exmeth|function that can be used in an expression]].&lt;br /&gt;
This is to determine whether it is a number or a variable or function by looking at a single letter in the expression.&lt;br /&gt;
&lt;br /&gt;
=== RAND Specifications ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
	A = RAND:X&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
In eramaker, it returns 0 when X is 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
Otherwise, it returns (a random number from 0 to 32767) % (the absolute value of X).&amp;lt;BR&amp;gt;&lt;br /&gt;
This method works even when X is negative, never returns a value greater than 32767, and the bias of the value is negligible when X is greater than 1000.&lt;br /&gt;
&lt;br /&gt;
Emuera does not reproduce this.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera returns (a random number from 0 to 18446744073709551615) % (X).&amp;lt;BR&amp;gt;&lt;br /&gt;
When X is a value of 0 or negative, Emuera gives an error.&amp;lt;BR&amp;gt;&lt;br /&gt;
(This is the result of focusing on the consistency of the return values, based on the official description that &amp;quot;the return value is an integer from 0 to A-1 in the case of RAND:A&amp;quot;)&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, X is valid from 1 to 9223372036854775807 (positive 64-bit signed integer range).&amp;lt;BR&amp;gt;&lt;br /&gt;
If X is less than about 100 trillion, there is not enough bias to be felt.&lt;br /&gt;
&lt;br /&gt;
=== WAIT Specifications ===&lt;br /&gt;
In eramaker, the line break is printed when the Enter key is pressed, rather than when the WAIT instruction is executed.&amp;lt;BR&amp;gt;&lt;br /&gt;
In Emuera, if the cursor is in the middle of a line when executing a WAIT instruction, a new line will be started, and if the cursor &amp;quot;pressed the Enter key&amp;quot; or &amp;quot;left clicked&amp;quot;, it will not be accompanied by a new line.&lt;br /&gt;
&lt;br /&gt;
=== JUMP Specifications ===&lt;br /&gt;
In eramaker, JUMP can't be done from a function called by CALL.&amp;lt;BR&amp;gt;&lt;br /&gt;
In Emuera, even a called function can be JUMPed.&amp;lt;BR&amp;gt;&lt;br /&gt;
RETURN in JUMP destination is the same as RETURN in JUMP source function.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
	CALL FOOBAR&lt;br /&gt;
&lt;br /&gt;
	@FOO&lt;br /&gt;
	PRINTL Functino @FOO&lt;br /&gt;
	JUMP BAR&lt;br /&gt;
	@BAR&lt;br /&gt;
	PRINTL Functino @BAR&lt;br /&gt;
	RETURN 0&lt;br /&gt;
	@FOOBAR&lt;br /&gt;
	PRINTL Functino @FOOBAR&lt;br /&gt;
	CALL FOO&lt;br /&gt;
	PRINTW Back to the @FOOBAR function&lt;br /&gt;
;Result of the execution&lt;br /&gt;
;eramaker(error)&lt;br /&gt;
CALLで呼ばれた先からJUMPで関数を呼び出そうとしました&lt;br /&gt;
(Tried to call a function with JUMP from a destination called with CALL)&lt;br /&gt;
&lt;br /&gt;
;Emuera&lt;br /&gt;
Function @FOOBAR&lt;br /&gt;
Function @FOO&lt;br /&gt;
Function @BAR&lt;br /&gt;
Back to the @FOOBAR function&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CALLNAME Specifications ===&lt;br /&gt;
In eramaker, when referring to CALLNAME, if CALLNAME is an empty string, it returns the value of NAME instead.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera returns an empty string if CALLNAME is an empty string.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
To bridge this difference, Emuera provides an option to use NAME if CALLNAME is an empty string.&amp;lt;BR&amp;gt;&lt;br /&gt;
When this option is YES, if CALLNAME is not set in chara*.csv or is set to an empty string, it is treated as being set to the same string as NAME.&amp;lt;BR&amp;gt;&lt;br /&gt;
However, even this option is not completely reproducible.&amp;lt;BR&amp;gt;&lt;br /&gt;
For example, if you add a character in eramaker and read the save data in Emuera, the behavior may be different.&lt;br /&gt;
&lt;br /&gt;
=== Unfolding PRINTFORM and other FORMs ===&lt;br /&gt;
eramaker repeats over and over until there is nothing left to unroll.&amp;lt;BR&amp;gt;&lt;br /&gt;
If there is a self-reference or circular reference, it will freeze.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera only unrolls once.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An eramaker unfolding would probably look like this&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 str = String to unroll&lt;br /&gt;
while(str with {～～} in it)&lt;br /&gt;
	Unroll the leftmost {～～}&lt;br /&gt;
while(str with %～～% in it)&lt;br /&gt;
	Unroll the leftmost %～～%&lt;br /&gt;
while(str with *** in it)&lt;br /&gt;
	Unroll the leftmost ***&lt;br /&gt;
while(str with $$$ in it)&lt;br /&gt;
	Unroll the leftmost $$$&lt;br /&gt;
while(str with +++ in it)&lt;br /&gt;
	Unroll the leftmost +++&lt;br /&gt;
while(str with /// in it)&lt;br /&gt;
	Unroll the leftmost ///&lt;br /&gt;
while(str with === in it)&lt;br /&gt;
	Unroll the leftmost ===&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Because of this behavior, eramaker also allows you to do the following&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
STR:1 = S1%STR:2%3%4%&lt;br /&gt;
STR:2 = S2%STR:&lt;br /&gt;
STR:3 = S3%STR:&lt;br /&gt;
STR:4 = S4&lt;br /&gt;
PRINTFORMSL STR:1&lt;br /&gt;
PRINTFORML %STR:1%&lt;br /&gt;
DRAWLINE&lt;br /&gt;
;・Result&lt;br /&gt;
;S1S2S3S4&lt;br /&gt;
;S1S2S3S4&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Emuera does not replicate this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Attributes of the EVENT Functions ===&lt;br /&gt;
In eramaker, the event function call is done as follows.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
foreach(Function with #PRI)&lt;br /&gt;
{&lt;br /&gt;
	Function Call&lt;br /&gt;
	if(#SINGLE and the return value is 1)&lt;br /&gt;
		break;&lt;br /&gt;
}&lt;br /&gt;
foreach(Function with no #PRI and no #LATER)&lt;br /&gt;
{&lt;br /&gt;
	Function Call&lt;br /&gt;
	if(#SINGLE and the return value is 1)&lt;br /&gt;
		break;&lt;br /&gt;
}&lt;br /&gt;
foreach(Function with #LATER)&lt;br /&gt;
{&lt;br /&gt;
	Function Call&lt;br /&gt;
	if(#SINGLE and the return value is 1)&lt;br /&gt;
		break;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Event functions with both #PRI and #LATER will be called twice.&amp;lt;BR&amp;gt;&lt;br /&gt;
#SINGLE interrupts subsequent function calls only when the return value is 1.&amp;lt;BR&amp;gt;&lt;br /&gt;
In addition, the function call is interrupted by #SINGLE for each pair with #PRI or #LATER.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera since ver1.800 (1.756alpha018 if you include the development version) reproduces this behavior exactly.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Prior to that, Emuera used the following event function calls.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Sort the list of functions according to #PRI and #LATER&lt;br /&gt;
foreach(All functions)&lt;br /&gt;
{&lt;br /&gt;
	Function Call&lt;br /&gt;
	if(#SINGLE and the return value is 1)&lt;br /&gt;
		break;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
If both #PRI and #LATER are added, it is treated as if neither of them were added.&amp;lt;BR&amp;gt;&lt;br /&gt;
If the function call is interrupted by #SINGLE, the event function call is terminated regardless of the presence or absence of #PRI or #LATER.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Note that up to Emuera 1.751b, #SINGLE interrupts subsequent function calls when the return value is not 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
This was fixed in 1.752, and as with eramaker, the current version only aborts further function calls when the return value is 1.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to read the gamebase.csv &amp;quot;コード&amp;quot; (code) ===&lt;br /&gt;
If the code in gamebase.csv contains a number of values beyond the range of -2147483648 to 2147483647, which is the number that eramaker can handle, eramaker rewrites the values in the csv to hexadecimal and uses the last 8 digits as the game code.&amp;lt;BR&amp;gt;&lt;br /&gt;
For example, in the case of &amp;quot;コード,08231000181818110&amp;quot;, the game code will be 301712126, which is in the range that eramaker can handle.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not reproduce this behavior.&amp;lt;BR&amp;gt;&lt;br /&gt;
In Emuera version 1.803 or earlier, the game code is set to 0 when the code is &amp;quot;08231000181818110&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera can handle numbers in the range of -9223372036854775808 to 9223372036854775807, but&amp;lt;BR&amp;gt;&lt;br /&gt;
just like eramaker, GAMEBASE_GAMECODE only handles the number in the range from -2147483648 to 2147483647, and if the range is exceeded, it becomes 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
In addition, in ver. 1.804 or later Emuera, the game code is 8231000181818110 as written in the case of &amp;quot;コード,08231000181818110&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
(GAMEBASE_GAMECODE has been changed to a variable that handles the same range as the other variables.)&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, the game code is set to 0 if the game code is beyond the range that Emuera can handle, such as &amp;quot;コード,98231000181818110110&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
In ver. 1.805 or later, Emuera can read saved data with a game code of 0 regardless of the game's game code.&lt;br /&gt;
&lt;br /&gt;
=== How to read abl.csv, etc ===&lt;br /&gt;
In eramaker, you can specify negative or very large values for the index, such as &amp;quot;99999,Technique&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
However, since the number specified here is used by PRINT_ABL, etc., ABL:99999 is referenced in PRINT_ABL (internally by eramaker) and an error occurs.&amp;lt;BR&amp;gt;&lt;br /&gt;
Thus, the practical value is the same as the number of arrays in ABL and TALENT.&amp;lt;BR&amp;gt;&lt;br /&gt;
An error occurs in item.csv when referring to ITEM and ITEMSALES in SHOP as well.&amp;lt;BR&amp;gt;&lt;br /&gt;
In Emuera, you cannot specify values outside the range of an array such as ABL.&amp;lt;BR&amp;gt;&lt;br /&gt;
Such lines will be ignored.&amp;lt;BR&amp;gt;&lt;br /&gt;
Instead, you can change the range of the array by using !VariableSize.csv.&lt;br /&gt;
&lt;br /&gt;
=== How to read train.csv ===&lt;br /&gt;
It's basically the same as any other csv file, but the circumstances are a little different from the others.&amp;lt;BR&amp;gt;&lt;br /&gt;
In eramaker, for example, even if you define &amp;quot;XXX,99999&amp;quot;, if @COM99999 is defined, it will be executed correctly.&amp;lt;BR&amp;gt;&lt;br /&gt;
On the other hand, if you define a negative value, such as &amp;quot;YYY,-2&amp;quot;, the command will be displayed, but nothing will happen when you select it.&lt;br /&gt;
&lt;br /&gt;
Emuera does not reproduce this behavior.&amp;lt;BR&amp;gt;&lt;br /&gt;
The range that can be defined is up to the size of the TRAINNAME specified in !VariableSize.csv, otherwise it is ignored.&amp;lt;BR&amp;gt;&lt;br /&gt;
If the size of TRAINNAME is not changed, the valid range is from 0 to 999.&lt;br /&gt;
&lt;br /&gt;
=== How to read chara*.csv ===&lt;br /&gt;
With eramaker, even if the &amp;quot;number&amp;quot; is less than 0 or more than 1000, ADDCHARA can be done normally.&amp;lt;BR&amp;gt;&lt;br /&gt;
This works the same way with Emuera.&lt;br /&gt;
&lt;br /&gt;
In eramaker, if a third value is required, such as &amp;quot;基礎,0&amp;quot; (BASE), it is treated as 0 if omitted.&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, if the third value is not needed, such as &amp;quot;素質,0,100&amp;quot; (TALENT), it will be ignored and set to 1.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not reproduce this behavior.&amp;lt;BR&amp;gt;&lt;br /&gt;
MAXBASE:0 becomes 1 if it is set with &amp;quot;基礎,0&amp;quot; and TALENT:0 becomes 100 if it is set to &amp;quot;素質,0,100&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== File Newline Code ===&lt;br /&gt;
In eramaker, when the line feed code is ![CR]![LF] and ![LF], it is a line feed, but when it is only ![CR], it is not a line feed and various malfunctions occur.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera does not reproduce this behavior and considers ![CR] a line break even if it is alone.&lt;br /&gt;
&lt;br /&gt;
== Unfixed bugs and Unnatural behavior ==&lt;br /&gt;
=== File reading order depends on the file system ===&lt;br /&gt;
In eramaker basic, there is a case that the behavior depends on the order of reading files, for example, when CALLing a multiplexed function.&amp;lt;BR&amp;gt;&lt;br /&gt;
However, eramaker may not work as expected because the order in which files are read depends on the file system.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera also reproduces this problem.&amp;lt;BR&amp;gt;&lt;br /&gt;
Many of the currently released scripts assume that the file system is NTFS and will not work properly if the file system is FAT.&lt;br /&gt;
&lt;br /&gt;
=== Count is added at the end of REPEAT-REND ===&lt;br /&gt;
In eramaker, when exiting REPEAT-REND, the count is increased by 1.&amp;lt;BR&amp;gt;&lt;br /&gt;
You will also get +1 if you exit with a BREAK.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emuera replicates this behavior.&amp;lt;BR&amp;gt;&lt;br /&gt;
In the FOR-NEXT syntax, the loop variable is incremented by 1 as well.&amp;lt;BR&amp;gt;&lt;br /&gt;
Note that the behavior is different from the for syntax and break statements in common programming languages.&lt;br /&gt;
&lt;br /&gt;
=== NEXTCOM behavior ===&lt;br /&gt;
In eramaker, the initial value of NEXTCOM is -1, but after NEXTCOM is executed, the value assigned is 0 instead of -1.&amp;lt;BR&amp;gt;&lt;br /&gt;
Therefore, unless the ERB side is assigned again, COM0 will continue to be repeated.&amp;lt;BR&amp;gt;&lt;br /&gt;
The official description of eramaker does not mention the existence of NEXTCOM.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emuera replicates this behavior.&amp;lt;BR&amp;gt;&lt;br /&gt;
The functionality of NEXTCOM is reproduced for eramaker compatibility only and is not recommended for use.&amp;lt;BR&amp;gt;&lt;br /&gt;
If you don't plan to run your code in eramaker, consider using the DOTRAIN or CALLTRAIN instructions.&lt;br /&gt;
&lt;br /&gt;
== Changed Features ==&lt;br /&gt;
=== SP Characters ===&lt;br /&gt;
In eramaker, a character whose CFLAG:0 is set to non-zero in csv becomes an SP character.&amp;lt;BR&amp;gt;&lt;br /&gt;
The specification was a bit confusing because it cannot be registered by ADDCHARA, but must be registered by ADDDSPCHARA.&amp;lt;BR&amp;gt;&lt;br /&gt;
It was also the cause of a bug, such as unintentionally setting CFLAG:0 to non-zero and not being able to register with ADDCHARA.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emuera has decided not to support this feature by default, starting with ver 1.816.&amp;lt;BR&amp;gt;&lt;br /&gt;
CFLAG:0 is no longer singled out and all characters can now be registered from ADDCHARA.&amp;lt;BR&amp;gt;&lt;br /&gt;
It is possible to reproduce eramaker's behavior with the compatibility option &amp;quot;SPキャラを使用する&amp;quot; (Use SP character), but it is not recommended to use it for any purpose other than to run old scripts.&lt;br /&gt;
&lt;br /&gt;
== Added Features ==&lt;br /&gt;
See [[Emuera/extended|Extended grammar added in Emuera]&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera&amp;diff=39865</id>
		<title>Emuera</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera&amp;diff=39865"/>
		<updated>2020-04-14T00:05:11Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Information about eramaker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a work in progress port/translation of the Emuera wiki at https://osdn.net/projects/emuera/wiki/FrontPage&lt;br /&gt;
&lt;br /&gt;
Things will be incomplete or missing.&lt;br /&gt;
== Information about eramaker ==&lt;br /&gt;
Most of the features implemented in eramaker are not explained in Emuera's wiki. Therefore if you need, check the original documentation below:&lt;br /&gt;
&lt;br /&gt;
* [[Emuera/eramacsv|Eramaker CSV File Format]]&lt;br /&gt;
* [[Emuera/eramaerc|Eramaker Game Structure]]&lt;br /&gt;
* [[Emuera/eramaerb|Eramaker ERB File Format]]&lt;br /&gt;
* [[Emuera/eramavar|Eramaker Variable List]]&lt;br /&gt;
&lt;br /&gt;
You can also refer to the following link for the original documentation: http://cbaku.com/b/2010/12/eramaker/&lt;br /&gt;
&lt;br /&gt;
== Information for end users ==&lt;br /&gt;
* [[Emuera/howto|How to Use]]&lt;br /&gt;
* [[Emuera/config|Config Settings]]&lt;br /&gt;
* [[Emuera/shortcut|Shortcut Keys]]&lt;br /&gt;
* [[Emuera/history|Update History]]&lt;br /&gt;
* [[Emuera/Thread|Emuera thread]]&lt;br /&gt;
&lt;br /&gt;
==eramaker basic Information for Developers==&lt;br /&gt;
* [[Emuera/EmuDic|Glossary]]&lt;br /&gt;
* [[Emuera/debugcom|Debug Commands]]&lt;br /&gt;
* [[Emuera/debug|Debug Mode]]&lt;br /&gt;
* [[Emuera/replace|_replace.csv]]&lt;br /&gt;
* [[Emuera/exconfig|Forcing a Config item]]&lt;br /&gt;
* [[Emuera/flow|Flowchart]]&lt;br /&gt;
* [[Emuera/diff|Differences with eramaker]]&lt;br /&gt;
* [[Emuera/extended|Extended syntax added in Emuera]]&lt;br /&gt;
** [[Emuera/exetc|General]]&lt;br /&gt;
** [[Emuera/exop|Operations]]&lt;br /&gt;
** [[Emuera/exvar|Constants / Variables]]&lt;br /&gt;
** [[Emuera/UserVars|User-Defined Variables]]&lt;br /&gt;
** [[Emuera/excom|Instructions]]&lt;br /&gt;
** [[Emuera/exfunc|Function / Preprocessor]]&lt;br /&gt;
** [[Emuera/exmeth|Functions that can be used in expressions]]&lt;br /&gt;
** [[Emuera/UserMeth|User-defined in-expression functions]]&lt;br /&gt;
** [[Emuera/ERH|Header Files（ERH）]]&lt;br /&gt;
** [[Emuera/exhtml|HTML_PRINT related]]&lt;br /&gt;
** [[Emuera/resources|Resource file]]&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/flow&amp;diff=39864</id>
		<title>Emuera/flow</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/flow&amp;diff=39864"/>
		<updated>2020-04-13T22:37:08Z</updated>

		<summary type="html">&lt;p&gt;Maldito: full translation. needs a proofread tho&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Flowcharts =&lt;br /&gt;
The flowcharts were created using [http://logicnet.dk/DiagramDesigner/ DiagramDesigner].&amp;lt;BR&amp;gt;&lt;br /&gt;
The data file is [https://osdn.net/projects/emuera/wiki/flow/attach/flow1821.ddd here].&lt;br /&gt;
&lt;br /&gt;
Unless otherwise indicated in the following description, the subject of the sentence is Emuera.exe.&lt;br /&gt;
&lt;br /&gt;
== TITLE ==&lt;br /&gt;
After starting up and reading the ERB, and after running BEGIN TITLE.&lt;br /&gt;
[[File:Emuera-flow-title.png|center|thumb|Flowchart]]&lt;br /&gt;
If @SYSTEM_TITLE is defined, call it and do nothing else.&amp;lt;BR&amp;gt;&lt;br /&gt;
If BEGIN or LOADDATA instruction is not executed in @SYSTEM_TITLE and RETURN is executed, the next process is not executed it ends in an error.&lt;br /&gt;
&lt;br /&gt;
If @SYSTEM_TITLE is not defined, the standard title processing is done.&amp;lt;BR&amp;gt;&lt;br /&gt;
Characters such as &amp;quot;![0] Start from the beginning&amp;quot; on the standard title screen can be changed.&amp;lt;BR&amp;gt;&lt;br /&gt;
See [[replace|_replace.csv]] for details.&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;![0] Start from the beginning&amp;quot; is selected, the first step is to initialize the data.&amp;lt;BR&amp;gt;&lt;br /&gt;
More specifically, the initial values of STR and PRINTLV (the same as the RESETDATA instruction), ADDCHARA 0, etc.&amp;lt;BR&amp;gt;&lt;br /&gt;
Next, BEGIN FIRST is executed to transition to FIRST.&lt;br /&gt;
&lt;br /&gt;
If @TITLE_LOADGAME is defined, it is called when &amp;quot;![1] Load and start&amp;quot; is selected.&amp;lt;BR&amp;gt;&lt;br /&gt;
If not defined, the standard load screen is displayed.&amp;lt;BR&amp;gt;&lt;br /&gt;
It is slightly different from the screen called from LOADGAME.&lt;br /&gt;
&lt;br /&gt;
== FIRST ==&lt;br /&gt;
When &amp;quot;![0] Start from the beginning&amp;quot; is selected in the title screen and after BEGIN FIRST is executed.&amp;lt;BR&amp;gt;&lt;br /&gt;
If the BEGIN instruction is not executed in @EVENTFIRST, the next process is not executed it ends in an error.&amp;lt;BR&amp;gt;&lt;br /&gt;
[[File:Emuera-flow-first.png|center|thumb|Flowchart]]&lt;br /&gt;
&lt;br /&gt;
== SHOP ==&lt;br /&gt;
After loading and running the BEGIN SHOP.&amp;lt;BR&amp;gt;&lt;br /&gt;
If it is loaded, @EVENTSHOP is not processed.&amp;lt;BR&amp;gt;&lt;br /&gt;
[[File:Emuera-flow-shop.png|center|thumb|Flowchart]]&lt;br /&gt;
&lt;br /&gt;
Request input after the @SHOW_SHOP call.&amp;lt;BR&amp;gt;&lt;br /&gt;
If a value between 0 and 99 is received, the purchase process is performed, and if any other value is entered, @USERSHOP is called.&amp;lt;BR&amp;gt;&lt;br /&gt;
This range can be changed by _replace.csv. See [replace _replace.csv] for more information.&amp;lt;BR&amp;gt;&lt;br /&gt;
The range of items displayed by the PRINT_ITEMSHOP instruction is limited to the number of ITEMNAME or ITEMSALES elements, whichever is smaller (the standard is 1000).&lt;br /&gt;
&lt;br /&gt;
When the purchase process is called, it judges whether the corresponding ITEMSALES is non-zero or whether MONEY is greater than ITEMPRICE.&amp;lt;BR&amp;gt;&lt;br /&gt;
If the purchase decision fails, it is requested to enter it again.&amp;lt;BR&amp;gt;&lt;br /&gt;
In eramaker, if the purchase failed, It would start over from @SHOW_SHOP.&lt;br /&gt;
&lt;br /&gt;
If the purchase decision is successful, assign the ITEM number to the BOUGHT variable, increase ITEM:BOUGHT by 1, and reduce MONEY by ITEMPRICE:BOUGHT.&amp;lt;BR&amp;gt;&lt;br /&gt;
Call @EVENTBUY and return to @SHOW_SHOP.&lt;br /&gt;
&lt;br /&gt;
Unless a BEGIN instruction is issued somewhere, it will never leave the SHOP.&lt;br /&gt;
&lt;br /&gt;
== TRAIN ==&lt;br /&gt;
After BEGIN TRAIN is executed.&lt;br /&gt;
[[File:Emuera-flow-train.png|center|thumb|Flowchart]]&lt;br /&gt;
&lt;br /&gt;
First, some of the variables are initialized.&amp;lt;BR&amp;gt;&lt;br /&gt;
Specifically, assign 0 to ASSIPLAY:0, 0 to PREVCOM:0, and -1 to NEXTCOM:0.&amp;lt;BR&amp;gt;&lt;br /&gt;
In addition, all TFLAGs are set to 0 and all characters' GOTJUEL, TEQUIP, EX, PALAM, and SOURCE are set to 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
Finally, assign 2 to STAIN:2, 1 to STAIN:3, 8 to STAIN:4, and 0 to all others.&lt;br /&gt;
&lt;br /&gt;
These values will remain in the save data when you save with SHOP, because they are not initialized when you exit TRAIN.&amp;lt;BR&amp;gt;&lt;br /&gt;
You can save space in your save data by assigning 0 to your character's GOTJUEL, TEQUIP, EX, PALAM, etc. in @SAVEINFO.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The behavior when a non-negative value is assigned to NEXTCOM is not explained here because it is a serious problem.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera's NEXTCOM was implemented to reproduce the behavior of the old code including the aforementioned defects, and no new use is expected.&amp;lt;BR&amp;gt;&lt;br /&gt;
For the CALLTRAIN instruction, see the [[excom|extension instructions]].&lt;br /&gt;
&lt;br /&gt;
Display executable TRAIN commands after a @SHOW_STATUS call.&amp;lt;BR&amp;gt;&lt;br /&gt;
Look up @COM_ABLExx for which TRAINNAME are defined.&amp;lt;BR&amp;gt;&lt;br /&gt;
The search range (MAX_TRAIN in the figure) is up to the range of TRAINNAME specified in VariableSize.csv in Emuera, and up to 2147483647 in eramaker.&amp;lt;BR&amp;gt;&lt;br /&gt;
@If COM_ABLExx is not defined or returns a non-zero value, TRAINNAME is displayed because it is executable.&amp;lt;BR&amp;gt;&lt;br /&gt;
If @COM_ABLExx returns 0, TRAINNAME is not displayed because it cannot be executed.&amp;lt;BR&amp;gt;&lt;br /&gt;
It remembers which commands are executable or not at this time. (It doesn't call @COM_ABLExx again at runtime.)&lt;br /&gt;
&lt;br /&gt;
When TRAINNAME is displayed, call @SHOW_USERCOM.&amp;lt;BR&amp;gt;&lt;br /&gt;
After @SHOW_USERCOM, initialize &amp;quot;UP&amp;quot;, &amp;quot;DOWN&amp;quot; and &amp;quot;LOSEBASE&amp;quot; before inputting.&amp;lt;BR&amp;gt;&lt;br /&gt;
It then asks for input.&lt;br /&gt;
&lt;br /&gt;
The input result is checked against the result of @COM_ABLExx, and if it is an executable command, the corresponding @COMxx is called.&amp;lt;BR&amp;gt;&lt;br /&gt;
First, assign the TRAIN command number to the SELECTCOM variable and set all NOWEX of all characters to 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
Next, call @EVENTCOM, followed by the corresponding @COM.&amp;lt;BR&amp;gt;&lt;br /&gt;
If @COM returns a non-zero value, call @SOURCE_CHECK and @EVENTCOMEND and return to @SHOW_STATUS.&amp;lt;BR&amp;gt;&lt;br /&gt;
After @SOURCE_CHECK ends, set all SOURCE elements of all characters to 0 before calling @EVENTCOMEND.&amp;lt;BR&amp;gt;&lt;br /&gt;
After @SOURCE_CHECK ends, if @EVENTCOMEND does not exist or no WAIT instruction is performed in @EVENTCOMEND, WAIT is generated just before @SHOW_STATUS.&amp;lt;BR&amp;gt;&lt;br /&gt;
If @COM returns 0, it returns to @SHOW_STATUS.&amp;lt;BR&amp;gt;&lt;br /&gt;
When the UPCHECK instruction is executed, the UP and DOWN values are added and subtracted to the TARGET's PALAM, and all of the UP and DOWN values are assigned to 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the input result is not an executable command, it calls @USERCOM and returns to @SHOW_STATUS.&lt;br /&gt;
&lt;br /&gt;
Unless a BEGIN instruction is issued somewhere, it will never leave TRAIN.&lt;br /&gt;
&lt;br /&gt;
== ABLUP ==&lt;br /&gt;
After executing BEGIN ABLUP.&lt;br /&gt;
&lt;br /&gt;
[[File:Emuera-flow-ablup.png|center|thumb|Flowchart]]&lt;br /&gt;
&lt;br /&gt;
Call @SHOW_JUEL and @SHOW_ABLUP_SELECT to request input.&lt;br /&gt;
&lt;br /&gt;
If the input is within the range of 0 to 99, find the corresponding @ABLUP.&amp;lt;BR&amp;gt;&lt;br /&gt;
If the corresponding @ABLUP is defined, it calls @ABLUP and returns to @SHOW_JUEL.&amp;lt;BR&amp;gt;&lt;br /&gt;
If it is not defined, it will ask for input again.&amp;lt;BR&amp;gt;&lt;br /&gt;
In eramaker, if it is not defined, It would start over from @SHOW_JUEL.&lt;br /&gt;
&lt;br /&gt;
If the input is out of the range of 0 to 99, call @USERABLUP and return to @SHOW_JUEL.&amp;lt;BR&amp;gt;&lt;br /&gt;
As of Emuera 1.705, there is no way to change this range.&lt;br /&gt;
&lt;br /&gt;
Unless a BEGIN instruction is made somewhere, it will never leave ABLUP.&lt;br /&gt;
&lt;br /&gt;
== AFTERTRAIN ==&lt;br /&gt;
After BEGIN AFTERTRAIN is executed.&amp;lt;BR&amp;gt;&lt;br /&gt;
If the BEGIN instruction is not executed in @EVENTEND, the next process is not executed it ends in an error.&lt;br /&gt;
[[File:Emuera-flow-aftertrain.png|center|thumb|Flowchart]]&lt;br /&gt;
&lt;br /&gt;
== TURNEND ==&lt;br /&gt;
After BEGIN TURNEND is executed.&amp;lt;BR&amp;gt;&lt;br /&gt;
If the BEGIN instruction is not executed in @EVENTTURNEND, the next process is not executed it ends in an error.&lt;br /&gt;
[[File:Emuera-flow-turnend.png|center|thumb|Flowchart]]&lt;br /&gt;
&lt;br /&gt;
== LOADGAME ==&lt;br /&gt;
When the LOADGAME instruction is executed.&amp;lt;BR&amp;gt;&lt;br /&gt;
The BEGIN instruction contains the RETURN instruction and never executes the statements below BEGIN, but the LOADDATA and SAVEDATA instructions return to the original location just like the CALL instruction.&amp;lt;BR&amp;gt;&lt;br /&gt;
However, when LOAD is executed, it forgets the original position and transitions to LOADDATAEND.&lt;br /&gt;
[[File:Emuera-flow-loadgame.png|center|thumb|Flowchart]]&lt;br /&gt;
&lt;br /&gt;
== SAVEGAME ==&lt;br /&gt;
When the SAVEGAME instruction is executed.&amp;lt;BR&amp;gt;&lt;br /&gt;
The timing of calling @SAVEINFO is just before the writing is actually done.&lt;br /&gt;
[[File:Emuera-flow-savegame.png|center|thumb|Flowchart]]&lt;br /&gt;
&lt;br /&gt;
== LOADDATAEND ==&lt;br /&gt;
After LOAD is executed with LOADGAME and after the LOADDATA instruction is executed.&amp;lt;BR&amp;gt;&lt;br /&gt;
When LOAD is executed, all the states of the calling function and so on are cleared.&lt;br /&gt;
[[File:Emuera-flow-loaddataend1821.png|center|thumb|Flowchart]]&lt;br /&gt;
&lt;br /&gt;
In eramaker, it doesn't do anything here and goes to @SHOW_SHOP.&amp;lt;BR&amp;gt;&lt;br /&gt;
In Emuera, if @SYSTEM_LOADEND is defined, it executes @SYSTEM_LOADEND.&amp;lt;BR&amp;gt;&lt;br /&gt;
If the BEGIN instruction is executed by the end of @SYSTEM_LOADEND, it transitions to there.&amp;lt;BR&amp;gt;&lt;br /&gt;
Otherwise, if @EVENTLOAD is defined, @EVENTLOAD is executed.&lt;br /&gt;
&lt;br /&gt;
If the BEGIN instruction is executed by the end of @EVENTLOAD, it transitions to there.&amp;lt;BR&amp;gt;&lt;br /&gt;
If the BEGIN instruction is not executed, it transitions to @SHOW_SHOP as usual.&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/flow&amp;diff=39863</id>
		<title>Emuera/flow</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/flow&amp;diff=39863"/>
		<updated>2020-04-13T20:49:02Z</updated>

		<summary type="html">&lt;p&gt;Maldito: Page created, half of it translated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Flowchart ===&lt;br /&gt;
The flowchart was created using [http://logicnet.dk/DiagramDesigner/ DiagramDesigner].&amp;lt;BR&amp;gt;&lt;br /&gt;
The data file is [https://osdn.net/projects/emuera/wiki/flow/attach/flow1821.ddd here].&lt;br /&gt;
&lt;br /&gt;
Unless otherwise indicated in the following description, the subject of the sentence is Emuera.exe.&lt;br /&gt;
&lt;br /&gt;
==== TITLE ====&lt;br /&gt;
After starting up and reading the ERB, and after running BEGIN TITLE.&lt;br /&gt;
[[File:Emuera-flow-title.png|center|thumb|Flowchart]]&lt;br /&gt;
If @SYSTEM_TITLE is defined, call it and do nothing else.&amp;lt;BR&amp;gt;&lt;br /&gt;
If BEGIN or LOADDATA instruction is not executed in @SYSTEM_TITLE and RETURN is executed, the next process is not executed and the operation ends in an error.&lt;br /&gt;
&lt;br /&gt;
If @SYSTEM_TITLE is not defined, the standard title processing is done.&amp;lt;BR&amp;gt;&lt;br /&gt;
Characters such as &amp;quot;![0] Start from the beginning&amp;quot; on the standard title screen can be changed.&amp;lt;BR&amp;gt;&lt;br /&gt;
See [[replace|_replace.csv]] for details.&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;![0] Start from the beginning&amp;quot; is selected, the first step is to initialize the data.&amp;lt;BR&amp;gt;&lt;br /&gt;
More specifically, the initial values of STR and PRINTLV (the same as the RESETDATA instruction), ADDCHARA 0, etc.&amp;lt;BR&amp;gt;&lt;br /&gt;
Next, BEGIN FIRST is executed to transition to FIRST.&lt;br /&gt;
&lt;br /&gt;
If @TITLE_LOADGAME is defined, it is called when &amp;quot;![1] Load and start&amp;quot; is selected.&amp;lt;BR&amp;gt;&lt;br /&gt;
If not defined, the standard load screen is displayed.&amp;lt;BR&amp;gt;&lt;br /&gt;
It is slightly different from the screen called from LOADGAME.&lt;br /&gt;
&lt;br /&gt;
==== FIRST ====&lt;br /&gt;
When &amp;quot;![0] Start from the beginning&amp;quot; is selected in the title screen and after BEGIN FIRST is executed.&amp;lt;BR&amp;gt;&lt;br /&gt;
If the BEGIN instruction is not executed in @EVENTFIRST, the next process is not executed and the operation ends in an error.&amp;lt;BR&amp;gt;&lt;br /&gt;
[[File:Emuera-flow-first.png|center|thumb|Flowchart]]&lt;br /&gt;
&lt;br /&gt;
==== SHOP ====&lt;br /&gt;
After loading and running the BEGIN SHOP.&amp;lt;BR&amp;gt;&lt;br /&gt;
If it is loaded, @EVENTSHOP is not processed.&amp;lt;BR&amp;gt;&lt;br /&gt;
[[File:Emuera-flow-shop.png|center|thumb|Flowchart]]&lt;br /&gt;
&lt;br /&gt;
Request input after the @SHOW_SHOP call.&amp;lt;BR&amp;gt;&lt;br /&gt;
If a value between 0 and 99 is received, the purchase process is performed, and if any other value is entered, @USERSHOP is called.&amp;lt;BR&amp;gt;&lt;br /&gt;
This range can be changed by _replace.csv. See [replace _replace.csv] for more information.&amp;lt;BR&amp;gt;&lt;br /&gt;
The range of items displayed by the PRINT_ITEMSHOP instruction is limited to the number of ITEMNAME or ITEMSALES elements, whichever is smaller (the standard is 1000).&lt;br /&gt;
&lt;br /&gt;
When the purchase process is called, it judges whether the corresponding ITEMSALES is non-zero or whether MONEY is greater than ITEMPRICE.&amp;lt;BR&amp;gt;&lt;br /&gt;
If the purchase decision fails, it is requested to enter it again.&amp;lt;BR&amp;gt;&lt;br /&gt;
In eramaker, if the purchase failed, It would start over from @SHOW_SHOP.&lt;br /&gt;
&lt;br /&gt;
If the purchase decision is successful, assign the ITEM number to the BOUGHT variable, increase ITEM:BOUGHT by 1, and reduce MONEY by ITEMPRICE:BOUGHT.&amp;lt;BR&amp;gt;&lt;br /&gt;
Call @EVENTBUY and return to @SHOW_SHOP.&lt;br /&gt;
&lt;br /&gt;
Unless a BEGIN instruction is issued somewhere, it will never leave the SHOP.&lt;br /&gt;
&lt;br /&gt;
==== TRAIN ====&lt;br /&gt;
After BEGIN TRAIN is executed.&lt;br /&gt;
[[File:Emuera-flow-train.png|center|thumb|Flowchart]]&lt;br /&gt;
&lt;br /&gt;
First, some of the variables are initialized.&amp;lt;BR&amp;gt;&lt;br /&gt;
Specifically, assign 0 to ASSIPLAY:0, 0 to PREVCOM:0, and -1 to NEXTCOM:0.&amp;lt;BR&amp;gt;&lt;br /&gt;
In addition, all TFLAGs are set to 0 and all characters' GOTJUEL, TEQUIP, EX, PALAM, and SOURCE are set to 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
Finally, assign 2 to STAIN:2, 1 to STAIN:3, 8 to STAIN:4, and 0 to all others.&lt;br /&gt;
&lt;br /&gt;
These values will remain in the save data when you save with SHOP, because they are not initialized when you exit TRAIN.&amp;lt;BR&amp;gt;&lt;br /&gt;
You can save space in your save data by assigning 0 to your character's GOTJUEL, TEQUIP, EX, PALAM, etc. in @SAVEINFO.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The behavior when a non-negative value is assigned to NEXTCOM is not explained here because it is a serious problem.&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera's NEXTCOM was implemented to reproduce the behavior of the old code including the aforementioned defects, and no new use is expected.&amp;lt;BR&amp;gt;&lt;br /&gt;
For the CALLTRAIN instruction, see the [excom extension instructions].&lt;br /&gt;
&lt;br /&gt;
Display executable TRAIN commands after a @SHOW_STATUS call.&amp;lt;BR&amp;gt;&lt;br /&gt;
Look up @COM_ABLExx for which TRAINNAME are defined.&amp;lt;BR&amp;gt;&lt;br /&gt;
The search range (MAX_TRAIN in the figure) is up to the range of TRAINNAME specified in VariableSize.csv in Emuera, and up to 2147483647 in eramaker.&amp;lt;BR&amp;gt;&lt;br /&gt;
@If COM_ABLExx is not defined or returns a non-zero value, TRAINNAME is displayed because it is executable.&amp;lt;BR&amp;gt;&lt;br /&gt;
If @COM_ABLExx returns 0, TRAINNAME is not displayed because it cannot be executed.&amp;lt;BR&amp;gt;&lt;br /&gt;
It remembers which commands are executable or not at this time. (It doesn't call @COM_ABLExx again at runtime.)&lt;br /&gt;
&lt;br /&gt;
When TRAINNAME is displayed, call @SHOW_USERCOM.&amp;lt;BR&amp;gt;&lt;br /&gt;
After @SHOW_USERCOM, initialize &amp;quot;UP&amp;quot;, &amp;quot;DOWN&amp;quot; and &amp;quot;LOSEBASE&amp;quot; before inputting.&amp;lt;BR&amp;gt;&lt;br /&gt;
It then asks for input.&lt;br /&gt;
&lt;br /&gt;
The input result is checked against the result of @COM_ABLExx, and if it is an executable command, the corresponding @COMxx is called.&amp;lt;BR&amp;gt;&lt;br /&gt;
First, assign the TRAIN command number to the SELECTCOM variable and set all NOWEX of all characters to 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
Next, call @EVENTCOM, followed by the corresponding @COM.&amp;lt;BR&amp;gt;&lt;br /&gt;
If @COM returns a non-zero value, call @SOURCE_CHECK and @EVENTCOMEND and return to @SHOW_STATUS.&amp;lt;BR&amp;gt;&lt;br /&gt;
After @SOURCE_CHECK ends, set all SOURCE elements of all characters to 0 before calling @EVENTCOMEND.&amp;lt;BR&amp;gt;&lt;br /&gt;
After @SOURCE_CHECK ends, if @EVENTCOMEND does not exist or no WAIT instruction is performed in @EVENTCOMEND, WAIT is generated just before @SHOW_STATUS.&amp;lt;BR&amp;gt;&lt;br /&gt;
If @COM returns 0, it returns to @SHOW_STATUS.&amp;lt;BR&amp;gt;&lt;br /&gt;
When the UPCHECK instruction is executed, the UP and DOWN values are added and subtracted to the TARGET's PALAM, and all of the UP and DOWN values are assigned to 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the input result is not an executable command, it calls @USERCOM and returns to @SHOW_STATUS.&lt;br /&gt;
&lt;br /&gt;
Unless a BEGIN instruction is issued somewhere, it will never leave TRAIN.&lt;br /&gt;
&lt;br /&gt;
==== ABLUP ====&lt;br /&gt;
BEGIN ABLUP実行後。&lt;br /&gt;
&lt;br /&gt;
[[File:Emuera-flow-ablup.png|center|thumb|Flowchart]]&lt;br /&gt;
&lt;br /&gt;
@SHOW_JUEL、@SHOW_ABLUP_SELECTを呼び出し、入力を要求する。&lt;br /&gt;
&lt;br /&gt;
入力が0～99の範囲内である場合、対応する@ABLUPを探す。&amp;lt;BR&amp;gt;&lt;br /&gt;
対応する@ABLUPが定義されていれば@ABLUPを呼び出し、@SHOW_JUELに戻る。&amp;lt;BR&amp;gt;&lt;br /&gt;
定義されていない場合、再度入力を要求する。&amp;lt;BR&amp;gt;&lt;br /&gt;
eramakerでは定義されていない場合は@SHOW_JUELからやり直していた。&lt;br /&gt;
&lt;br /&gt;
入力が0～99の範囲外である場合、@USERABLUPを呼び出し、@SHOW_JUELに戻る。&amp;lt;BR&amp;gt;&lt;br /&gt;
Emuera1.705現在ではこの範囲を変える方法はない。&lt;br /&gt;
&lt;br /&gt;
どこかでBEGIN命令が行われない限り、ABLUPから出ることはない。&lt;br /&gt;
&lt;br /&gt;
==== AFTERTRAIN ====&lt;br /&gt;
BEGIN AFTERTRAIN実行後。&amp;lt;BR&amp;gt;&lt;br /&gt;
@EVENTEND内でBEGIN命令が行われなかった場合、次に実行する処理がなくなりエラー終了する。&lt;br /&gt;
[[File:Emuera-flow-aftertrain.png|center|thumb|Flowchart]]&lt;br /&gt;
&lt;br /&gt;
==== TURNEND ====&lt;br /&gt;
BEGIN TURNEND実行後。&amp;lt;BR&amp;gt;&lt;br /&gt;
@EVENTTURNEND内でBEGIN命令が行われなかった場合、次に実行する処理がなくなりエラー終了する。&lt;br /&gt;
[[File:Emuera-flow-turnend.png|center|thumb|Flowchart]]&lt;br /&gt;
&lt;br /&gt;
==== LOADGAME ====&lt;br /&gt;
LOADGAME命令の実行時。&amp;lt;BR&amp;gt;&lt;br /&gt;
BEGIN命令はRETURN命令を内包しBEGIN以下の文は決して実行されないが、LOADDATAとSAVEDATA命令はCALL命令と同様に元の場所に帰ってくる。&amp;lt;BR&amp;gt;&lt;br /&gt;
ただし、LOADが実行された場合はもとの位置を忘れてLOADDATAENDへ遷移する。&lt;br /&gt;
[[File:Emuera-flow-loadgame.png|center|thumb|Flowchart]]&lt;br /&gt;
&lt;br /&gt;
==== SAVEGAME ====&lt;br /&gt;
SAVEGAME命令の実行時。&amp;lt;BR&amp;gt;&lt;br /&gt;
@SAVEINFOを呼び出すタイミングは実際に書き込みが行われる直前である。&lt;br /&gt;
[[File:Emuera-flow-savegame.png|center|thumb|Flowchart]]&lt;br /&gt;
&lt;br /&gt;
==== LOADDATAEND ====&lt;br /&gt;
LOADGAMEでLOADが実行された後、およびLOADDATA命令の実行後。&amp;lt;BR&amp;gt;&lt;br /&gt;
LOADが行われた時点で呼び出し中の関数などこれまでの状態は全て消去される。&lt;br /&gt;
[[File:Emuera-flow-loaddataend1821.png|center|thumb|Flowchart]]&lt;br /&gt;
&lt;br /&gt;
eramakerだとここでは何もせず、@SHOW_SHOPに遷移する。&amp;lt;BR&amp;gt;&lt;br /&gt;
Emueraでは、@SYSTEM_LOADENDが定義されていれば@SYSTEM_LOADENDを実行する。&amp;lt;BR&amp;gt;&lt;br /&gt;
@SYSTEM_LOADEND終了までにBEGIN命令が行われれば、そちらへ遷移する。&amp;lt;BR&amp;gt;&lt;br /&gt;
でなければ@EVENTLOADが定義されていれば@EVENTLOADを実行する。&lt;br /&gt;
&lt;br /&gt;
@EVENTLOAD終了までにBEGIN命令が行われれば、そちらへ遷移する。&amp;lt;BR&amp;gt;&lt;br /&gt;
BEGIN命令が行われなければ通常通り@SHOW_SHOPに遷移する。&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=File:Emuera-flow-turnend.png&amp;diff=39862</id>
		<title>File:Emuera-flow-turnend.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=File:Emuera-flow-turnend.png&amp;diff=39862"/>
		<updated>2020-04-13T20:48:33Z</updated>

		<summary type="html">&lt;p&gt;Maldito: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=File:Emuera-flow-train.png&amp;diff=39861</id>
		<title>File:Emuera-flow-train.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=File:Emuera-flow-train.png&amp;diff=39861"/>
		<updated>2020-04-13T20:48:22Z</updated>

		<summary type="html">&lt;p&gt;Maldito: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=File:Emuera-flow-title.png&amp;diff=39860</id>
		<title>File:Emuera-flow-title.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=File:Emuera-flow-title.png&amp;diff=39860"/>
		<updated>2020-04-13T20:47:59Z</updated>

		<summary type="html">&lt;p&gt;Maldito: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=File:Emuera-flow-shop.png&amp;diff=39859</id>
		<title>File:Emuera-flow-shop.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=File:Emuera-flow-shop.png&amp;diff=39859"/>
		<updated>2020-04-13T20:47:47Z</updated>

		<summary type="html">&lt;p&gt;Maldito: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=File:Emuera-flow-savegame.png&amp;diff=39858</id>
		<title>File:Emuera-flow-savegame.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=File:Emuera-flow-savegame.png&amp;diff=39858"/>
		<updated>2020-04-13T20:47:25Z</updated>

		<summary type="html">&lt;p&gt;Maldito: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=File:Emuera-flow-loadgame.png&amp;diff=39857</id>
		<title>File:Emuera-flow-loadgame.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=File:Emuera-flow-loadgame.png&amp;diff=39857"/>
		<updated>2020-04-13T20:47:06Z</updated>

		<summary type="html">&lt;p&gt;Maldito: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=File:Emuera-flow-loaddataend1821.png&amp;diff=39856</id>
		<title>File:Emuera-flow-loaddataend1821.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=File:Emuera-flow-loaddataend1821.png&amp;diff=39856"/>
		<updated>2020-04-13T20:46:46Z</updated>

		<summary type="html">&lt;p&gt;Maldito: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=File:Emuera-flow-first.png&amp;diff=39855</id>
		<title>File:Emuera-flow-first.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=File:Emuera-flow-first.png&amp;diff=39855"/>
		<updated>2020-04-13T20:46:01Z</updated>

		<summary type="html">&lt;p&gt;Maldito: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=File:Emuera-flow-aftertrain.png&amp;diff=39854</id>
		<title>File:Emuera-flow-aftertrain.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=File:Emuera-flow-aftertrain.png&amp;diff=39854"/>
		<updated>2020-04-13T20:45:45Z</updated>

		<summary type="html">&lt;p&gt;Maldito: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=File:Emuera-flow-Ablup.gif&amp;diff=39853</id>
		<title>File:Emuera-flow-Ablup.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=File:Emuera-flow-Ablup.gif&amp;diff=39853"/>
		<updated>2020-04-13T20:37:58Z</updated>

		<summary type="html">&lt;p&gt;Maldito: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;please delete this. wiki sucks at resizing gifs for thumbs&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=File:Emuera-flow-ablup.png&amp;diff=39852</id>
		<title>File:Emuera-flow-ablup.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=File:Emuera-flow-ablup.png&amp;diff=39852"/>
		<updated>2020-04-13T20:36:18Z</updated>

		<summary type="html">&lt;p&gt;Maldito: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=File:Emuera-flow-Ablup.gif&amp;diff=39851</id>
		<title>File:Emuera-flow-Ablup.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=File:Emuera-flow-Ablup.gif&amp;diff=39851"/>
		<updated>2020-04-13T20:23:28Z</updated>

		<summary type="html">&lt;p&gt;Maldito: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/howto&amp;diff=39850</id>
		<title>Emuera/howto</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/howto&amp;diff=39850"/>
		<updated>2020-04-13T18:42:56Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Macros */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Operating Environment =&lt;br /&gt;
.NET Framework 2.0 environment is required.&amp;lt;BR&amp;gt;&lt;br /&gt;
Only Windows XP and Vista have been tested.&lt;br /&gt;
&lt;br /&gt;
If you get the error &amp;quot;Application could not be initialized properly&amp;quot; and cannot start, .NET Framework 2.0 is not installed.&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Download and install the .NET Framework 2.0 runtime from Microsoft's site.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
Please put EmueraXXX.exe in the same folder as eramaker.exe and start it.&amp;lt;BR&amp;gt;&lt;br /&gt;
(XXX is the number that represents the version. Also, depending on your environment, .exe may not be displayed)&amp;lt;BR&amp;gt;&lt;br /&gt;
If it does not start, please read the &amp;quot;System Requirements&amp;quot; section.&amp;lt;BR&amp;gt;&lt;br /&gt;
It generates emuera.config immediately after startup and emuera.log when an error occurs.&lt;br /&gt;
&lt;br /&gt;
The basic operation is almost the same as eramaker.exe, but it is possible to operate with the mouse.&amp;lt;BR&amp;gt;&lt;br /&gt;
Point and click on the choices (the numbers surrounded by []) with the mouse.&amp;lt;BR&amp;gt;&lt;br /&gt;
You can skip to the next choice by using escape key or right-clicking, and if you keep right-clicking to select a choice, you can skip to the next choice as soon as you select it.&amp;lt;BR&amp;gt;&lt;br /&gt;
In addition, you can use Ctrl+V to paste the contents of the clipboard, or (like eramaker.exe) press the up and down keys to recall the previous input.&lt;br /&gt;
&lt;br /&gt;
!You can also run the file that you have converted in EraMakerEx as it is.&amp;lt;BR&amp;gt;&lt;br /&gt;
However, this feature is disabled by default, so if you need it, please check the &amp;quot;Use _Rename.csv&amp;quot; checkbox in the help settings.&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
Emuera has a simple macro function.&amp;lt;BR&amp;gt;&lt;br /&gt;
For example, typing &amp;quot;\e&amp;quot; will skip to the next option, just as if you were using the Esc key or right-clicking.&amp;lt;BR&amp;gt;&lt;br /&gt;
If you type &amp;quot;\n&amp;quot;, it will separate the input and become the next input.&amp;lt;BR&amp;gt;&lt;br /&gt;
For example, if you enter &amp;quot;0\e\n1\e\n&amp;quot;, you will enter 0 and skip to the next option, and 1 and skip to the next option.&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, (~~)*n repeats the input in parentheses n times.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;quot;(0\e\n)*3&amp;quot; is the same thing as &amp;quot;0\e\n0\e\n0\e\n&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
You can stop the macro execution by pressing the Esc key while it is running.&lt;br /&gt;
&lt;br /&gt;
The macro you create can be saved in association with the F1-F12 key.&amp;lt;BR&amp;gt;&lt;br /&gt;
Press the F1 to F12 keys while holding down the Shift key to save the current input content in the F1 to F12 keys.&amp;lt;BR&amp;gt;&lt;br /&gt;
Then press F1-F12 keys to input the macro you saved.&amp;lt;BR&amp;gt;&lt;br /&gt;
The saved macro will be stored in macro.txt.&amp;lt;BR&amp;gt;&lt;br /&gt;
(The configuration option &amp;quot;Use keyboard macros&amp;quot; must be enabled.)&lt;br /&gt;
&lt;br /&gt;
In addition, you can switch between macro groups by holding down the Ctrl key and pressing the numeric 0-9 keys.&amp;lt;BR&amp;gt;&lt;br /&gt;
(Group 0 is selected by default when starting Emuera.)&amp;lt;BR&amp;gt;&lt;br /&gt;
F1 to F12 of the Group 0 and F1 to F12 of the Group 1 can store different macros, so more macros can be stored.&amp;lt;BR&amp;gt;&lt;br /&gt;
You can also change the group from the contextual menu that comes up when you right-click on the input box&lt;br /&gt;
&lt;br /&gt;
You can also edit macro.txt directly in a text editor&amp;lt;BR&amp;gt;&lt;br /&gt;
To the right of the colon of &amp;quot;マクロキーF○:&amp;quot; (Macro key F○), write the macro you want to input when you press the F○ key.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;quot;G×:マクロキーF○:&amp;quot; (G×:Macro key F○) is a macro for selecting group X.&amp;lt;BR&amp;gt;&lt;br /&gt;
If you change the message to the right of the column &amp;quot;グループ×:マクログループ×に設定&amp;quot; (Group x: Set to macro group x)&amp;quot;,&amp;lt;BR&amp;gt;&lt;br /&gt;
you can also change the text displayed when you switch to Group X.&lt;br /&gt;
&lt;br /&gt;
= Menu =&lt;br /&gt;
To use this feature, the &amp;quot;Use menu&amp;quot; item in the configuration must be enabled.&amp;lt;BR&amp;gt;&lt;br /&gt;
It is enabled by default.&lt;br /&gt;
== File ==&lt;br /&gt;
=== Restart ===&lt;br /&gt;
Restarts Emuera&amp;lt;BR&amp;gt;&lt;br /&gt;
Keep in mind that if you don't save, you will lose information about the running game.&lt;br /&gt;
=== Save Log ===&lt;br /&gt;
Saves the past log to a file with a name.&amp;lt;BR&amp;gt;&lt;br /&gt;
The maximum number of rows saved is the same as the number of rows in the history log.&lt;br /&gt;
=== Return to Title Screen ===&lt;br /&gt;
Back to the title.&amp;lt;BR&amp;gt;&lt;br /&gt;
Keep in mind that if you don't save, you will lose information about the running game.&lt;br /&gt;
=== Reload Code ===&lt;br /&gt;
Reread the .erb file with the game information intact.&amp;lt;BR&amp;gt;&lt;br /&gt;
For functions that have already been called, the previous code will be executed.&amp;lt;BR&amp;gt;&lt;br /&gt;
The previous code remains in the memory until the called function runs out, so it may run out of memory if it is used consecutively.&lt;br /&gt;
=== Exit ===&lt;br /&gt;
Quit Emuera&lt;br /&gt;
== Help ==&lt;br /&gt;
=== Settings ===&lt;br /&gt;
Configure the settings. See [[Emuera/config |config]] for configuration details.&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/EmuDic&amp;diff=39849</id>
		<title>Emuera/EmuDic</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/EmuDic&amp;diff=39849"/>
		<updated>2020-04-10T03:01:50Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Definitions (Preprocessor) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a summary of the terms used in this wiki.&amp;lt;/br&amp;gt;&lt;br /&gt;
I wrote it as a memo because the original coined words have increased with the extension of Emuera.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Startup Mode==&lt;br /&gt;
===Normal Mode===&lt;br /&gt;
This is the mode when Emuera is started normally.&amp;lt;/br&amp;gt;&lt;br /&gt;
You will be in this mode when you double-click on EmueraXXXX.exe to launch it.&lt;br /&gt;
&lt;br /&gt;
===Analysis Mode===&lt;br /&gt;
This is the mode when a file is passed as a command line argument.&amp;lt;/br&amp;gt;&lt;br /&gt;
It also becomes this mode when a file is drag and dropped into EmueraXXXX.exe.&amp;lt;/br&amp;gt;&lt;br /&gt;
In analysis mode, a grammar check is performed for dragged and dropped files.&amp;lt;/br&amp;gt;&lt;br /&gt;
This allows you to check for grammatical errors in the files you are developing.&amp;lt;/br&amp;gt;&lt;br /&gt;
However, you will need the CSV folder of the variant you plan to use to check the type of the elements string.&amp;lt;/br&amp;gt;&lt;br /&gt;
Just drag and drop the file into the EmueraXXXX.exe of the variant you plan to use.&amp;lt;/br&amp;gt;&lt;br /&gt;
In addition, from 1738g, when &amp;quot;Report is displayed when loading&amp;quot; is enabled in the analysis mode, it is possible to display the report when loading.&amp;lt;/br&amp;gt;&lt;br /&gt;
The list of functions used in each loaded ERB file is now displayed.&amp;lt;/br&amp;gt;&lt;br /&gt;
If you have too many functions, increase the number of lines in the log in your config.&lt;br /&gt;
&lt;br /&gt;
===Debug Mode===&lt;br /&gt;
This is the mode when the command is started by passing &amp;quot;-debug&amp;quot; as command line argument. See [[Emuera/debug|Debug Mode]] for details.&lt;br /&gt;
&lt;br /&gt;
==Windows / Dialogs==&lt;br /&gt;
===Main Window===&lt;br /&gt;
This is the first window that opens when you normally start up.&lt;br /&gt;
&lt;br /&gt;
===Main Console===&lt;br /&gt;
The name of the part of the Main Window that is used for input and output.&lt;br /&gt;
&lt;br /&gt;
===Debug Window===&lt;br /&gt;
This is a window that can be opened when started in Debug Mode.&lt;br /&gt;
&lt;br /&gt;
===Debug Console===&lt;br /&gt;
The name of the input/output part that is displayed when the &amp;quot;Console&amp;quot; tab is selected in the Debug Window.&lt;br /&gt;
&lt;br /&gt;
===Configuration Dialog===&lt;br /&gt;
It is a dialog that can be opened from the main window menu help or settings.&lt;br /&gt;
&lt;br /&gt;
===Clipboard Dialog===&lt;br /&gt;
It is a dialog that can be opened by Ctrl+C from the main console.&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
===Commands===&lt;br /&gt;
PRINT or WAIT, for example.&lt;br /&gt;
&lt;br /&gt;
===Functions===&lt;br /&gt;
It is a name that is defined in an ERB script with @~~ statements and called with a CALL instruction, etc.&amp;lt;/br&amp;gt;&lt;br /&gt;
Among the functions that can be used in expressions, those that define their names in sentences @~~ are included.&lt;br /&gt;
&lt;br /&gt;
===Event Functions===&lt;br /&gt;
A function whose name starts with &amp;quot;EVENT&amp;quot; and is called by the system.&amp;lt;/br&amp;gt;&lt;br /&gt;
If you define more than one, all of them will be called.&lt;br /&gt;
&lt;br /&gt;
===Preprocessor===&lt;br /&gt;
A line in a file in the ERB folder that is processed before any other instruction.&amp;lt;/br&amp;gt;&lt;br /&gt;
A line that begins with # or consists of a phrase enclosed in [].&amp;lt;/br&amp;gt;&lt;br /&gt;
Lines that begin with # are divided into attributes and definitions. Please see them for more information.&amp;lt;/br&amp;gt;&lt;br /&gt;
Lines consisting of words or phrases enclosed in [] represent special blocks.&amp;lt;/br&amp;gt;&lt;br /&gt;
See the page [[Emuera/exfunc#h3-E7.89.B9.E6.AE.8A.E3.81.AA.E3.83.96.E3.83.AD.E3.83.83.E3.82.AF.E3.82.92.E8.A1.A8.E3.81.99.E8.A1.8C|here]] for more information&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Property (Preprocessor)===&lt;br /&gt;
A preprocessor that determines the type and behavior of a function with a line beginning with a # specified for the function.&amp;lt;/br&amp;gt;&lt;br /&gt;
There are #PRI, #LATER, #SINGLE, and #ONLY to control the behavior of when the event function is executed,&amp;lt;/br&amp;gt;&lt;br /&gt;
and #FUNCTION and #FUNCTIONS to specify the type of the function in the expression.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Definitions (Preprocessor)===&lt;br /&gt;
A preprocessor that defines the name of a variable and its type on a line beginning with #.&amp;lt;/br&amp;gt;&lt;br /&gt;
Functions include #LOCALSIZE and #LOCALSSIZE to specify the number of elements in a LOCAL or LOCALS variable,&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#DIM&amp;lt;/nowiki&amp;gt; and #DIMS to define a variable, and #DEFINE to define a DEFINE macro in the ERH.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Functions that can be used in expressions===&lt;br /&gt;
It is a &amp;quot;function&amp;quot; that can be called from within an expression.&amp;lt;/br&amp;gt;&lt;br /&gt;
The &amp;quot;function&amp;quot; includes not only the above functions but also the built-in functions described below.&amp;lt;/br&amp;gt;&lt;br /&gt;
In many programming languages they are simply called &amp;quot;functions&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Functions in an Expression===&lt;br /&gt;
Abbreviation for a function that can be used in an expression.&amp;lt;/br&amp;gt;&lt;br /&gt;
It has nothing to do with inexpression functions (anonymous functions) or inline functions in programming languages.&lt;br /&gt;
&lt;br /&gt;
===組み込み関数===&lt;br /&gt;
式中関数のうち、Emueraにもともと組み込まれていて@～～文による定義なしで使えるものです。&amp;lt;/br&amp;gt;&lt;br /&gt;
ABS(X)やGETTIME()などのことです。&amp;lt;/br&amp;gt;&lt;br /&gt;
ややこしいですが、上記の関数の定義には該当しません。&amp;lt;/br&amp;gt;&lt;br /&gt;
「式中で使える命令」と考えるとわかりやすいかもしれません。&lt;br /&gt;
&lt;br /&gt;
===ユーザー定義関数===&lt;br /&gt;
ユーザーが定義した関数のことです。&amp;lt;/br&amp;gt;&lt;br /&gt;
ERBスクリプト中で@～～文で名称を定義してCALL命令などで呼び出すもののことです。&amp;lt;/br&amp;gt;&lt;br /&gt;
つまり上記の関数と同じ概念です。&lt;br /&gt;
&lt;br /&gt;
===#FUNCTION(S)関数===&lt;br /&gt;
@～～文で名称を定義し、#FUNCTION(S)属性を持つものです。&amp;lt;/br&amp;gt;&lt;br /&gt;
関数かつ式中関数である関数です。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==行・文・式==&lt;br /&gt;
===行===&lt;br /&gt;
改行コードから次の改行コードまでのことです。&amp;lt;/br&amp;gt;&lt;br /&gt;
プログラミング関連では物理行とも呼ばれます。&amp;lt;/br&amp;gt;&lt;br /&gt;
ややこしいことにエディター関係ではこれを論理行と呼ぶことが多いです。&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===文===&lt;br /&gt;
文あるいは論理行はEmueraにおける1つの処理単位です。&amp;lt;/br&amp;gt;&lt;br /&gt;
多くの文は、命令1つとその引数、あるいは変数と代入演算子と式からなります。&amp;lt;/br&amp;gt;&lt;br /&gt;
ERBでは1行につき1文という鉄則のため、行と文はほぼ同じ意味です。&amp;lt;/br&amp;gt;&lt;br /&gt;
当Wikiでも特に区別しません。&lt;br /&gt;
&lt;br /&gt;
===式===&lt;br /&gt;
変数、定数、式中関数、非代入演算子、括弧とその組み合わせです。&amp;lt;/br&amp;gt;&lt;br /&gt;
代入演算子は代入文の最初の演算子としてのみ使用可能で式中では使えません。&lt;br /&gt;
&lt;br /&gt;
===数式===&lt;br /&gt;
式の評価結果（演算結果）が数値になる式です。&amp;lt;/br&amp;gt;&lt;br /&gt;
例えば、A+B、STR == &amp;quot;あいう&amp;quot; などです。&lt;br /&gt;
&lt;br /&gt;
===文字列式===&lt;br /&gt;
式の評価結果（演算結果）が文字列になる式です。&amp;lt;/br&amp;gt;&lt;br /&gt;
例えば、STR + STR:1、&amp;quot;あ&amp;quot; * 10 などです。&lt;br /&gt;
&lt;br /&gt;
==変数==&lt;br /&gt;
===擬似変数===&lt;br /&gt;
RANDやCHARANUMのように変数のように記述できるが実態は変数ではないものです。&amp;lt;/br&amp;gt;&lt;br /&gt;
内部の動作としては式中関数に近い動きをしています。&lt;br /&gt;
&lt;br /&gt;
===配列変数===&lt;br /&gt;
複数の要素を持つ変数です。&amp;lt;/br&amp;gt;&lt;br /&gt;
配列変数の要素数は!VariableSize.csvで変更でき、通常はスクリプト中では増減しませんが、&amp;lt;/br&amp;gt;&lt;br /&gt;
一部ローカル変数については、スクリプト中で配列要素数を指定できます。&lt;br /&gt;
&lt;br /&gt;
===キャラクタ変数===&lt;br /&gt;
キャラクタの状態を記録する変数です。&amp;lt;/br&amp;gt;&lt;br /&gt;
C言語などのchar型変数とは無関係です。&amp;lt;/br&amp;gt;&lt;br /&gt;
その性質上、ADDCHARAやDELCHARAによるキャラの増減に伴い、要素数が増減します。&amp;lt;/br&amp;gt;&lt;br /&gt;
NO:TARGETなど、配列変数と同じ形式で要素を指定するためにeramakerの解説では配列変数の一つと扱われていますが、当Wikiではキャラクタ変数と配列変数とを区別しています。&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===二重配列変数===&lt;br /&gt;
キャラクタ変数かつ、配列変数である変数のことです。&amp;lt;/br&amp;gt;&lt;br /&gt;
CFLAG:TARGET:2のように、2つの引数をとります（省略可）。&amp;lt;/br&amp;gt;&lt;br /&gt;
キャラクタ変数なので第一引数はキャラNoを表わします。&amp;lt;/br&amp;gt;&lt;br /&gt;
また、キャラの増減に伴い第一次元の要素数が増減します。&amp;lt;/br&amp;gt;&lt;br /&gt;
第二次元の要素数は!VariableSize.csvでのみ変更でき、スクリプト中では増減しません。&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
当Wikiではeramakerの仕様の説明を除き、&amp;quot;二重配列&amp;quot;という用語を使用しません。&amp;lt;/br&amp;gt;&lt;br /&gt;
代わりに&amp;quot;キャラクタ変数かつ配列変数&amp;quot;のような呼び方をします。&lt;br /&gt;
&lt;br /&gt;
===多次元配列変数===&lt;br /&gt;
DITEMYTPEなどの二次元配列変数及びTAなどの三次元配列変数のことです。&amp;lt;/br&amp;gt;&lt;br /&gt;
DA:0:1やTA:1:2:3のように2つまたは3つの引数をとります。&amp;lt;/br&amp;gt;&lt;br /&gt;
多次元配列変数の要素数は!VariableSize.csvでのみ変更でき、スクリプト中で増減しません。&amp;lt;/br&amp;gt;&lt;br /&gt;
また、多次元配列変数の引数は省略できません。&lt;br /&gt;
&lt;br /&gt;
===キャラクタ多次元配列変数===&lt;br /&gt;
キャラクタ変数かつ、多次元配列変数である変数のことです。&amp;lt;/br&amp;gt;&lt;br /&gt;
CFLAG:TARGET:0:2のように、3つの引数をとります（省略不可）。&amp;lt;/br&amp;gt;&lt;br /&gt;
キャラクタ変数なので第一引数はキャラNoを表わします。&amp;lt;/br&amp;gt;&lt;br /&gt;
また、キャラの増減に伴い第一次元の要素数が増減します。&amp;lt;/br&amp;gt;&lt;br /&gt;
第二次元・第三次元の要素数は!VariableSize.csvでのみ変更でき、スクリプト中では増減しません。&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
ver1807現在、この変数に当てはまるものは[[Emuera/exvar#h5-CDFLAG|CDFLAG]]のみです。&amp;lt;/br&amp;gt;&lt;br /&gt;
詳しくは[[Emuera/exvar#h5-CDFLAG|CDFLAG]]をご覧ください。&lt;br /&gt;
&lt;br /&gt;
===ローカル変数===&lt;br /&gt;
LOCALやLOCALSやプライベート変数など、関数（関数名）ごとに用意される変数です。&amp;lt;/br&amp;gt;&lt;br /&gt;
プライベート変数については別項を参照してください。&amp;lt;/br&amp;gt;&lt;br /&gt;
プライベート変数以外のLOCALやLOCALSに関しては、実際にはいわゆるローカル変数ではなく、&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;quot;LOCAL@関数名&amp;quot;や&amp;quot;LOCALS@関数名&amp;quot;という名のpublic staticな変数です。&amp;lt;/br&amp;gt;&lt;br /&gt;
関数を抜けても値は保持され関数の外からでも代入、参照できてしまいます。&amp;lt;/br&amp;gt;&lt;br /&gt;
また、再帰呼び出しのように複数回呼んだ場合にも値が共有されてしまいます。&lt;br /&gt;
&lt;br /&gt;
===広域変数===&lt;br /&gt;
LOCALやLOCALSやプライベート変数などを除くほとんどの変数が属する、すべての関数で値が共有の変数です。&amp;lt;/br&amp;gt;&lt;br /&gt;
一般的なプログラミング言語におけるグローバル変数の概念ともいえます。&amp;lt;/br&amp;gt;&lt;br /&gt;
また、ERH中で#DIMもしくは#DIMSを用いることで広域変数を定義することができます。&amp;lt;/br&amp;gt;&lt;br /&gt;
詳しくは[[Emuera/ERH|ヘッダーファイル（ERH）]]のページを参照してください。&lt;br /&gt;
&lt;br /&gt;
===グローバル変数===&lt;br /&gt;
異なるセーブデータ間で値を共有することができる変数です。グローバル変数も広域変数に含まれます。&amp;lt;/br&amp;gt;&lt;br /&gt;
通常の変数とはセーブロードや初期化のタイミングが異なります。&amp;lt;/br&amp;gt;&lt;br /&gt;
Emueraのグローバル変数はこれは一般的なプログラミング言語におけるグローバル変数の概念とは無関係です。&lt;br /&gt;
&lt;br /&gt;
===プライベート変数===&lt;br /&gt;
関数（関数名）ごとに#DIMもしくは#DIMSによって定義される変数です。&amp;lt;/br&amp;gt;&lt;br /&gt;
これらもローカル変数でありますので、関数ごとに別個のものです。&amp;lt;/br&amp;gt;&lt;br /&gt;
ただし、同じローカル変数とされているLOCALなどとは異なり、@関数名などを使っての関数の外からの代入、参照はできません。&amp;lt;/br&amp;gt;&lt;br /&gt;
詳しくは[[Emuera/UserVars|ユーザー定義の変数]]のページを参照してください。&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/EmuDic&amp;diff=39848</id>
		<title>Emuera/EmuDic</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/EmuDic&amp;diff=39848"/>
		<updated>2020-04-10T03:01:14Z</updated>

		<summary type="html">&lt;p&gt;Maldito: translated half of the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a summary of the terms used in this wiki.&amp;lt;/br&amp;gt;&lt;br /&gt;
I wrote it as a memo because the original coined words have increased with the extension of Emuera.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Startup Mode==&lt;br /&gt;
===Normal Mode===&lt;br /&gt;
This is the mode when Emuera is started normally.&amp;lt;/br&amp;gt;&lt;br /&gt;
You will be in this mode when you double-click on EmueraXXXX.exe to launch it.&lt;br /&gt;
&lt;br /&gt;
===Analysis Mode===&lt;br /&gt;
This is the mode when a file is passed as a command line argument.&amp;lt;/br&amp;gt;&lt;br /&gt;
It also becomes this mode when a file is drag and dropped into EmueraXXXX.exe.&amp;lt;/br&amp;gt;&lt;br /&gt;
In analysis mode, a grammar check is performed for dragged and dropped files.&amp;lt;/br&amp;gt;&lt;br /&gt;
This allows you to check for grammatical errors in the files you are developing.&amp;lt;/br&amp;gt;&lt;br /&gt;
However, you will need the CSV folder of the variant you plan to use to check the type of the elements string.&amp;lt;/br&amp;gt;&lt;br /&gt;
Just drag and drop the file into the EmueraXXXX.exe of the variant you plan to use.&amp;lt;/br&amp;gt;&lt;br /&gt;
In addition, from 1738g, when &amp;quot;Report is displayed when loading&amp;quot; is enabled in the analysis mode, it is possible to display the report when loading.&amp;lt;/br&amp;gt;&lt;br /&gt;
The list of functions used in each loaded ERB file is now displayed.&amp;lt;/br&amp;gt;&lt;br /&gt;
If you have too many functions, increase the number of lines in the log in your config.&lt;br /&gt;
&lt;br /&gt;
===Debug Mode===&lt;br /&gt;
This is the mode when the command is started by passing &amp;quot;-debug&amp;quot; as command line argument. See [[Emuera/debug|Debug Mode]] for details.&lt;br /&gt;
&lt;br /&gt;
==Windows / Dialogs==&lt;br /&gt;
===Main Window===&lt;br /&gt;
This is the first window that opens when you normally start up.&lt;br /&gt;
&lt;br /&gt;
===Main Console===&lt;br /&gt;
The name of the part of the Main Window that is used for input and output.&lt;br /&gt;
&lt;br /&gt;
===Debug Window===&lt;br /&gt;
This is a window that can be opened when started in Debug Mode.&lt;br /&gt;
&lt;br /&gt;
===Debug Console===&lt;br /&gt;
The name of the input/output part that is displayed when the &amp;quot;Console&amp;quot; tab is selected in the Debug Window.&lt;br /&gt;
&lt;br /&gt;
===Configuration Dialog===&lt;br /&gt;
It is a dialog that can be opened from the main window menu help or settings.&lt;br /&gt;
&lt;br /&gt;
===Clipboard Dialog===&lt;br /&gt;
It is a dialog that can be opened by Ctrl+C from the main console.&lt;br /&gt;
&lt;br /&gt;
==Functions==&lt;br /&gt;
===Commands===&lt;br /&gt;
PRINT or WAIT, for example.&lt;br /&gt;
&lt;br /&gt;
===Functions===&lt;br /&gt;
It is a name that is defined in an ERB script with @~~ statements and called with a CALL instruction, etc.&amp;lt;/br&amp;gt;&lt;br /&gt;
Among the functions that can be used in expressions, those that define their names in sentences @~~ are included.&lt;br /&gt;
&lt;br /&gt;
===Event Functions===&lt;br /&gt;
A function whose name starts with &amp;quot;EVENT&amp;quot; and is called by the system.&amp;lt;/br&amp;gt;&lt;br /&gt;
If you define more than one, all of them will be called.&lt;br /&gt;
&lt;br /&gt;
===Preprocessor===&lt;br /&gt;
A line in a file in the ERB folder that is processed before any other instruction.&amp;lt;/br&amp;gt;&lt;br /&gt;
A line that begins with # or consists of a phrase enclosed in [].&amp;lt;/br&amp;gt;&lt;br /&gt;
Lines that begin with # are divided into attributes and definitions. Please see them for more information.&amp;lt;/br&amp;gt;&lt;br /&gt;
Lines consisting of words or phrases enclosed in [] represent special blocks.&amp;lt;/br&amp;gt;&lt;br /&gt;
See the page [[Emuera/exfunc#h3-E7.89.B9.E6.AE.8A.E3.81.AA.E3.83.96.E3.83.AD.E3.83.83.E3.82.AF.E3.82.92.E8.A1.A8.E3.81.99.E8.A1.8C|here]] for more information&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Property (Preprocessor)===&lt;br /&gt;
A preprocessor that determines the type and behavior of a function with a line beginning with a # specified for the function.&amp;lt;/br&amp;gt;&lt;br /&gt;
There are #PRI, #LATER, #SINGLE, and #ONLY to control the behavior of when the event function is executed,&amp;lt;/br&amp;gt;&lt;br /&gt;
and #FUNCTION and #FUNCTIONS to specify the type of the function in the expression.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Definitions (Preprocessor)===&lt;br /&gt;
A preprocessor that defines the name of a variable and its type on a line beginning with #.&amp;lt;/br&amp;gt;&lt;br /&gt;
Functions include #LOCALSIZE and #LOCALSSIZE to specify the number of elements in a LOCAL or LOCALS variable,&amp;lt;/br&amp;gt;&lt;br /&gt;
#DIM and #DIMS to define a variable, and #DEFINE to define a DEFINE macro in the ERH.&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Functions that can be used in expressions===&lt;br /&gt;
It is a &amp;quot;function&amp;quot; that can be called from within an expression.&amp;lt;/br&amp;gt;&lt;br /&gt;
The &amp;quot;function&amp;quot; includes not only the above functions but also the built-in functions described below.&amp;lt;/br&amp;gt;&lt;br /&gt;
In many programming languages they are simply called &amp;quot;functions&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Functions in an Expression===&lt;br /&gt;
Abbreviation for a function that can be used in an expression.&amp;lt;/br&amp;gt;&lt;br /&gt;
It has nothing to do with inexpression functions (anonymous functions) or inline functions in programming languages.&lt;br /&gt;
&lt;br /&gt;
===組み込み関数===&lt;br /&gt;
式中関数のうち、Emueraにもともと組み込まれていて@～～文による定義なしで使えるものです。&amp;lt;/br&amp;gt;&lt;br /&gt;
ABS(X)やGETTIME()などのことです。&amp;lt;/br&amp;gt;&lt;br /&gt;
ややこしいですが、上記の関数の定義には該当しません。&amp;lt;/br&amp;gt;&lt;br /&gt;
「式中で使える命令」と考えるとわかりやすいかもしれません。&lt;br /&gt;
&lt;br /&gt;
===ユーザー定義関数===&lt;br /&gt;
ユーザーが定義した関数のことです。&amp;lt;/br&amp;gt;&lt;br /&gt;
ERBスクリプト中で@～～文で名称を定義してCALL命令などで呼び出すもののことです。&amp;lt;/br&amp;gt;&lt;br /&gt;
つまり上記の関数と同じ概念です。&lt;br /&gt;
&lt;br /&gt;
===#FUNCTION(S)関数===&lt;br /&gt;
@～～文で名称を定義し、#FUNCTION(S)属性を持つものです。&amp;lt;/br&amp;gt;&lt;br /&gt;
関数かつ式中関数である関数です。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==行・文・式==&lt;br /&gt;
===行===&lt;br /&gt;
改行コードから次の改行コードまでのことです。&amp;lt;/br&amp;gt;&lt;br /&gt;
プログラミング関連では物理行とも呼ばれます。&amp;lt;/br&amp;gt;&lt;br /&gt;
ややこしいことにエディター関係ではこれを論理行と呼ぶことが多いです。&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===文===&lt;br /&gt;
文あるいは論理行はEmueraにおける1つの処理単位です。&amp;lt;/br&amp;gt;&lt;br /&gt;
多くの文は、命令1つとその引数、あるいは変数と代入演算子と式からなります。&amp;lt;/br&amp;gt;&lt;br /&gt;
ERBでは1行につき1文という鉄則のため、行と文はほぼ同じ意味です。&amp;lt;/br&amp;gt;&lt;br /&gt;
当Wikiでも特に区別しません。&lt;br /&gt;
&lt;br /&gt;
===式===&lt;br /&gt;
変数、定数、式中関数、非代入演算子、括弧とその組み合わせです。&amp;lt;/br&amp;gt;&lt;br /&gt;
代入演算子は代入文の最初の演算子としてのみ使用可能で式中では使えません。&lt;br /&gt;
&lt;br /&gt;
===数式===&lt;br /&gt;
式の評価結果（演算結果）が数値になる式です。&amp;lt;/br&amp;gt;&lt;br /&gt;
例えば、A+B、STR == &amp;quot;あいう&amp;quot; などです。&lt;br /&gt;
&lt;br /&gt;
===文字列式===&lt;br /&gt;
式の評価結果（演算結果）が文字列になる式です。&amp;lt;/br&amp;gt;&lt;br /&gt;
例えば、STR + STR:1、&amp;quot;あ&amp;quot; * 10 などです。&lt;br /&gt;
&lt;br /&gt;
==変数==&lt;br /&gt;
===擬似変数===&lt;br /&gt;
RANDやCHARANUMのように変数のように記述できるが実態は変数ではないものです。&amp;lt;/br&amp;gt;&lt;br /&gt;
内部の動作としては式中関数に近い動きをしています。&lt;br /&gt;
&lt;br /&gt;
===配列変数===&lt;br /&gt;
複数の要素を持つ変数です。&amp;lt;/br&amp;gt;&lt;br /&gt;
配列変数の要素数は!VariableSize.csvで変更でき、通常はスクリプト中では増減しませんが、&amp;lt;/br&amp;gt;&lt;br /&gt;
一部ローカル変数については、スクリプト中で配列要素数を指定できます。&lt;br /&gt;
&lt;br /&gt;
===キャラクタ変数===&lt;br /&gt;
キャラクタの状態を記録する変数です。&amp;lt;/br&amp;gt;&lt;br /&gt;
C言語などのchar型変数とは無関係です。&amp;lt;/br&amp;gt;&lt;br /&gt;
その性質上、ADDCHARAやDELCHARAによるキャラの増減に伴い、要素数が増減します。&amp;lt;/br&amp;gt;&lt;br /&gt;
NO:TARGETなど、配列変数と同じ形式で要素を指定するためにeramakerの解説では配列変数の一つと扱われていますが、当Wikiではキャラクタ変数と配列変数とを区別しています。&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===二重配列変数===&lt;br /&gt;
キャラクタ変数かつ、配列変数である変数のことです。&amp;lt;/br&amp;gt;&lt;br /&gt;
CFLAG:TARGET:2のように、2つの引数をとります（省略可）。&amp;lt;/br&amp;gt;&lt;br /&gt;
キャラクタ変数なので第一引数はキャラNoを表わします。&amp;lt;/br&amp;gt;&lt;br /&gt;
また、キャラの増減に伴い第一次元の要素数が増減します。&amp;lt;/br&amp;gt;&lt;br /&gt;
第二次元の要素数は!VariableSize.csvでのみ変更でき、スクリプト中では増減しません。&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
当Wikiではeramakerの仕様の説明を除き、&amp;quot;二重配列&amp;quot;という用語を使用しません。&amp;lt;/br&amp;gt;&lt;br /&gt;
代わりに&amp;quot;キャラクタ変数かつ配列変数&amp;quot;のような呼び方をします。&lt;br /&gt;
&lt;br /&gt;
===多次元配列変数===&lt;br /&gt;
DITEMYTPEなどの二次元配列変数及びTAなどの三次元配列変数のことです。&amp;lt;/br&amp;gt;&lt;br /&gt;
DA:0:1やTA:1:2:3のように2つまたは3つの引数をとります。&amp;lt;/br&amp;gt;&lt;br /&gt;
多次元配列変数の要素数は!VariableSize.csvでのみ変更でき、スクリプト中で増減しません。&amp;lt;/br&amp;gt;&lt;br /&gt;
また、多次元配列変数の引数は省略できません。&lt;br /&gt;
&lt;br /&gt;
===キャラクタ多次元配列変数===&lt;br /&gt;
キャラクタ変数かつ、多次元配列変数である変数のことです。&amp;lt;/br&amp;gt;&lt;br /&gt;
CFLAG:TARGET:0:2のように、3つの引数をとります（省略不可）。&amp;lt;/br&amp;gt;&lt;br /&gt;
キャラクタ変数なので第一引数はキャラNoを表わします。&amp;lt;/br&amp;gt;&lt;br /&gt;
また、キャラの増減に伴い第一次元の要素数が増減します。&amp;lt;/br&amp;gt;&lt;br /&gt;
第二次元・第三次元の要素数は!VariableSize.csvでのみ変更でき、スクリプト中では増減しません。&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
ver1807現在、この変数に当てはまるものは[[Emuera/exvar#h5-CDFLAG|CDFLAG]]のみです。&amp;lt;/br&amp;gt;&lt;br /&gt;
詳しくは[[Emuera/exvar#h5-CDFLAG|CDFLAG]]をご覧ください。&lt;br /&gt;
&lt;br /&gt;
===ローカル変数===&lt;br /&gt;
LOCALやLOCALSやプライベート変数など、関数（関数名）ごとに用意される変数です。&amp;lt;/br&amp;gt;&lt;br /&gt;
プライベート変数については別項を参照してください。&amp;lt;/br&amp;gt;&lt;br /&gt;
プライベート変数以外のLOCALやLOCALSに関しては、実際にはいわゆるローカル変数ではなく、&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;quot;LOCAL@関数名&amp;quot;や&amp;quot;LOCALS@関数名&amp;quot;という名のpublic staticな変数です。&amp;lt;/br&amp;gt;&lt;br /&gt;
関数を抜けても値は保持され関数の外からでも代入、参照できてしまいます。&amp;lt;/br&amp;gt;&lt;br /&gt;
また、再帰呼び出しのように複数回呼んだ場合にも値が共有されてしまいます。&lt;br /&gt;
&lt;br /&gt;
===広域変数===&lt;br /&gt;
LOCALやLOCALSやプライベート変数などを除くほとんどの変数が属する、すべての関数で値が共有の変数です。&amp;lt;/br&amp;gt;&lt;br /&gt;
一般的なプログラミング言語におけるグローバル変数の概念ともいえます。&amp;lt;/br&amp;gt;&lt;br /&gt;
また、ERH中で#DIMもしくは#DIMSを用いることで広域変数を定義することができます。&amp;lt;/br&amp;gt;&lt;br /&gt;
詳しくは[[Emuera/ERH|ヘッダーファイル（ERH）]]のページを参照してください。&lt;br /&gt;
&lt;br /&gt;
===グローバル変数===&lt;br /&gt;
異なるセーブデータ間で値を共有することができる変数です。グローバル変数も広域変数に含まれます。&amp;lt;/br&amp;gt;&lt;br /&gt;
通常の変数とはセーブロードや初期化のタイミングが異なります。&amp;lt;/br&amp;gt;&lt;br /&gt;
Emueraのグローバル変数はこれは一般的なプログラミング言語におけるグローバル変数の概念とは無関係です。&lt;br /&gt;
&lt;br /&gt;
===プライベート変数===&lt;br /&gt;
関数（関数名）ごとに#DIMもしくは#DIMSによって定義される変数です。&amp;lt;/br&amp;gt;&lt;br /&gt;
これらもローカル変数でありますので、関数ごとに別個のものです。&amp;lt;/br&amp;gt;&lt;br /&gt;
ただし、同じローカル変数とされているLOCALなどとは異なり、@関数名などを使っての関数の外からの代入、参照はできません。&amp;lt;/br&amp;gt;&lt;br /&gt;
詳しくは[[Emuera/UserVars|ユーザー定義の変数]]のページを参照してください。&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/config&amp;diff=39847</id>
		<title>Emuera/config</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/config&amp;diff=39847"/>
		<updated>2020-04-10T02:19:13Z</updated>

		<summary type="html">&lt;p&gt;Maldito: Page fully translated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Debug Commands ==&lt;br /&gt;
※Debug Commands are not available by default.&amp;lt;BR&amp;gt;&lt;br /&gt;
Check the &amp;quot;Use Debug Commands&amp;quot; checkbox in the settings if necessary.&lt;br /&gt;
&lt;br /&gt;
※This is a simple feature in versions without [[Emuera/debug|debug mode]].&amp;lt;BR&amp;gt;&lt;br /&gt;
For debugging the current version, it is recommended to start with [[Emuera/debug|debug mode]].&lt;br /&gt;
&lt;br /&gt;
When the script is running (in game), entering a string beginning with &amp;quot;@&amp;quot; will be accepted as Debug Commands.&amp;lt;BR&amp;gt;&lt;br /&gt;
Case insensitivity depends on &amp;quot;Ignore capitalization&amp;quot; in emuera.config.&lt;br /&gt;
&lt;br /&gt;
Debug Commands are specified in the same format as ERB.&amp;lt;BR&amp;gt;&lt;br /&gt;
For example,&lt;br /&gt;
&lt;br /&gt;
 @MONEY = 10000&lt;br /&gt;
 @PRINTV FLAG:200&lt;br /&gt;
 @PRINTFORM %NAME:MASTER%'s CFLAG(1) = {CFLAG:MASTER:1}&lt;br /&gt;
 @ADDCHARA 1&lt;br /&gt;
&lt;br /&gt;
It can be written as follows.&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, if you simply enter a variable or formula, those values will be output&amp;lt;BR&amp;gt;&lt;br /&gt;
(A space after @ is not required below.)&lt;br /&gt;
 @ FLAG:200&lt;br /&gt;
 @ @&amp;quot;%NAME:MASTER%'s CFLAG(1) = {CFLAG:MASTER:1}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
However, instructions that change the flow of the script, such as IF and CALL, &amp;lt;BR&amp;gt;and instructions that require input, such as INPUT and WAIT, cannot be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are some instructions that are not in the ERB.&lt;br /&gt;
&lt;br /&gt;
* @REBOOT&lt;br /&gt;
::Restart and re-read the emuera.config, csv and erb files.&lt;br /&gt;
* @OUTPUT&lt;br /&gt;
::Outputs the current log to emuera.log. If it already exists, it will be overwritten. &amp;lt;BR&amp;gt;This is the same behavior as the OUTPUTLOG instruction.&lt;br /&gt;
* @EXIT&lt;br /&gt;
::Quit Emuera, which is the same as the QUIT instruction.&lt;br /&gt;
* @CONFIG&lt;br /&gt;
::Open the configuration dialog.&lt;br /&gt;
* @DEBUG&lt;br /&gt;
::Open the debug dialog. This only works if you start with [[Emuera/debug|debug mode]].&lt;br /&gt;
&lt;br /&gt;
In case of other than the above, i.e. if a normal ERB instruction is executed, the name of MASTER will be forcibly changed to &amp;quot;CHEATER&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
This is a measure to prevent abuse, since Debug Commands also has the nature of being cheats.&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/howto&amp;diff=39846</id>
		<title>Emuera/howto</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/howto&amp;diff=39846"/>
		<updated>2020-04-10T02:11:01Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Operating Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Operating Environment =&lt;br /&gt;
.NET Framework 2.0 environment is required.&amp;lt;BR&amp;gt;&lt;br /&gt;
Only Windows XP and Vista have been tested.&lt;br /&gt;
&lt;br /&gt;
If you get the error &amp;quot;Application could not be initialized properly&amp;quot; and cannot start, .NET Framework 2.0 is not installed.&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Download and install the .NET Framework 2.0 runtime from Microsoft's site.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
Please put EmueraXXX.exe in the same folder as eramaker.exe and start it.&amp;lt;BR&amp;gt;&lt;br /&gt;
(XXX is the number that represents the version. Also, depending on your environment, .exe may not be displayed)&amp;lt;BR&amp;gt;&lt;br /&gt;
If it does not start, please read the &amp;quot;System Requirements&amp;quot; section.&amp;lt;BR&amp;gt;&lt;br /&gt;
It generates emuera.config immediately after startup and emuera.log when an error occurs.&lt;br /&gt;
&lt;br /&gt;
The basic operation is almost the same as eramaker.exe, but it is possible to operate with the mouse.&amp;lt;BR&amp;gt;&lt;br /&gt;
Point and click on the choices (the numbers surrounded by []) with the mouse.&amp;lt;BR&amp;gt;&lt;br /&gt;
You can skip to the next choice by using escape key or right-clicking, and if you keep right-clicking to select a choice, you can skip to the next choice as soon as you select it.&amp;lt;BR&amp;gt;&lt;br /&gt;
In addition, you can use Ctrl+V to paste the contents of the clipboard, or (like eramaker.exe) press the up and down keys to recall the previous input.&lt;br /&gt;
&lt;br /&gt;
!You can also run the file that you have converted in EraMakerEx as it is.&amp;lt;BR&amp;gt;&lt;br /&gt;
However, this feature is disabled by default, so if you need it, please check the &amp;quot;Use _Rename.csv&amp;quot; checkbox in the help settings.&lt;br /&gt;
&lt;br /&gt;
== Macro ==&lt;br /&gt;
Emuera has a simple macro function.&amp;lt;BR&amp;gt;&lt;br /&gt;
For example, typing &amp;quot;\e&amp;quot; will skip to the next option, just as if you were using the Esc key or right-clicking.&amp;lt;BR&amp;gt;&lt;br /&gt;
If you type &amp;quot;\n&amp;quot;, it will separate the input and become the next input.&amp;lt;BR&amp;gt;&lt;br /&gt;
For example, if you enter &amp;quot;0\e\n1\e\n&amp;quot;, you will enter 0 and skip to the next option, and 1 and skip to the next option.&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, (~~)*n repeats the input in parentheses n times.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;quot;(0\e\n)*3&amp;quot; is the same thing as &amp;quot;0\e\n0\e\n0\e\n&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
You can stop the macro execution by pressing the Esc key while it is running.&lt;br /&gt;
&lt;br /&gt;
The macro you create can be saved in association with the F1-F12 key.&amp;lt;BR&amp;gt;&lt;br /&gt;
Press the F1 to F12 keys while holding down the Shift key to save the current input content in the F1 to F12 keys.&amp;lt;BR&amp;gt;&lt;br /&gt;
Then press F1-F12 keys to input the macro you saved.&amp;lt;BR&amp;gt;&lt;br /&gt;
The saved macro will be stored in macro.txt.&amp;lt;BR&amp;gt;&lt;br /&gt;
(The configuration option &amp;quot;Use keyboard macros&amp;quot; must be enabled.)&lt;br /&gt;
&lt;br /&gt;
In addition, you can switch between macro groups by holding down the Ctrl key and pressing the numeric 0-9 keys.&amp;lt;BR&amp;gt;&lt;br /&gt;
(Group 0 is selected by default when starting Emuera.)&amp;lt;BR&amp;gt;&lt;br /&gt;
F1 to F12 of the Group 0 and F1 to F12 of the Group 1 can store different macros, so more macros can be stored.&amp;lt;BR&amp;gt;&lt;br /&gt;
You can also change the group from the contextual menu that comes up when you right-click on the input box&lt;br /&gt;
&lt;br /&gt;
You can also edit macro.txt directly in a text editor&amp;lt;BR&amp;gt;&lt;br /&gt;
To the right of the colon of &amp;quot;マクロキーF○:&amp;quot; (Macro key F○), write the macro you want to input when you press the F○ key.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;quot;G×:マクロキーF○:&amp;quot; (G×:Macro key F○) is a macro for selecting group X.&amp;lt;BR&amp;gt;&lt;br /&gt;
If you change the message to the right of the column &amp;quot;グループ×:マクログループ×に設定&amp;quot; (Group x: Set to macro group x)&amp;quot;,&amp;lt;BR&amp;gt;&lt;br /&gt;
you can also change the text displayed when you switch to Group X.&lt;br /&gt;
&lt;br /&gt;
= Menu =&lt;br /&gt;
To use this feature, the &amp;quot;Use menu&amp;quot; item in the configuration must be enabled.&amp;lt;BR&amp;gt;&lt;br /&gt;
It is enabled by default.&lt;br /&gt;
== File ==&lt;br /&gt;
=== Restart ===&lt;br /&gt;
Restarts Emuera&amp;lt;BR&amp;gt;&lt;br /&gt;
Keep in mind that if you don't save, you will lose information about the running game.&lt;br /&gt;
=== Save Log ===&lt;br /&gt;
Saves the past log to a file with a name.&amp;lt;BR&amp;gt;&lt;br /&gt;
The maximum number of rows saved is the same as the number of rows in the history log.&lt;br /&gt;
=== Return to Title Screen ===&lt;br /&gt;
Back to the title.&amp;lt;BR&amp;gt;&lt;br /&gt;
Keep in mind that if you don't save, you will lose information about the running game.&lt;br /&gt;
=== Reload Code ===&lt;br /&gt;
Reread the .erb file with the game information intact.&amp;lt;BR&amp;gt;&lt;br /&gt;
For functions that have already been called, the previous code will be executed.&amp;lt;BR&amp;gt;&lt;br /&gt;
The previous code remains in the memory until the called function runs out, so it may run out of memory if it is used consecutively.&lt;br /&gt;
=== Exit ===&lt;br /&gt;
Quit Emuera&lt;br /&gt;
== Help ==&lt;br /&gt;
=== Settings ===&lt;br /&gt;
Configure the settings. See [[Emuera/config |config]] for configuration details.&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/howto&amp;diff=39845</id>
		<title>Emuera/howto</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/howto&amp;diff=39845"/>
		<updated>2020-04-10T02:10:04Z</updated>

		<summary type="html">&lt;p&gt;Maldito: Page full translation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 動作環境 =&lt;br /&gt;
.NET Framework 2.0 environment is required.&amp;lt;BR&amp;gt;&lt;br /&gt;
Only Windows XP and Vista have been tested.&lt;br /&gt;
&lt;br /&gt;
If you get the error &amp;quot;Application could not be initialized properly&amp;quot; and cannot start, .NET Framework 2.0 is not installed.&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Download and install the .NET Framework 2.0 runtime from Microsoft's site.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
Please put EmueraXXX.exe in the same folder as eramaker.exe and start it.&amp;lt;BR&amp;gt;&lt;br /&gt;
(XXX is the number that represents the version. Also, depending on your environment, .exe may not be displayed)&amp;lt;BR&amp;gt;&lt;br /&gt;
If it does not start, please read the &amp;quot;System Requirements&amp;quot; section.&amp;lt;BR&amp;gt;&lt;br /&gt;
It generates emuera.config immediately after startup and emuera.log when an error occurs.&lt;br /&gt;
&lt;br /&gt;
The basic operation is almost the same as eramaker.exe, but it is possible to operate with the mouse.&amp;lt;BR&amp;gt;&lt;br /&gt;
Point and click on the choices (the numbers surrounded by []) with the mouse.&amp;lt;BR&amp;gt;&lt;br /&gt;
You can skip to the next choice by using escape key or right-clicking, and if you keep right-clicking to select a choice, you can skip to the next choice as soon as you select it.&amp;lt;BR&amp;gt;&lt;br /&gt;
In addition, you can use Ctrl+V to paste the contents of the clipboard, or (like eramaker.exe) press the up and down keys to recall the previous input.&lt;br /&gt;
&lt;br /&gt;
!You can also run the file that you have converted in EraMakerEx as it is.&amp;lt;BR&amp;gt;&lt;br /&gt;
However, this feature is disabled by default, so if you need it, please check the &amp;quot;Use _Rename.csv&amp;quot; checkbox in the help settings.&lt;br /&gt;
&lt;br /&gt;
== Macro ==&lt;br /&gt;
Emuera has a simple macro function.&amp;lt;BR&amp;gt;&lt;br /&gt;
For example, typing &amp;quot;\e&amp;quot; will skip to the next option, just as if you were using the Esc key or right-clicking.&amp;lt;BR&amp;gt;&lt;br /&gt;
If you type &amp;quot;\n&amp;quot;, it will separate the input and become the next input.&amp;lt;BR&amp;gt;&lt;br /&gt;
For example, if you enter &amp;quot;0\e\n1\e\n&amp;quot;, you will enter 0 and skip to the next option, and 1 and skip to the next option.&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, (~~)*n repeats the input in parentheses n times.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;quot;(0\e\n)*3&amp;quot; is the same thing as &amp;quot;0\e\n0\e\n0\e\n&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
You can stop the macro execution by pressing the Esc key while it is running.&lt;br /&gt;
&lt;br /&gt;
The macro you create can be saved in association with the F1-F12 key.&amp;lt;BR&amp;gt;&lt;br /&gt;
Press the F1 to F12 keys while holding down the Shift key to save the current input content in the F1 to F12 keys.&amp;lt;BR&amp;gt;&lt;br /&gt;
Then press F1-F12 keys to input the macro you saved.&amp;lt;BR&amp;gt;&lt;br /&gt;
The saved macro will be stored in macro.txt.&amp;lt;BR&amp;gt;&lt;br /&gt;
(The configuration option &amp;quot;Use keyboard macros&amp;quot; must be enabled.)&lt;br /&gt;
&lt;br /&gt;
In addition, you can switch between macro groups by holding down the Ctrl key and pressing the numeric 0-9 keys.&amp;lt;BR&amp;gt;&lt;br /&gt;
(Group 0 is selected by default when starting Emuera.)&amp;lt;BR&amp;gt;&lt;br /&gt;
F1 to F12 of the Group 0 and F1 to F12 of the Group 1 can store different macros, so more macros can be stored.&amp;lt;BR&amp;gt;&lt;br /&gt;
You can also change the group from the contextual menu that comes up when you right-click on the input box&lt;br /&gt;
&lt;br /&gt;
You can also edit macro.txt directly in a text editor&amp;lt;BR&amp;gt;&lt;br /&gt;
To the right of the colon of &amp;quot;マクロキーF○:&amp;quot; (Macro key F○), write the macro you want to input when you press the F○ key.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;quot;G×:マクロキーF○:&amp;quot; (G×:Macro key F○) is a macro for selecting group X.&amp;lt;BR&amp;gt;&lt;br /&gt;
If you change the message to the right of the column &amp;quot;グループ×:マクログループ×に設定&amp;quot; (Group x: Set to macro group x)&amp;quot;,&amp;lt;BR&amp;gt;&lt;br /&gt;
you can also change the text displayed when you switch to Group X.&lt;br /&gt;
&lt;br /&gt;
= Menu =&lt;br /&gt;
To use this feature, the &amp;quot;Use menu&amp;quot; item in the configuration must be enabled.&amp;lt;BR&amp;gt;&lt;br /&gt;
It is enabled by default.&lt;br /&gt;
== File ==&lt;br /&gt;
=== Restart ===&lt;br /&gt;
Restarts Emuera&amp;lt;BR&amp;gt;&lt;br /&gt;
Keep in mind that if you don't save, you will lose information about the running game.&lt;br /&gt;
=== Save Log ===&lt;br /&gt;
Saves the past log to a file with a name.&amp;lt;BR&amp;gt;&lt;br /&gt;
The maximum number of rows saved is the same as the number of rows in the history log.&lt;br /&gt;
=== Return to Title Screen ===&lt;br /&gt;
Back to the title.&amp;lt;BR&amp;gt;&lt;br /&gt;
Keep in mind that if you don't save, you will lose information about the running game.&lt;br /&gt;
=== Reload Code ===&lt;br /&gt;
Reread the .erb file with the game information intact.&amp;lt;BR&amp;gt;&lt;br /&gt;
For functions that have already been called, the previous code will be executed.&amp;lt;BR&amp;gt;&lt;br /&gt;
The previous code remains in the memory until the called function runs out, so it may run out of memory if it is used consecutively.&lt;br /&gt;
=== Exit ===&lt;br /&gt;
Quit Emuera&lt;br /&gt;
== Help ==&lt;br /&gt;
=== Settings ===&lt;br /&gt;
Configure the settings. See [[Emuera/config |config]] for configuration details.&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/eramavar&amp;diff=39844</id>
		<title>Emuera/eramavar</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/eramavar&amp;diff=39844"/>
		<updated>2020-04-10T01:49:53Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Update History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;B&amp;gt;eramaker era basic variable list (provisional version)&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
I think &amp;lt;em&amp;gt;&amp;lt;b&amp;gt;it's hard to get a picture just by looking at this file.&amp;lt;/b&amp;gt;&amp;lt;/em&amp;gt; It is easier to understand if you play the sample game first, and then look at the ERB files of the sample game while looking at it.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Basic Variables==&lt;br /&gt;
===Generic Variables===&lt;br /&gt;
====A-Z====&lt;br /&gt;
* The variable is a single letter of the alphabet, from A to Z.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can use it as a disposable data container as you like. However, it is not suitable for long time data storage because it is not known where it is rewritten.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====COUNT====&lt;br /&gt;
* This variable counts the number of times it is repeated when using the REPEAT instruction.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Do not rewrite the contents of COUNT between REPEAT and REND, as this may lead to a malfunction.&amp;lt;BR&amp;gt;&lt;br /&gt;
====RESULT====&lt;br /&gt;
* A variable that records various results.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Since you don't know where it could be rewritten, it is preferable to move the data to another variable unless it is used on the spot.&amp;lt;BR&amp;gt;&lt;br /&gt;
====RESULTS (String Variable)====&lt;br /&gt;
* A string variable that records various results.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Since you don't know where it could be rewritten, it is preferable to move the data to another variable unless it is used on the spot.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Basic Information Variables===&lt;br /&gt;
====DAY====&lt;br /&gt;
* Records the date. Feel free to handle it as you wish.&amp;lt;BR&amp;gt;&lt;br /&gt;
====TIME====&lt;br /&gt;
* Records the time. Feel free to handle it as you wish.&amp;lt;BR&amp;gt;&lt;br /&gt;
====MONEY====&lt;br /&gt;
* Keeps track of your money. The program will refer to it when you shop, so don't rewrite it unless you've gained or lost money.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Basic Training Information Variables===&lt;br /&gt;
====MASTER====&lt;br /&gt;
* It refers to the protagonist's [[#enroll|Character Registration Number]], which may be different from the number specified in CharaXX.csv. It is usually 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
====TARGET====&lt;br /&gt;
* This is the [[#enroll|Character Registration Number]] of the trainee, which may be different from the number specified in CharaXX.csv.&amp;lt;BR&amp;gt;&lt;br /&gt;
====ASSI====&lt;br /&gt;
* It refers to the assistant's [[#enroll|Character Registration Number]], which may be different from the number specified in CharaXX.csv.&amp;lt;BR&amp;gt;&lt;br /&gt;
====PLAYER====&lt;br /&gt;
* Refers to the [[#enroll|Character Registration Number]] of the person doing the training. Normally it should match MASTER or ASSI, but be aware that the number may be different from the one specified in CharaXX.csv.&amp;lt;BR&amp;gt;&lt;br /&gt;
====CHARANUM====&lt;br /&gt;
* The number of characters currently registered. Includes the protagonist. This variable cannot be changed by the user.&amp;lt;BR&amp;gt;&lt;br /&gt;
====ASSIPLAY====&lt;br /&gt;
* If it's a 1, the assistant is doing the training, if it's a 0, it's not.&amp;lt;BR&amp;gt;&lt;br /&gt;
====SELECTCOM====&lt;br /&gt;
* The selected command is the same command number as the one registered in TRAIN.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====PREVCOM====&lt;br /&gt;
* This is the previous selected command. This is used for example for penalties for executing the same command in succession.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Training Variables===&lt;br /&gt;
====LOSEBASE (Array, 0-999)====&lt;br /&gt;
* It's how much of the basic parameters are lost by the training command. Normally, LOSEBASE:0 is for physical exhaustion and LOSEBASE:1 is for energy exhaustion.&amp;lt;BR&amp;gt;&lt;br /&gt;
====UP (Array, 0-999)====&lt;br /&gt;
* This is how much the training parameters are raised by the training command. A in UP:A is the parameter number specified in PALAM.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====DOWN (Array, 0-999)====&lt;br /&gt;
* This is how much the training parameters are lowered by the training command. A of DOWN:A is the parameter number specified in PALAM.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====PALAMLV (Array, 0-999)====&lt;br /&gt;
* This is the boundary value of the level of the parameter in training. If the training parameters exceed this threshold, the number of gems you receive after training will increase dramatically.&amp;lt;BR&amp;gt;&lt;br /&gt;
====EXPLV (Array, 0-999)====&lt;br /&gt;
* This is the boundary value for the level of experience. If your experience exceeds this threshold, your training may be more effective (especially with V and A experience).&amp;lt;BR&amp;gt;&lt;br /&gt;
====EJAC====&lt;br /&gt;
* This is a temporary variable that is used for ejaculation checks. It's an independent variable for readability, but it's really just a data entry.&lt;br /&gt;
===Flags===&lt;br /&gt;
====FLAG (Array, 0-9999)====&lt;br /&gt;
* Record the various states of the game. In the sample game, FLAG:0 is used to determine if a character in training has been rested or not. It's also frequently used to see if an event has occurred or not.&amp;lt;BR&amp;gt;&lt;br /&gt;
====TFLAG (Array, 0-999)====&lt;br /&gt;
* Record the various states of the game. Think of it as a Temporary Flag, or Training Flag, which is used in the sample game to record how you ejaculated and whether you performed the service training. In short, it is a flag for temporary use rather than FLAG.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Character Data===&lt;br /&gt;
* Most of the character data is double-arranged and is accessed as EXP:1:2 (looking at the second experience of the first character).&amp;lt;BR&amp;gt;&lt;br /&gt;
* However, it can also be written as EXP:0. In this case, it will be interpreted as EXP:TARGET:0. In other words, you don't need to write TARGET: to access the data of the character being trained.&amp;lt;BR&amp;gt;&lt;br /&gt;
====NO (Array, 0-99)====&lt;br /&gt;
* Character number. Since it is not a double array, it is accessed as NO:TARGET or NO:ASSI.&amp;lt;BR&amp;gt;&lt;br /&gt;
====BASE (Double Array, 0-99)====&lt;br /&gt;
* These are the basic parameters of the character. In the sample game, BASE:0 represents health, BASE:1 represents energy and BASE:2 represents ejaculation gauge.&amp;lt;BR&amp;gt;&lt;br /&gt;
====MAXBASE (Double Array, 0-99)====&lt;br /&gt;
* This is the maximum value of the basic parameters of the character.&amp;lt;BR&amp;gt;&lt;br /&gt;
====ABL (Double Array, 0-99)====&lt;br /&gt;
* The ability of your character, which is accessed by the ability number registered in ABL.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====TALENT (Double Array, 0-999)====&lt;br /&gt;
* The qualities of the character. It is accessed by the quality number registered in TALENT.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====EXP (Double Array, 0-99)====&lt;br /&gt;
* The experience of the character, which is accessed by the experience number registered in EXP.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====MARK (Double Array, 0-99)====&lt;br /&gt;
* This is the engraving of the character. It is accessed by the mark number registered in MARK.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====RELATION (Double Array, 0-99)====&lt;br /&gt;
* RELATION:TARGET:3 indicates the compatibility of the character in training with the character number 3. Note that I'm not referring to the compatibility with the characters with [[#enroll|Character Registration Number]] 3.&amp;lt;BR&amp;gt;&lt;br /&gt;
====JUEL (Double Array, 0-199)====&lt;br /&gt;
* This is the gems that character has. Access by the parameter number registered in PALAM.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====CFLAG (Double Array, 0-999)====&lt;br /&gt;
* This is a flag for each character. You can record a variety of data for each character. In the sample game, a character whose CFLAG:0 is 1 is considered an SP character.&amp;lt;BR&amp;gt;&lt;br /&gt;
====ISASSI (Array, 0-99)====&lt;br /&gt;
* If it's a 0, it's not an assistant. If it's a 1, it's an assistant. Since it is not a double array, it is accessed as ISASSI:TARGET or ISASSI:ASSI.&amp;lt;BR&amp;gt;&lt;br /&gt;
====NAME (Array, 0-99) (String Variable)====&lt;br /&gt;
* The name of the character. Since it is not a double array, it is accessed as NAME:TARGET or NAME:ASSI.&amp;lt;BR&amp;gt;&lt;br /&gt;
====CALLNAME (Array, 0-99) (String Variable)====&lt;br /&gt;
* This is the name of the character. Since it is not a double array, it is accessed as CALLNAME:TARGET or CALLNAME:ASSI.&amp;lt;BR&amp;gt;&lt;br /&gt;
====TEQUIP (Double Array, 0-99)====&lt;br /&gt;
* This is the item that Chara is wearing. You can use this when you're putting in vibrators during training, but you can also use it for character enhancement items. In the sample game, we also used it to judge the use of aphrodisiacs.&amp;lt;BR&amp;gt;&lt;br /&gt;
====PALAM (Double Array, 0-99)====&lt;br /&gt;
* Character's training parameters, accessed by the parameter numbers registered in PALAM.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====STAIN (Double Array, 0-99)====&lt;br /&gt;
* This is the &amp;quot;dirt&amp;quot; generated by training. It changes when you ejaculate from a blow job or have anal sex. In the sample game, STAIN:0 refers to the mouth, STAIN:1 to the hand, STAIN:2 to the penis, STAIN:3 to the vagina, and STAIN:4 to the anal stain. See [[#stain|here]] for details of the stain notation.&amp;lt;BR&amp;gt;&lt;br /&gt;
====EX (Double Array, 0-99)====&lt;br /&gt;
* This is how many times climaxed during this training. In the sample game, EX:0 is a C climax, EX:1 is a V climax, and EX:2 is an A climax.&amp;lt;BR&amp;gt;&lt;br /&gt;
====SOURCE (Double Array, 0-99)====&lt;br /&gt;
* This is the training source generated by executing commands. If you look at the COMxx.ERB and SOURCE.ERB, you will see the flow from the training source to the UP of the training parameters.&amp;lt;BR&amp;gt;&lt;br /&gt;
====NOWEX (Double Array, 0-99)====&lt;br /&gt;
* This is how many times climaxed during this command alone. In the sample game, NOWEX:0 is a C climax, NOWEX:1 is a V climax, and NOWEX:2 is an A climax.&amp;lt;BR&amp;gt;&lt;br /&gt;
====GOTJUEL (Double Array, 0-99)====&lt;br /&gt;
* This is the gems received after this training, which is accessed by the parameter number registered in PALAM.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Item Data===&lt;br /&gt;
====ITEM (Array, 0-99)====&lt;br /&gt;
* This is the number of each item you have, accessed by the item number registered in ITEM.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====ITEMSALES (Array, 0-99)====&lt;br /&gt;
* It' s whether the item is available in the shop or not. If it's a 1, it's for sale. If it's a 0, it's not for sale. The item number registered in ITEM.CSV is used to access it.&amp;lt;BR&amp;gt;&lt;br /&gt;
====BOUGHT====&lt;br /&gt;
* Here's what items were bought. You can use this if you want to delete the item you just bought at @EVENTBUY from the shop.&amp;lt;BR&amp;gt;&lt;br /&gt;
====NOITEM====&lt;br /&gt;
* If NO ITEM is specified in GAMEBASE.CSV, it will be set to 1. In this case, the execution of the command will ignore the presence or absence of the item.&amp;lt;BR&amp;gt;&lt;br /&gt;
====PBAND====&lt;br /&gt;
* This is the item number for the strap-on. It is set to 4 by default. Strap-on is treated as an independent variable because it is often involved in training decisions.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Name Data===&lt;br /&gt;
====ABLNAME (Array, 0-99) (String Variable)====&lt;br /&gt;
* The name of the ability, accessed by the parameter number registered in ABL.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====TALENTNAME (Array, 0-99) (String Variable)====&lt;br /&gt;
* The name of the property, accessed by the parameter number registered in TALENT.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====EXPNAME (Array, 0-99) (String Variable)====&lt;br /&gt;
* The name of the experience, which is accessed by the parameter number registered in EXP.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====MARKNAME (Array, 0-99) (String Variable)====&lt;br /&gt;
* The name of the mark, accessed by the parameter number registered in MARK.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====PALAMNAME (Array, 0-199) (String Variable)====&lt;br /&gt;
* The name of the parameter while training, which is accessed by the parameter number registered in PALAM.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====ITEMNAME (Array, 0-99) (String Variable)====&lt;br /&gt;
* The name of the item, which is accessed by the parameter number registered in ITEM.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===String Data===&lt;br /&gt;
====STR (Array, 0-19999) (String Variable)====&lt;br /&gt;
* String data. The data of STR.CSV is stored here. Note that modifying this variable will not save it.&amp;lt;BR&amp;gt;&lt;br /&gt;
====SAVESTR (Array, 0-99) (String Variable)====&lt;br /&gt;
* String data. The data recorded here will be saved when you save it. You can store the string variables you want to use all the time here.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Other Data===&lt;br /&gt;
====RAND (Pseudo-Array)====&lt;br /&gt;
* This is a special variable that returns a random number. For example: PRINTV RAND:10 randomly displays a number from 0 to 9.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Remember that the return value is an integer from 0 to A-1 in the case of RAND:A.&lt;br /&gt;
==&amp;lt;span id=&amp;quot;enroll&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Character Registration Number==&lt;br /&gt;
===The difference between a character registration number and a character number===&lt;br /&gt;
====Unembodied Character Data====&lt;br /&gt;
* The number (番号) specified in CharaXX.CSV. That's the &amp;quot;character number&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
* However, not all of the characters in CharaXX.CSV are real at the start of the game. They only become real when the ADDCHARA command is called.&amp;lt;BR&amp;gt;&lt;br /&gt;
====Registering a character====&lt;br /&gt;
* At the start of the game, the only character who is an entity is the main character. And the main character's &amp;quot;character registration number&amp;quot; is 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Let's assume that a character whose character number is 5 in ADDCHARA is registered here. The &amp;quot;character number&amp;quot; of this character is 5, but the &amp;quot;registration number of the character&amp;quot; is 1 because it is next to the main character. If you add one more character with a character number of 7, the registration number of that character is 2.&amp;lt;BR&amp;gt;&lt;br /&gt;
====Removing a character====&lt;br /&gt;
* Now, let's assume that the DELCHARA command deleted a character whose registration number is 1. Then, the &amp;quot;registration number&amp;quot; of the character with &amp;quot;character number 7&amp;quot; added later will become 1.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Keep in mind that the currently registered characters are given a &amp;quot;character registration number&amp;quot; from 0 without any gaps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;stain&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;About Stain==&lt;br /&gt;
===Specifics of the stain data===&lt;br /&gt;
====Types of Stains====&lt;br /&gt;
* The stain data is managed by STAIN. STAIN:TARGET:0 means the dirt of the mouth of the character being trained.&amp;lt;BR&amp;gt;&lt;br /&gt;
* However, there are many different types of stains that can be considered here. If you give a blow job, you'll get a smear of semen, and if you give a cunnilingus, you'll get a smear of love juice.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The sample game assumes four types of dirt: vagina, penis, semen, and anus.&lt;br /&gt;
====How to describe the stain data====&lt;br /&gt;
* Now, the numbers 1, 2, 4, and 8 have been assigned to this stain. In other words, if there are anal and seminal stains, 4+8 is 12, if there are love semen and seminal stains, 1+4 is 5, and so on.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If we express it this way, one variable can handle the four types of stains well. However, &amp;quot;added semen stains in the mouth&amp;quot; and &amp;quot;determining whether there is love semen stains in the mouth&amp;quot; do not work well with the conventional +-*/%.&amp;lt;BR&amp;gt;&lt;br /&gt;
====How to get the stain data====&lt;br /&gt;
* So, we use the &amp;amp; and | operators. It's similar to &amp;amp;&amp;amp; (and) and || (or), but it's used alone.&amp;lt;BR&amp;gt;&lt;br /&gt;
* For example, let's say that STAIN:TARGET:0 is 12. If we call STAIN:TARGET:0 &amp;amp; 4 here, only the part of 4 will be extracted. That is, STAIN:TARGET:0 &amp;amp; 4 == 4.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Next, let's assume that STAIN:TARGET:0 is 1+2+8=11. If we call STAIN:TARGET:0 &amp;amp; 4 here, only the part of 4 will be extracted. That is, STAIN:TARGET:0 &amp;amp; 4 == 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
* This way, you can easily tell which stains are present or not.&lt;br /&gt;
====How to add stain data====&lt;br /&gt;
* Next, let's say that STAIN:TARGET:0 is 1+4=5. If we type STAIN:TARGET:0 | 2, the 2 part will be added. That is, STAIN:TARGET:0 | 2 == 7.&amp;lt;BR&amp;gt;&lt;br /&gt;
* And let's say that STAIN:TARGET:0 is 1+2+4=7. If we set STAIN:TARGET:0 | 2 here, the 2 part will be added. But part 2 is already included, so it doesn't change. That is, STAIN:TARGET:0 | 2 == 7.&amp;lt;BR&amp;gt;&lt;br /&gt;
* It is also possible to write STAIN:TARGET:0 |= 2.&amp;lt;BR&amp;gt;&lt;br /&gt;
* This way, additional dirt can be treated without worrying about whether it already contains dirt or not.&lt;br /&gt;
==Update History==&lt;br /&gt;
* 09/04/2020 Page fully translated.&lt;br /&gt;
* 2006/05/05 Provisional version released.&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/eramaerb&amp;diff=39843</id>
		<title>Emuera/eramaerb</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/eramaerb&amp;diff=39843"/>
		<updated>2020-04-10T01:49:37Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Update History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;B&amp;gt;eramaker ERB file format (provisional)&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
I think &amp;lt;em&amp;gt;&amp;lt;b&amp;gt;it's hard to get a picture just by looking at this file.&amp;lt;/b&amp;gt;&amp;lt;/em&amp;gt; It is easier to understand if you play the sample game first, and then look at the ERB files of the sample game while looking at it.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Basic Info==&lt;br /&gt;
===About the ERB file===&lt;br /&gt;
* Put a folder named ERB directly under eramaker.exe, and put ERB file in it.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can use any file name as long as the extension is .ERB&amp;lt;BR&amp;gt;&lt;br /&gt;
* Please edit it with a text editor such as Notepad.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to write an ERB file===&lt;br /&gt;
====Comments &amp;amp; Spaces====&lt;br /&gt;
In all ERB files,&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* If the first character in the first column is a ; (semicolon), the line is ignored. Empty lines are also ignored.&amp;lt;BR&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Don't put a semicolon at the end of a line, or a comment after it.&amp;lt;/del&amp;gt; Both ways can be done in Emuera.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Any number of spaces or tabs at the beginning of a line will be ignored.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
;Setting up the money&lt;br /&gt;
MONEY = 500&lt;br /&gt;
;Setting the time&lt;br /&gt;
DAY = 10&lt;br /&gt;
TIME = 1&lt;br /&gt;
;Game start&lt;br /&gt;
PRINT What do we do now?&lt;br /&gt;
&lt;br /&gt;
; Also CORRECT in Emuera&lt;br /&gt;
; The ; at the end of MONEY = 500 is not needed&lt;br /&gt;
; MISTAKE in eramaker&lt;br /&gt;
&lt;br /&gt;
MONEY = 500;&lt;br /&gt;
TIME = 5; (Start on Day 5)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Half-width input====&lt;br /&gt;
Please use half-width characters when inputting numbers, instructions, variable names, function names, etc.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
PRINT Let the game begin.&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
ＭＯＮＥＹ ＝　500&lt;br /&gt;
ＰＲＩＮＴ Let the game begin.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Inputting a string====&lt;br /&gt;
It doesn't work properly if you enclose a string with &amp;quot;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
PRINT The day is over...&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
PRINT &amp;quot;The day is over...&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====It' s all in one line====&lt;br /&gt;
Even when writing long instructions, don't split them into more than two lines.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
PRINT Nayuki's body was sensitive and she had a lot of experience, so she was happy even if it was a little rough. Even though she denies it with her mouth, Nayuki is getting more and more promiscuous. But the peculiar circumstance of her being asleep made me hesitant to make a bolder move.&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
PRINT &lt;br /&gt;
Nayuki's body was sensitive and she had a lot of experience, so she was happy even if it was a little rough. Even though she denies it with her mouth, Nayuki is getting more and more promiscuous. But the peculiar circumstance of her being asleep made me hesitant to make a bolder move.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Variables and Instructions==&lt;br /&gt;
===About the variables===&lt;br /&gt;
&lt;br /&gt;
In training SLG, the change of parameters is vital. Therefore, it is necessary to learn how to use &amp;quot;variables&amp;quot; that can store data and perform calculations such as adding and multiplying data.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
====Putting a number in a variable====&lt;br /&gt;
Use = (equal). Please enter it in half-width characters. Before and after = is separated by a half-size space or a tab.&amp;lt;BR&amp;gt;&lt;br /&gt;
The numbers that can be used in eramaker are basically integers. Do not enter a decimal point.&amp;lt;b&amp;gt;*&amp;lt;/b&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
MONEY ＝ 500&lt;br /&gt;
MONEY=500&lt;br /&gt;
MONEY = 3.14&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;*Adendum:&amp;lt;/b&amp;gt; Emuera has since added more number literal types. Check [[Emuera/exvar#Constants_(Literals)|Constants (Literals)]] for more information.&lt;br /&gt;
&lt;br /&gt;
====Putting a calculated number into a variable====&lt;br /&gt;
Use = in the same way. Note that * is for multiplication, / is for division, and % is for the rest of the division.&amp;lt;BR&amp;gt;&lt;br /&gt;
Fractions are rounded down when the result is a decimal.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
;set MONEY to 74&lt;br /&gt;
MONEY = 15+34+25&lt;br /&gt;
;set MONEY to 650&lt;br /&gt;
MONEY = 150+(100-50)*10&lt;br /&gt;
;set MONEY to 3&lt;br /&gt;
MONEY = 10/3&lt;br /&gt;
;set MONEY to TIME multiplied by 10&lt;br /&gt;
MONEY = TIME*10&lt;br /&gt;
;If DAY is 0,1,2... then MONEY becomes 0,10,20... and returns to 0 when it exceeds 7.&lt;br /&gt;
MONEY = DAY%7*10&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
MONEY = 500×10÷4&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Add or multiply variables====&lt;br /&gt;
Use +=, -=, *=, /=, %=.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
MONEY = 100&lt;br /&gt;
TIME = 12&lt;br /&gt;
;set MONEY to 150&lt;br /&gt;
MONEY += 50&lt;br /&gt;
;set MONEY to 750&lt;br /&gt;
MONEY *= 7-2&lt;br /&gt;
;set MONEY to 80&lt;br /&gt;
MONEY -= 670&lt;br /&gt;
;set MONEY to 8&lt;br /&gt;
MONEY %= TIME&lt;br /&gt;
;set MONEY to 1&lt;br /&gt;
MONEY /= TIME-4&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====About Arrays====&lt;br /&gt;
* The variables can be accessed as an &amp;quot;array&amp;quot;. An &amp;quot;array&amp;quot; is for managing multiple data with the variable of the same name.&amp;lt;BR&amp;gt;&lt;br /&gt;
* To access the array, use : (colon). Please enter it in half-width characters. Don't put any spaces in between.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The number that can be put after the array is at least 0. The maximum value is determined by the variable. See the list for more information.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also put a variable instead of a number after the array. However, you can't put an array after an array.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
A = 35&lt;br /&gt;
;Set the FLAG to a value&lt;br /&gt;
FLAG:0 = 0&lt;br /&gt;
FLAG:2 = 10&lt;br /&gt;
FLAG:35 = 440&lt;br /&gt;
;Calculate with FLAG&lt;br /&gt;
FLAG:A += 100/FLAG:2&lt;br /&gt;
FLAG:2 *= FLAG:A&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
FLAG：0 = 10&lt;br /&gt;
FLAG : 52 = 1000&lt;br /&gt;
FLAG:FLAG:20 = 10000&lt;br /&gt;
FLAG:91881816 = 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====About the Double Sequence====&lt;br /&gt;
* Exceptionally, some variables can be accessed using two colons. Usually variables related to your character's data.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Use (variable name):(character number):(variable number) to access it.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
A = 2&lt;br /&gt;
;Makes the 5th character's 0th ability LV3.&lt;br /&gt;
ABL:5:0 = 3&lt;br /&gt;
;A (2nd) character's first experience is increased by 1.&lt;br /&gt;
EXP:A:1 += 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Display the variable on the screen====&lt;br /&gt;
* The easiest way to do this is to use the PRINTV and PRINTVL commands. We will discuss the instruction in more detail later.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
A = 2&lt;br /&gt;
PRINTV A&lt;br /&gt;
A = 30&lt;br /&gt;
PRINTVL A&lt;br /&gt;
B = 400&lt;br /&gt;
PRINTVL B&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
230&lt;br /&gt;
400&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====About String Variables====&lt;br /&gt;
* Regular variables can only handle integers, but there are string variables that can handle strings. However, the features are limited.&amp;lt;BR&amp;gt;&lt;br /&gt;
* To display a string variable on the screen, use the PRINTS or PRINTSL instruction.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
STR:0 = aiueo&lt;br /&gt;
PRINTSL STR:0&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
;You can't add it with +=&lt;br /&gt;
STR:0 += ueo&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Variable List====&lt;br /&gt;
* See [[Emuera/eramavar|here]].&lt;br /&gt;
&lt;br /&gt;
===About Instructions (Basic)===&lt;br /&gt;
Instructions can be used to display characters on the screen and to make conditional judgments.&lt;br /&gt;
====How to write an instruction====&lt;br /&gt;
* The basic writing style is (instruction name) (instruction content). Separate (instruction name) and (instruction content) with a half-size space or tab. &amp;lt;BR&amp;gt;&lt;br /&gt;
* If there is no (instruction content), start a new line as it is.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
PRINT This is a test.&lt;br /&gt;
SIF 3 == 1+2&lt;br /&gt;
   PRINT Obviously.&lt;br /&gt;
WAIT&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
PRINTThis is a test.。&lt;br /&gt;
;wait for input&lt;br /&gt;
WAIT 0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Displaying Text====&lt;br /&gt;
* PRINT is an instruction to display text; PRINTL displays text and starts a new line; PRINTW displays text and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The PRINTV command displays the content of a variable, the PRINTVL command displays the content of the variable and makes a new line, the PRINTVW command displays the content of the variable and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINTS is an instruction that displays the contents of a string variable, PRINTSL displays the contents of the string variable and starts a new line, PRINTSW displays the contents of the string variable and waits for input, and PRINTSW displays the contents of the string variable and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINTFORM can display a combination of characters, variables, and string variables; PRINTFORML can do the same and break a new line; PRINTFORMW can do the same and wait for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINTFORMS is the same as PRINTFORM. PRINTFORMSL is the same as PRINTFORM, but with a new line, PRINTFORMSW is the same as PRINTFORM and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
(If you are waiting for input with a W at the end of the command, press Enter to move on, and the line will eventually be broken.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
NAME:0 = Sato&lt;br /&gt;
PRINT The money is &lt;br /&gt;
PRINTV MONEY&lt;br /&gt;
PRINTL  yen.&lt;br /&gt;
PRINT My name is &lt;br /&gt;
PRINTS NAME:0&lt;br /&gt;
PRINTL .&lt;br /&gt;
PRINTFORML To repeat, the name is %NAME:0% and the money is {MONEY} yen.&lt;br /&gt;
PRINTFORMW If you get 1000 yen and pay 600 yen, you're left with {MONEY+1000-600} yen.&lt;br /&gt;
STR:0 = If you multiply that money by five, it's {(MONEY+1000-600)*5} yen.&lt;br /&gt;
PRINTFORMSW STR:0&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
The money is 500 yen.&lt;br /&gt;
My name is Sato.&lt;br /&gt;
To repeat, the name is Sato and the money is 500 yen.&lt;br /&gt;
If you get 1000 yen and pay 600 yen, you're left with 900 yen.&lt;br /&gt;
If you multiply that money by five, it's 4500 yen.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Making Conditional Decisions====&lt;br /&gt;
&lt;br /&gt;
* The quickest way to understand conditional decisions is to look at &amp;lt;b&amp;gt;examples&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* SIF executes the next line if the conditional expression is not 0 (if true). If it is 0 (if not true), it skips the next line.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If the conditional expression is not 0 (if satisfied), IF executes from the next line until ELSE, ELSEIF, or ENDIF are encountered. (If it's ELSE, it will be executed from the next line until it receives an ENDIF. If the conditional expression is satisfied in ELSEIF, it executes the next lines until it encounters ELSE, ELSEIF, or ENDIF. If the conditional expression is not satisfied, skip until ELSE, ELSEIF, or ENDIF, and repeat)&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
A = 1&lt;br /&gt;
B = 2&lt;br /&gt;
C = 4&lt;br /&gt;
&lt;br /&gt;
SIF A == 1&lt;br /&gt;
   PRINTL Test 1&lt;br /&gt;
SIF B != 1&lt;br /&gt;
   PRINTL Test 2&lt;br /&gt;
SIF C &amp;lt; 5&lt;br /&gt;
   PRINTL Test 3&lt;br /&gt;
IF A+B &amp;gt; 2&lt;br /&gt;
   IF C &amp;gt;= 6&lt;br /&gt;
      PRINTL Test 4&lt;br /&gt;
   ELSE&lt;br /&gt;
      PRINTL Test 5&lt;br /&gt;
   ENDIF&lt;br /&gt;
   IF A == 1 &amp;amp;&amp;amp; B == 3&lt;br /&gt;
      PRINTL Test 6&lt;br /&gt;
   ELSEIF A == 1 || B == 3&lt;br /&gt;
      PRINTL Test 7&lt;br /&gt;
   ELSEIF A &amp;gt; 1 || (B &amp;gt; 2 &amp;amp;&amp;amp; C &amp;gt; 2)&lt;br /&gt;
      PRINTL Test 8&lt;br /&gt;
   ENDIF&lt;br /&gt;
ELSEIF A+B == 2&lt;br /&gt;
   PRINTL Test 9&lt;br /&gt;
ELSE&lt;br /&gt;
   PRINTL Test 10&lt;br /&gt;
ENDIF&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
Test 1&lt;br /&gt;
Test 2&lt;br /&gt;
Test 3&lt;br /&gt;
Test 5&lt;br /&gt;
Test 7&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Use == for &amp;quot;equal&amp;quot; and != for &amp;quot;not equal&amp;quot;, &amp;gt; for &amp;quot;left is greater than&amp;quot;, &amp;gt;= for &amp;quot;left is greater or equal than right&amp;quot;, &amp;lt; for &amp;quot;left is less than&amp;quot;, and &amp;lt;= for &amp;quot;left is less or equal than right&amp;quot;. All fields must be typed in half-width characters.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Use &amp;amp;&amp;amp; for &amp;quot;and&amp;quot; and || for &amp;quot;or&amp;quot;. All fields must be typed in half-width characters.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also use parentheses to describe complex conditions.&lt;br /&gt;
&lt;br /&gt;
====Input and wait for input====&lt;br /&gt;
* Use WAIT to wait for input, e.g. to display a sentence.&amp;lt;BR&amp;gt;&lt;br /&gt;
（※Usually something like PRINTW is used instead. It makes it easier to see because stuff can be expressed with fewer lines）&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you want the player to input an integer, use INPUT. The result of the input is stored in the RESULT variable.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you want the player to input a string, use INPUTS. The result of the input is stored in RESULTS variable.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
PRINT Data entry begins.&lt;br /&gt;
WAIT&lt;br /&gt;
PRINTL Please enter your age.&lt;br /&gt;
INPUT&lt;br /&gt;
PRINTL Please enter your name.&lt;br /&gt;
INPUTS&lt;br /&gt;
PRINTFORML %RESULTS% is {RESULT} years old, isn't it?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Repetition and GOTO====&lt;br /&gt;
* If you want to repeat the same instruction, use REPEAT, which is repeated until REND is found. The number of times it is repeated is stored in the COUNT.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Please note that you cannot create a REPEAT inside a REPEAT.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you use CONTINUE on the way from REPEAT to REND, it will go back to where REPEAT was. If you use BREAK, it will stop repeating and skip to the next line after REND.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you want to move to another place at once, you can use GOTO. To use GOTO, you need to register a &amp;quot;label&amp;quot; with $.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Example 1&lt;br /&gt;
&lt;br /&gt;
REPEAT 10&lt;br /&gt;
   PRINT AIU&lt;br /&gt;
REND&lt;br /&gt;
;Line break by writing 0 characters in PRINTL&lt;br /&gt;
PRINTL &lt;br /&gt;
REPEAT 5&lt;br /&gt;
   PRINTFORML Score: {COUNT*5}&lt;br /&gt;
REND&lt;br /&gt;
&lt;br /&gt;
; Results Of Example 1&lt;br /&gt;
&lt;br /&gt;
AIUAIUAIUAIUAIUAIUAIUAIUAIUAIU&lt;br /&gt;
Score: 0&lt;br /&gt;
Score: 5&lt;br /&gt;
Score: 10&lt;br /&gt;
Score: 15&lt;br /&gt;
Score: 20&lt;br /&gt;
&lt;br /&gt;
; Example 2&lt;br /&gt;
&lt;br /&gt;
MONEY = 300&lt;br /&gt;
REPEAT 5&lt;br /&gt;
    SIF MONEY &amp;lt;= COUNT*100&lt;br /&gt;
        BREAK&lt;br /&gt;
    PRINTFORML That's more money than {COUNT*100} yen.&lt;br /&gt;
REND&lt;br /&gt;
REPEAT 5&lt;br /&gt;
    SIF MONEY == COUNT*100&lt;br /&gt;
        CONTINUE&lt;br /&gt;
    PRINTFORML The holdings are not {COUNT*100} yen.&lt;br /&gt;
REND&lt;br /&gt;
&lt;br /&gt;
; Results Of Example 2&lt;br /&gt;
&lt;br /&gt;
That's more money than 0 yen.&lt;br /&gt;
That's more money than 100 yen.&lt;br /&gt;
That's more money than 200 yen.&lt;br /&gt;
The holdings are not 0 yen.&lt;br /&gt;
The holdings are not 100 yen.&lt;br /&gt;
The holdings are not 200 yen.&lt;br /&gt;
The holdings are not 400 yen.&lt;br /&gt;
&lt;br /&gt;
; Example 3&lt;br /&gt;
&lt;br /&gt;
$INPUT_LOOP&lt;br /&gt;
PRINTL Enter a number from 0 to 9.&lt;br /&gt;
INPUT&lt;br /&gt;
SIF RESULT &amp;lt; 0 || RESULT &amp;gt; 9&lt;br /&gt;
    GOTO INPUT_LOOP&lt;br /&gt;
PRINTFORML {RESULT} has been entered.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====About Functions====&lt;br /&gt;
* It's hard to understand your program when you're writing it from start to finish.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can use &amp;quot;functions&amp;quot; to break them down into parts and make them easier to understand.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Functions are registered using @. After @, write the name of the function using the alphabet and _ (underscore). Please enter the function name in half-width characters.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The first function called in the game should be named EVENTFIRST (more on this later).&amp;lt;BR&amp;gt;&lt;br /&gt;
* To move to another function, use JUMP.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you want to move to another function and then resume from the original position when the function is finished, use CALL.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you use RETURN in a function called by CALL, you can terminate the function in the middle. At that time, the number specified by RETURN is stored in RESULT. If the function exits without using RETURN, RESULT will be set to 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you use RESTART, you start from the beginning of the function.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
@EVENTFIRST&lt;br /&gt;
PRINTW Game start.&lt;br /&gt;
&lt;br /&gt;
CALL OPENING&lt;br /&gt;
PRINTFORMW The opening result was {RESULT}.&lt;br /&gt;
CALL GAME_MAIN&lt;br /&gt;
PRINTFORMW The result of the game was {RESULT}.&lt;br /&gt;
JUMP ENDING&lt;br /&gt;
&lt;br /&gt;
PRINTL You can't see this part because I used JUMP.&lt;br /&gt;
&lt;br /&gt;
@OPENING&lt;br /&gt;
PRINTW Doing Opening.&lt;br /&gt;
RETURN 25&lt;br /&gt;
&lt;br /&gt;
@GAME_MAIN&lt;br /&gt;
PRINTW We're in the game.&lt;br /&gt;
PRINTL Ending without RETURN.&lt;br /&gt;
&lt;br /&gt;
@ENDING&lt;br /&gt;
PRINTW Doing Ending.&lt;br /&gt;
RESTART&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
Game start.&lt;br /&gt;
Doing Opening.&lt;br /&gt;
The opening result was 25.&lt;br /&gt;
We're in the game.&lt;br /&gt;
Ending without RETURN.&lt;br /&gt;
The result of the game was 0.&lt;br /&gt;
Doing Ending.&lt;br /&gt;
Doing Ending.&lt;br /&gt;
Doing Ending.&lt;br /&gt;
Doing Ending.&lt;br /&gt;
Doing Ending.&lt;br /&gt;
.......(keeps on infinitely)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Other Basic Instructions====&lt;br /&gt;
* Use QUIT to quit the game.&amp;lt;BR&amp;gt;&lt;br /&gt;
* With DRAWLINE, you can draw a line ---- from the left edge of the screen to the right edge of the screen.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can use TIMES to multiply by decimals. eramaker basically treats numbers as integers, so if you want to intertwine decimals, you can use this instruction: TIMES (variable),(fractional).&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you use BAR, you can display a graph like [*****....], if you use BARL, you can use it in the form of a new line. BARL is used the same way as BAR (variable),(maximum value),(length).&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
DRAWLINE&lt;br /&gt;
BARL MONEY , 1000 , 20&lt;br /&gt;
PRINTFORMW I have {MONEY} yen.&lt;br /&gt;
DRAWLINE&lt;br /&gt;
TIMES MONEY , 1.25&lt;br /&gt;
BARL MONEY , 1000 , 20&lt;br /&gt;
PRINTFORMW It is now {MONEY} yen. End the game.&lt;br /&gt;
QUIT&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------&lt;br /&gt;
[**********..........]&lt;br /&gt;
I have 500 yen.&lt;br /&gt;
---------------------------------------------------------------------&lt;br /&gt;
[************........]&lt;br /&gt;
It is now 625 yen. End the game.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Instructions (for Training)===&lt;br /&gt;
* The eramaker has a number of special instructions to use for training.&lt;br /&gt;
&lt;br /&gt;
====Display of training data====&lt;br /&gt;
* PRINT_ABL displays the character's abilities.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_TALENT displays the character's qualities.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_MARK displays the character's marks.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_EXP displays the experiences of the character.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_PALAM displays the character's training parameters.&amp;lt;BR&amp;gt;&lt;br /&gt;
* When using the above instructions, specify which character's data you want to display. For example, PRINT_ABL 0 will usually show the ability of the protagonist.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_ITEM displays the items in your possession.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_SHOPITEM displays the items available in the shop.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* UPCHECK shows the change in training parameters as a result of training commands.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
====Character Management====&lt;br /&gt;
* ADDCHARA adds a character. If you want to add the character number 3, you do it with ADDCHARA 3.&amp;lt;BR&amp;gt;&lt;br /&gt;
* ADDSPCHARA adds an SP character. If you want to add an SP character with character number 3, use ADDSPCHARA 3.&amp;lt;BR&amp;gt;&lt;br /&gt;
(An SP character is a character whose character flag number 0 is 1)&amp;lt;BR&amp;gt;&lt;br /&gt;
* DELCHARA removes characters added by ADDCHARA and others.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
;The name of the character with character number 0 is Hiroyuki, the main character.&lt;br /&gt;
;Suppose the name of the character number 3 is Tomoko, the name of the character number 5 is Remy, and the name of the character number 6 is Kotone.&lt;br /&gt;
PRINTFORML The number of characters you have now is {CHARANUM}.&lt;br /&gt;
&lt;br /&gt;
ADDCHARA 3&lt;br /&gt;
ADDCHARA 5&lt;br /&gt;
ADDCHARA 6&lt;br /&gt;
PRINTFORML The number of characters you have now is {CHARANUM}.&lt;br /&gt;
REPEAT CHARANUM&lt;br /&gt;
   PRINTFORML At number {COUNT} is %NAME:COUNT%。&lt;br /&gt;
REND&lt;br /&gt;
DELCHARA 2&lt;br /&gt;
PRINTFORML The number of characters you have now is {CHARANUM}.&lt;br /&gt;
REPEAT CHARANUM&lt;br /&gt;
   PRINTFORML At number {COUNT} is %NAME:COUNT%。&lt;br /&gt;
REND&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
The number of characters you have now is 1.&lt;br /&gt;
The number of characters you have now is 4.&lt;br /&gt;
At number 0 is Hiroyuki。&lt;br /&gt;
At number 1 is Tomoko。&lt;br /&gt;
At number 2 is Remy。&lt;br /&gt;
At number 3 is Kotone。&lt;br /&gt;
The number of characters you have now is 3.&lt;br /&gt;
At number 0 is Hiroyuki。&lt;br /&gt;
At number 1 is Tomoko。&lt;br /&gt;
At number 2 is Kotone。&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Save-Related====&lt;br /&gt;
* SAVEGAME calls the save screen and LOADGAME calls the load screen. You must be a SHOP to be able to call them.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PUTFORM can only be used with a special function called @SAVEINFO, which can be written in the same format as PRINTFORM to give an overview of the saved data. It's a good idea to write data such as what day it is, how good your characters are, and which characters you're training.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====BEGIN====&lt;br /&gt;
* BEGIN progresses the game by invoking various system instructions.&amp;lt;BR&amp;gt;&lt;br /&gt;
* When BEGIN is called, the running function is terminated, and even if it is called from somewhere by CALL, it does not return to the original function.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN TRAIN will start training.&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN AFTERTRAIN is no longer training.&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN ABLUP invokes the Ability Up screen.&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN TURNEND ends its turn.&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN SHOP calls the SHOP.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Update History==&lt;br /&gt;
* 09/04/2020　Page fully translated.&lt;br /&gt;
* 2006/05/05　Provisional version released.&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/eramaerc&amp;diff=39842</id>
		<title>Emuera/eramaerc</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/eramaerc&amp;diff=39842"/>
		<updated>2020-04-10T01:49:19Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Update History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;B&amp;gt;eramaker era basic Structure (provisional version)&amp;lt;/B&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I'm sure &amp;lt;em&amp;gt;&amp;lt;b&amp;gt;it's hard to get a picture just by looking at this file&amp;lt;/b&amp;gt;&amp;lt;/em&amp;gt;. It is easier to understand if you play the sample game first, and then look at the ERB files of the sample game while you have it open.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Basic Information==&lt;br /&gt;
===When opening eramaker===&lt;br /&gt;
* In eramaker, when you start the game, the title screen will appear and you will be presented with a choice between 「New Game」 and 「Load Game」. If you choose 「New Game」, the function EVENTFIRST will be called in the ERB file.&amp;lt;BR&amp;gt;&lt;br /&gt;
* When the EVENTFIRST is over, the game stops. So you need to call SHOP, TRAIN, etc with BEGIN.&amp;lt;BR&amp;gt;&lt;br /&gt;
* See the beginning of the SYSTEM.ERB in the sample game.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SHOP===&lt;br /&gt;
====Entering SHOP====&lt;br /&gt;
* When you enter SHOP, a function called @EVENTSHOP (if it exists) is called. This is an [[#Event Function]].&amp;lt;BR&amp;gt;&lt;br /&gt;
* After that, the function @SHOW_SHOP will be called. This is where you can display basic information such as the date and characters being trained, use PRINT_SHOPITEM for sales, and special actions such as saving and loading.&amp;lt;BR&amp;gt;&lt;br /&gt;
====Command Selection in SHOP====&lt;br /&gt;
* If a number between 0 to 99 is chosen, it means to buy an item. If any other number is chosen, the function @USERSHOP is called. The selected number is stored in RESULT and should be processed accordingly.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Both are easy to understand if you look at the sample game's SHOP.ERB.&amp;lt;BR&amp;gt;&lt;br /&gt;
====Purchasing====&lt;br /&gt;
* When you buy an item, the function @EVENTBUY is called (if it exists). This is an [[#Event Function]].&amp;lt;BR&amp;gt;&lt;br /&gt;
(Items bought disappear from the shop lineup, so it's a good idea if you want to do something here)&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TRAIN===&lt;br /&gt;
====Entering TRAIN====&lt;br /&gt;
* When you enter TRAIN, the function @EVENTTRAIN (if it exists) is called. This is an [[#Event Function]].&amp;lt;BR&amp;gt;&lt;br /&gt;
* After that, the function @SHOW_STATUS is called. This is where you can display basic information such as the date and characters being trained, as well as using PRINT_PALAM to show parameters in training.&amp;lt;BR&amp;gt;&lt;br /&gt;
* It will then automatically display the commands that can be executed. The function @COM_ABLExx will be called for every command, which means that it can be executed if its RETURN is 1. Moreover, if the corresponding @COM_ABLExx does not exist, it also means that it is executable. The sample game COMABLE.ERB should be easy to understand.&amp;lt;BR&amp;gt;&lt;br /&gt;
* In addition, the function @SHOW_USERCOM will be called. Special commands, such as ending training can be displayed here.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Both are easy to understand by looking at the sample games SYSTEM.ERB and INFO.ERB.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Command Selection in TRAIN====&lt;br /&gt;
* When the player chooses a command, the function @EVENTCOM (if it exists) is called first. This is an [[#Event Function]].&amp;lt;BR&amp;gt;&lt;br /&gt;
* In addition, the function corresponding to the selected command will be called. For example, if 「Missionary」 is selected and the command number of 「Missionary」 is 20 in TRAIN.CSV, the function @COM20 will be called.&amp;lt;BR&amp;gt;&lt;br /&gt;
* In the case of commands like 「Blowjob」, you may not be able to execute them depending on your character's ability. In this case, RETURN 0 is called in the middle of @COMxx. Then, it will return to the command selection without executing the command.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If the command can be executed, RETURN 1 is called from @COMxx. Then the function @SOURCE_CHECK will be called. This is where the results of the training command are reflected in the training parameters.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Both COMxx.ERB and SOURCE.ERB are easy to understand by looking at the sample games.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====End of Command Selection in TRAIN====&lt;br /&gt;
* Finally, a function called @EVENTCOMEND (if it exists) will be called. This is an [[#Event Function]].&amp;lt;BR&amp;gt;&lt;br /&gt;
* It's a good idea to do the dialogue of the character whose command is executed here. The sample game era light's CKOJOxx.ERB should be easy to understand.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====User Command====&lt;br /&gt;
* If there is no @COMxx corresponding to the selected command, @USERCOM will be called. RESULT contains the selected command number, so please perform the corresponding operations.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The sample game's SYSTEM.ERB should be easy to understand when inspected.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===AFTERTRAIN===&lt;br /&gt;
* When you enter AFTERTRAIN, the function @EVENTEND (if it exists) will be called. This is an [[#Event Function]].&amp;lt;BR&amp;gt;&lt;br /&gt;
* It's a good idea to deal with your character's dialogue (parting words?) when you finish training here. In addition, the calculation of the Gems obtained from the training should be done here as well. The sample game's AFTERTRA.ERB should be easy to understand.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ABLUP===&lt;br /&gt;
====View ABLUP====&lt;br /&gt;
* First, the function @SHOW_JUEL is called. It shows the Gems you have.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Then, the function @SHOW_ABLUP_SELECT will be called. It displays the list of Abilities, exit commands, etc.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The sample game's ABL.ERB is easy to understand.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====ABLUP's command selection====&lt;br /&gt;
* When the player selects a command, the function corresponding to the selected command is called. For example, if 「C-Sense」 in [3] is selected, the function @ABLUP3 will be called.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If there is no @ABLUPxx corresponding to the selected command, @USERABLUP will be called. RESULT will contain the selected ABL number, so please perform the corresponding operations.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The sample games ABLUPxx.ERB and ABL.ERB are easy to understand.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TURNEND===&lt;br /&gt;
* The function @EVENTTURNEND (if it exists) will be called. This is [[#Event Function]].&amp;lt;BR&amp;gt;&lt;br /&gt;
* You may want to deal with time progression, physical recovery, etc.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Please note that the game needs @EVENTTURNEND or it will stop.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The sample game's SYSTEM.ERB is easy to understand.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Event Function===&lt;br /&gt;
====About Event Functions====&lt;br /&gt;
* An event function is a function that is always called at a certain time in the game. It is called when you have finished executing a command or when you want to start training.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Event functions are useful for displaying the character's dialogue. If you write instructions to display dialogue directly to functions such as @COMxx it will be confusing later, but you can use event functions to manage them separately.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Due to the nature of event functions, there may be more than one with the same name.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Example&lt;br /&gt;
&lt;br /&gt;
;The line when you finish performing Missionary&lt;br /&gt;
@EVENTCOMEND&lt;br /&gt;
;20 is Missionary, if not 20, ignore it.&lt;br /&gt;
SIF SELECTCOM != 20&lt;br /&gt;
    RETURN 0&lt;br /&gt;
;Ignore if FLAG:1000 is not 0&lt;br /&gt;
SIF FLAG:1000&lt;br /&gt;
    RETURN 0&lt;br /&gt;
PRINTW 「No... Oh my God!」&lt;br /&gt;
;Set the FLAG. Once it appeared, it won't appear again.&lt;br /&gt;
FLAG:1000 = 1&lt;br /&gt;
RETURN 1&lt;br /&gt;
&lt;br /&gt;
;The line when you finish executing DoggyStyle&lt;br /&gt;
@EVENTCOMEND&lt;br /&gt;
;21 is DoggyStyle; if it's not 21, ignore it.&lt;br /&gt;
SIF SELECTCOM != 21&lt;br /&gt;
    RETURN 0&lt;br /&gt;
;Ignore if FLAG:1001 is not 0&lt;br /&gt;
SIF FLAG:1001&lt;br /&gt;
    RETURN 0&lt;br /&gt;
PRINTW 「Not like this...」&lt;br /&gt;
;Set the FLAG. Once it appeared, it won't appear again.&lt;br /&gt;
FLAG:1001 = 1&lt;br /&gt;
RETURN 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Event functions can be given a &amp;quot;property&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If the property '''#SINGLE''' is given, the function with the same name will not be executed if it exits with RETURN 1. This is useful when a character says several lines at a time that are unnatural.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you grant the property '''#PRI''', it will be executed before any other function of the same name. This is useful for processes such as death checks that would be unnatural if not done first.&amp;lt;BR&amp;gt;&lt;br /&gt;
* When the property '''#LATER''' is given, it is executed after other functions of the same name. This is useful for processes that are unnatural if you don't do it at the end, such as displaying &amp;quot;The day is over&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Example&lt;br /&gt;
&lt;br /&gt;
@EVENTTURNEND&lt;br /&gt;
#SINGLE&lt;br /&gt;
SIF FLAG:1000&lt;br /&gt;
    RETURN 0&lt;br /&gt;
FLAG:1000 = 1&lt;br /&gt;
PRINTW 「I don't want to...」&lt;br /&gt;
RETURN 1&lt;br /&gt;
&lt;br /&gt;
@EVENTTURNEND&lt;br /&gt;
#SINGLE&lt;br /&gt;
SIF FLAG:1001&lt;br /&gt;
    RETURN 0&lt;br /&gt;
FLAG:1001 = 1&lt;br /&gt;
PRINTW 「Let me go home...」&lt;br /&gt;
RETURN 1&lt;br /&gt;
&lt;br /&gt;
@EVENTTURNEND&lt;br /&gt;
#SINGLE&lt;br /&gt;
SIF FLAG:1002&lt;br /&gt;
    RETURN 0&lt;br /&gt;
FLAG:1002 = 1&lt;br /&gt;
PRINTW 「I need to get out...」&lt;br /&gt;
RETURN 1&lt;br /&gt;
&lt;br /&gt;
@EVENTTURNEND&lt;br /&gt;
#LATER&lt;br /&gt;
PRINTW The day is over...&lt;br /&gt;
RETURN 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
（The three lines above can only appear one at a time. The &amp;quot;The day is over...&amp;quot; is marked with #LATER, so it never appears until FLAG:1000, FLAG:1001, or FLAG:1002 become 1.）&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Update History==&lt;br /&gt;
* 04/07/2020　The provisional version was translated.&lt;br /&gt;
* 2006/05/05　The provisional version was released.&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/eramacsv&amp;diff=39841</id>
		<title>Emuera/eramacsv</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/eramacsv&amp;diff=39841"/>
		<updated>2020-04-10T01:48:14Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* Useful things to know */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;B&amp;gt;eramaker CSV file format (provisional version)&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I think &amp;lt;em&amp;gt;&amp;lt;b&amp;gt;it's hard to get a picture just by looking at this file.&amp;lt;/b&amp;gt;&amp;lt;/em&amp;gt; It is easier to understand if you play the sample game first, and then look at the CSV files of the sample game while looking at it.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Basic Info==&lt;br /&gt;
===About CSV Files===&lt;br /&gt;
Put a folder named CSV directly under eramaker.exe.&amp;lt;BR&amp;gt;&lt;br /&gt;
The CSV files include the following.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TABLE border=1&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;GameBase.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers the basic data of the game.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Palam.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers parameters used during training (such as C Pleasure, Pain, Hate)&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Abl.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers character abilities (such as V Sense, Service, Masochism).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Talent.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers qualities (such as Cowardice, Self-Control, Quick Recovery).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Mark.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers marks (such as Pleasure Mark, Shame Mark).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Exp.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers experiences (such as V Exp, Masturbation Exp).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Train.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers training commands (such as Cunnilingus, Blowjob, Whip).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Item.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers items (such as Vibrator, Needle).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Str.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers various sentences to be used in the game.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;CharaXX.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers the initial data of your character. From Chara00.csv to Chara99.csv.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to write a CSV file===&lt;br /&gt;
In all CSV files,&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* If the first character in the first column is a ; (semicolon), the line is ignored. Empty lines are also ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Example&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
;Setting up the physical and mental strength&amp;lt;BR&amp;gt;&lt;br /&gt;
基礎,0,2000&amp;lt;BR&amp;gt;&lt;br /&gt;
基礎,1,1000&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
;Setting up abilities&amp;lt;BR&amp;gt;&lt;br /&gt;
能力,0,2&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please use half-width characters when entering numbers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Correct&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
121,Futanari&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Wrong&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
１２１,Futanari&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* It won't work properly if you put &amp;quot;&amp;quot; around a string, which seems to be the default setting in OpenOffice.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Correct&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
0,Obedience&amp;lt;BR&amp;gt;&lt;br /&gt;
1,Desire&amp;lt;BR&amp;gt;&lt;br /&gt;
2,Technique&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;Wrong&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
0,&amp;quot;Obedience&amp;quot;&amp;lt;BR&amp;gt;&lt;br /&gt;
1,&amp;quot;Desire&amp;quot;&amp;lt;BR&amp;gt;&lt;br /&gt;
2,&amp;quot;Technique&amp;quot;&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the help of your spreadsheet software for the setting method.&lt;br /&gt;
&lt;br /&gt;
==Format for each file==&lt;br /&gt;
&lt;br /&gt;
===Format for GameBase.csv===&lt;br /&gt;
&lt;br /&gt;
Write instructions in the first column and data in the second and subsequent columns.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
====Game Code====&lt;br /&gt;
* コード,(Number) - Must be used in japanese.&lt;br /&gt;
* Sets the game code to (Number). This is used to prevent you from accidentally loading another game's save data. (Number) can be any value.&lt;br /&gt;
&lt;br /&gt;
====Version====&lt;br /&gt;
* バージョン,(Number) - Must be used in japanese.&lt;br /&gt;
* Sets the version of the game to (Number). On the screen, you will see (Number) divided by 1000. By default, save data from a different version will not be loaded.&lt;br /&gt;
&lt;br /&gt;
====Title====&lt;br /&gt;
* タイトル,(String) - Must be used in japanese.&lt;br /&gt;
* Sets the title of the game to (String). It is displayed at startup.&lt;br /&gt;
&lt;br /&gt;
====Author====&lt;br /&gt;
* 作者,(String) - Must be used in japanese.&lt;br /&gt;
* Sets the author of the game to (String). It is displayed at startup.&lt;br /&gt;
&lt;br /&gt;
====Development Year====&lt;br /&gt;
* 製作年,(String) - Must be used in japanese.&lt;br /&gt;
* Sets the production year of the game to (String). It is displayed at startup. Since it is not a numerical value, it is possible to put 2005-2006, for example.&lt;br /&gt;
&lt;br /&gt;
====Additional Information====&lt;br /&gt;
* 追加情報,(String) - Must be used in japanese.&lt;br /&gt;
* Sets the game's additional information to (String). It is displayed at startup.&lt;br /&gt;
&lt;br /&gt;
====Character from the beginning====&lt;br /&gt;
* 最初からいるキャラ,(Number) - Must be used in japanese.&lt;br /&gt;
* Sets the character who is not the main character at the start of the game. It's used in games like Era Light, where the characters to be trained are decided from the beginning. (Number) specifies the character number. For example, if you specify 1, you get Chara01.csv, if you specify 12, you get Chara12.csv.&lt;br /&gt;
&lt;br /&gt;
====No Items====&lt;br /&gt;
* アイテムなし,(Number) - Must be used in japanese.&lt;br /&gt;
* If you set (Number) to 1, you will be able to train without items when you need to train a vibrator. When you make a game that has no concept of items, make it 1.&lt;br /&gt;
&lt;br /&gt;
====Admit different versions====&lt;br /&gt;
* バージョン違い認める,(Number) - Must be used in japanese.&lt;br /&gt;
* If the version of the saved data is (Number) or more, it can be loaded even if the version is different. Set this if you have upgraded to a new version that does not affect the entire system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Example&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
;Save data after version 1.20 can be loaded.&amp;lt;BR&amp;gt;&lt;br /&gt;
バージョン違い認める,1200&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Palam.csv===&lt;br /&gt;
* Write the Parameter number in the 1st column and the Parameter name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* It is recommended that the Parameter numbers start at 0 and you do not make blank free numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The maximum Parameter number is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Abl.csv===&lt;br /&gt;
* Write the Ability number in the 1st column and the Ability name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* It is recommended that the Ability numbers start at 0 and you do not make blank free numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The maximum Ability number is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Talent.csv===&lt;br /&gt;
* Write the Talent number in the 1st column and the Talent name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The trait number is a minimum of 0 and a maximum of 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Mark.csv===&lt;br /&gt;
* Write the Mark number in the 1st column and the Mark name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* It is recommended that the parameter numbers start at 0 and you do not make blank free numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The maximum Mark number is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Exp.csv===&lt;br /&gt;
* Write the Experience number in the 1st column and the Experience name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The minimum experience number is 0 and the maximum is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Train.csv===&lt;br /&gt;
* Write the Command number in the 1st column and the Command name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The minimum Command number is 0 and the maximum is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Item.csv===&lt;br /&gt;
* Write the item number in the 1st, the name of the item in the 2nd, and the price of the item in the 3rd.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The minimum item number is 0 and the maximum is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Str.csv===&lt;br /&gt;
* Write the string number in the 1st column and the string in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* There is no limit to the length of the string.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The minimum string number is 0 and the maximum is 19999.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for CharaXX.csv===&lt;br /&gt;
====Number====&lt;br /&gt;
* 番号,(Number) - Must be used in japanese.&lt;br /&gt;
* Sets the character number to (Number). This is important when creating compatibility between characters or special versions of the same character.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Name====&lt;br /&gt;
* 名前,(String) - Must be used in japanese.&lt;br /&gt;
* Sets the name of your character to (String).&amp;lt;BR&amp;gt;&lt;br /&gt;
* There is no limit to the length of the string, but if it is too long, the display may be disturbed.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Nickname====&lt;br /&gt;
* 呼び名,(String) - Must be used in japanese.&lt;br /&gt;
* Sets the name of the character to (String). Use it for characters with nicknames. &amp;lt;BR&amp;gt;&lt;br /&gt;
* There is no limit to the length of the string, but if it is too long, the display may be disturbed.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Base Attributes====&lt;br /&gt;
* 基礎,(Number 1),(Number 2) - Must be used in japanese.&lt;br /&gt;
* Sets the first (Number 1) of the character's basic parameters to (Number 2).&amp;lt;BR&amp;gt;&lt;br /&gt;
* In the sample game, the number 0 is your health, the number 1 is your energy, and the number 2 is your ejaculation gauge.&amp;lt;BR&amp;gt;&lt;br /&gt;
* (Number 1) is a minimum of 0 and a maximum of 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Example&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
;2000 in stamina and 1000 in spirit.&amp;lt;BR&amp;gt;&lt;br /&gt;
基礎,0,2000&amp;lt;BR&amp;gt;&lt;br /&gt;
基礎,1,1000&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Ability====&lt;br /&gt;
* 能力,(Number 1),(Number 2) - Must be used in japanese.&lt;br /&gt;
* Set the first (Number 1) of your character's initial abilities to (Number 2).&amp;lt;BR&amp;gt;&lt;br /&gt;
* For (Number 1), use the ability number specified in Abl.csv.&amp;lt;BR&amp;gt;&lt;br /&gt;
* There is no particular limit to (Number 2), but in the sample game, it is set from 0 to 5.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Talent====&lt;br /&gt;
* 素質,(Number) - Must be used in japanese.&lt;br /&gt;
* Adds the (Number) trait to the Character.&amp;lt;BR&amp;gt;&lt;br /&gt;
* For (Number), use the talent number specified in Talent.csv.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Experience====&lt;br /&gt;
* 経験,(Number 1),(Number 2) - Must be used in japanese.&lt;br /&gt;
* Set the character's initial experience number (Number 1) to (Number 2).&amp;lt;BR&amp;gt;&lt;br /&gt;
* For (Number 1), please use the experience number specified in Exp.csv.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Affinity====&lt;br /&gt;
* 相性,(Number 1),(Number 2) - Must be used in japanese.&lt;br /&gt;
* Set the affinity for the (Number 1) character to (Number 2).&amp;lt;BR&amp;gt;&lt;br /&gt;
* For (Number 1), use the character numbers specified in CharaXX.csv, respectively.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Note that 100 (Number 2) is the standard. Lower means incompatible, and higher means that it is compatible.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Assistant====&lt;br /&gt;
* 助手,(Number) - Must be used in japanese.&lt;br /&gt;
* If (Number) is set to 1, it is treated as an assistant from the initial state.&lt;br /&gt;
&lt;br /&gt;
====Flags====&lt;br /&gt;
* フラグ,(Number 1),(Number 2) - Must be used in japanese.&lt;br /&gt;
* Set the (Number 1)-th character flag to (Number 2).&amp;lt;BR&amp;gt;&lt;br /&gt;
* (Number 1) must be a minimum of 0 and a maximum of 999.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The character flags can be used freely, up to the game creator's ideas. In the sample game, a character whose 0th flag is 1 is a &amp;quot;special character&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
* (※ It's called a flag, but it can be any integer value other than 0 and 1)&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Useful things to know==&lt;br /&gt;
====About *** and +++ in Str.csv====&lt;br /&gt;
* In the Str.csv of the sample game era light, there are a lot of ***, +++, etc. In the game, they should be translated as &amp;quot;Akari&amp;quot; and &amp;quot;Hiroyuki-chan&amp;quot; respectively.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You'll need some knowledge of ERA BASIC to fully understand this, but for the time being know that *** is the name of the character you're training, +++ is the name of the main character, and $$$ is the callname of the character you're training.&amp;lt;BR&amp;gt;&lt;br /&gt;
* In the sample game erakanon there is an assistant system. /// is the name of the assistant and === is the name of the person (main character or assistant) who is doing the training at the time.&lt;br /&gt;
&lt;br /&gt;
==Update History==&lt;br /&gt;
* 09/04/2020 Page translation completed&lt;br /&gt;
* 2006/05/01 Provisional version released&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/eramacsv&amp;diff=39840</id>
		<title>Emuera/eramacsv</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/eramacsv&amp;diff=39840"/>
		<updated>2020-04-10T01:47:53Z</updated>

		<summary type="html">&lt;p&gt;Maldito: Page completely translated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;B&amp;gt;eramaker CSV file format (provisional version)&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I think &amp;lt;em&amp;gt;&amp;lt;b&amp;gt;it's hard to get a picture just by looking at this file.&amp;lt;/b&amp;gt;&amp;lt;/em&amp;gt; It is easier to understand if you play the sample game first, and then look at the CSV files of the sample game while looking at it.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Basic Info==&lt;br /&gt;
===About CSV Files===&lt;br /&gt;
Put a folder named CSV directly under eramaker.exe.&amp;lt;BR&amp;gt;&lt;br /&gt;
The CSV files include the following.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TABLE border=1&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;GameBase.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers the basic data of the game.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Palam.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers parameters used during training (such as C Pleasure, Pain, Hate)&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Abl.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers character abilities (such as V Sense, Service, Masochism).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Talent.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers qualities (such as Cowardice, Self-Control, Quick Recovery).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Mark.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers marks (such as Pleasure Mark, Shame Mark).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Exp.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers experiences (such as V Exp, Masturbation Exp).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Train.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers training commands (such as Cunnilingus, Blowjob, Whip).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Item.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers items (such as Vibrator, Needle).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Str.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers various sentences to be used in the game.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;CharaXX.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers the initial data of your character. From Chara00.csv to Chara99.csv.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to write a CSV file===&lt;br /&gt;
In all CSV files,&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* If the first character in the first column is a ; (semicolon), the line is ignored. Empty lines are also ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Example&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
;Setting up the physical and mental strength&amp;lt;BR&amp;gt;&lt;br /&gt;
基礎,0,2000&amp;lt;BR&amp;gt;&lt;br /&gt;
基礎,1,1000&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
;Setting up abilities&amp;lt;BR&amp;gt;&lt;br /&gt;
能力,0,2&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please use half-width characters when entering numbers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Correct&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
121,Futanari&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Wrong&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
１２１,Futanari&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* It won't work properly if you put &amp;quot;&amp;quot; around a string, which seems to be the default setting in OpenOffice.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Correct&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
0,Obedience&amp;lt;BR&amp;gt;&lt;br /&gt;
1,Desire&amp;lt;BR&amp;gt;&lt;br /&gt;
2,Technique&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;Wrong&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
0,&amp;quot;Obedience&amp;quot;&amp;lt;BR&amp;gt;&lt;br /&gt;
1,&amp;quot;Desire&amp;quot;&amp;lt;BR&amp;gt;&lt;br /&gt;
2,&amp;quot;Technique&amp;quot;&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the help of your spreadsheet software for the setting method.&lt;br /&gt;
&lt;br /&gt;
==Format for each file==&lt;br /&gt;
&lt;br /&gt;
===Format for GameBase.csv===&lt;br /&gt;
&lt;br /&gt;
Write instructions in the first column and data in the second and subsequent columns.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
====Game Code====&lt;br /&gt;
* コード,(Number) - Must be used in japanese.&lt;br /&gt;
* Sets the game code to (Number). This is used to prevent you from accidentally loading another game's save data. (Number) can be any value.&lt;br /&gt;
&lt;br /&gt;
====Version====&lt;br /&gt;
* バージョン,(Number) - Must be used in japanese.&lt;br /&gt;
* Sets the version of the game to (Number). On the screen, you will see (Number) divided by 1000. By default, save data from a different version will not be loaded.&lt;br /&gt;
&lt;br /&gt;
====Title====&lt;br /&gt;
* タイトル,(String) - Must be used in japanese.&lt;br /&gt;
* Sets the title of the game to (String). It is displayed at startup.&lt;br /&gt;
&lt;br /&gt;
====Author====&lt;br /&gt;
* 作者,(String) - Must be used in japanese.&lt;br /&gt;
* Sets the author of the game to (String). It is displayed at startup.&lt;br /&gt;
&lt;br /&gt;
====Development Year====&lt;br /&gt;
* 製作年,(String) - Must be used in japanese.&lt;br /&gt;
* Sets the production year of the game to (String). It is displayed at startup. Since it is not a numerical value, it is possible to put 2005-2006, for example.&lt;br /&gt;
&lt;br /&gt;
====Additional Information====&lt;br /&gt;
* 追加情報,(String) - Must be used in japanese.&lt;br /&gt;
* Sets the game's additional information to (String). It is displayed at startup.&lt;br /&gt;
&lt;br /&gt;
====Character from the beginning====&lt;br /&gt;
* 最初からいるキャラ,(Number) - Must be used in japanese.&lt;br /&gt;
* Sets the character who is not the main character at the start of the game. It's used in games like Era Light, where the characters to be trained are decided from the beginning. (Number) specifies the character number. For example, if you specify 1, you get Chara01.csv, if you specify 12, you get Chara12.csv.&lt;br /&gt;
&lt;br /&gt;
====No Items====&lt;br /&gt;
* アイテムなし,(Number) - Must be used in japanese.&lt;br /&gt;
* If you set (Number) to 1, you will be able to train without items when you need to train a vibrator. When you make a game that has no concept of items, make it 1.&lt;br /&gt;
&lt;br /&gt;
====Admit different versions====&lt;br /&gt;
* バージョン違い認める,(Number) - Must be used in japanese.&lt;br /&gt;
* If the version of the saved data is (Number) or more, it can be loaded even if the version is different. Set this if you have upgraded to a new version that does not affect the entire system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Example&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
;Save data after version 1.20 can be loaded.&amp;lt;BR&amp;gt;&lt;br /&gt;
バージョン違い認める,1200&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Palam.csv===&lt;br /&gt;
* Write the Parameter number in the 1st column and the Parameter name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* It is recommended that the Parameter numbers start at 0 and you do not make blank free numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The maximum Parameter number is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Abl.csv===&lt;br /&gt;
* Write the Ability number in the 1st column and the Ability name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* It is recommended that the Ability numbers start at 0 and you do not make blank free numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The maximum Ability number is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Talent.csv===&lt;br /&gt;
* Write the Talent number in the 1st column and the Talent name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The trait number is a minimum of 0 and a maximum of 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Mark.csv===&lt;br /&gt;
* Write the Mark number in the 1st column and the Mark name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* It is recommended that the parameter numbers start at 0 and you do not make blank free numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The maximum Mark number is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Exp.csv===&lt;br /&gt;
* Write the Experience number in the 1st column and the Experience name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The minimum experience number is 0 and the maximum is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Train.csv===&lt;br /&gt;
* Write the Command number in the 1st column and the Command name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The minimum Command number is 0 and the maximum is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Item.csv===&lt;br /&gt;
* Write the item number in the 1st, the name of the item in the 2nd, and the price of the item in the 3rd.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The minimum item number is 0 and the maximum is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Str.csv===&lt;br /&gt;
* Write the string number in the 1st column and the string in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* There is no limit to the length of the string.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The minimum string number is 0 and the maximum is 19999.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for CharaXX.csv===&lt;br /&gt;
====Number====&lt;br /&gt;
* 番号,(Number) - Must be used in japanese.&lt;br /&gt;
* Sets the character number to (Number). This is important when creating compatibility between characters or special versions of the same character.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Name====&lt;br /&gt;
* 名前,(String) - Must be used in japanese.&lt;br /&gt;
* Sets the name of your character to (String).&amp;lt;BR&amp;gt;&lt;br /&gt;
* There is no limit to the length of the string, but if it is too long, the display may be disturbed.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Nickname====&lt;br /&gt;
* 呼び名,(String) - Must be used in japanese.&lt;br /&gt;
* Sets the name of the character to (String). Use it for characters with nicknames. &amp;lt;BR&amp;gt;&lt;br /&gt;
* There is no limit to the length of the string, but if it is too long, the display may be disturbed.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Base Attributes====&lt;br /&gt;
* 基礎,(Number 1),(Number 2) - Must be used in japanese.&lt;br /&gt;
* Sets the first (Number 1) of the character's basic parameters to (Number 2).&amp;lt;BR&amp;gt;&lt;br /&gt;
* In the sample game, the number 0 is your health, the number 1 is your energy, and the number 2 is your ejaculation gauge.&amp;lt;BR&amp;gt;&lt;br /&gt;
* (Number 1) is a minimum of 0 and a maximum of 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Example&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
;2000 in stamina and 1000 in spirit.&amp;lt;BR&amp;gt;&lt;br /&gt;
基礎,0,2000&amp;lt;BR&amp;gt;&lt;br /&gt;
基礎,1,1000&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Ability====&lt;br /&gt;
* 能力,(Number 1),(Number 2) - Must be used in japanese.&lt;br /&gt;
* Set the first (Number 1) of your character's initial abilities to (Number 2).&amp;lt;BR&amp;gt;&lt;br /&gt;
* For (Number 1), use the ability number specified in Abl.csv.&amp;lt;BR&amp;gt;&lt;br /&gt;
* There is no particular limit to (Number 2), but in the sample game, it is set from 0 to 5.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Talent====&lt;br /&gt;
* 素質,(Number) - Must be used in japanese.&lt;br /&gt;
* Adds the (Number) trait to the Character.&amp;lt;BR&amp;gt;&lt;br /&gt;
* For (Number), use the talent number specified in Talent.csv.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Experience====&lt;br /&gt;
* 経験,(Number 1),(Number 2) - Must be used in japanese.&lt;br /&gt;
* Set the character's initial experience number (Number 1) to (Number 2).&amp;lt;BR&amp;gt;&lt;br /&gt;
* For (Number 1), please use the experience number specified in Exp.csv.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Affinity====&lt;br /&gt;
* 相性,(Number 1),(Number 2) - Must be used in japanese.&lt;br /&gt;
* Set the affinity for the (Number 1) character to (Number 2).&amp;lt;BR&amp;gt;&lt;br /&gt;
* For (Number 1), use the character numbers specified in CharaXX.csv, respectively.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Note that 100 (Number 2) is the standard. Lower means incompatible, and higher means that it is compatible.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Assistant====&lt;br /&gt;
* 助手,(Number) - Must be used in japanese.&lt;br /&gt;
* If (Number) is set to 1, it is treated as an assistant from the initial state.&lt;br /&gt;
&lt;br /&gt;
====Flags====&lt;br /&gt;
* フラグ,(Number 1),(Number 2) - Must be used in japanese.&lt;br /&gt;
* Set the (Number 1)-th character flag to (Number 2).&amp;lt;BR&amp;gt;&lt;br /&gt;
* (Number 1) must be a minimum of 0 and a maximum of 999.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The character flags can be used freely, up to the game creator's ideas. In the sample game, a character whose 0th flag is 1 is a &amp;quot;special character&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
* (※ It's called a flag, but it can be any integer value other than 0 and 1)&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Useful things to know==&lt;br /&gt;
&amp;lt;!-- it's blank HUEHUEHUE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====About *** and +++ in Str.csv====&lt;br /&gt;
* In the Str.csv of the sample game era light, there are a lot of ***, +++, etc. In the game, they should be translated as &amp;quot;Akari&amp;quot; and &amp;quot;Hiroyuki-chan&amp;quot; respectively.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You'll need some knowledge of ERA BASIC to fully understand this, but for the time being know that *** is the name of the character you're training, +++ is the name of the main character, and $$$ is the callname of the character you're training.&amp;lt;BR&amp;gt;&lt;br /&gt;
* In the sample game erakanon there is an assistant system. /// is the name of the assistant and === is the name of the person (main character or assistant) who is doing the training at the time.&lt;br /&gt;
&lt;br /&gt;
==Update History==&lt;br /&gt;
* 09/04/2020 Page translation completed&lt;br /&gt;
* 2006/05/01 Provisional version released&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/eramavar&amp;diff=39839</id>
		<title>Emuera/eramavar</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/eramavar&amp;diff=39839"/>
		<updated>2020-04-10T00:02:14Z</updated>

		<summary type="html">&lt;p&gt;Maldito: Page fully translated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;B&amp;gt;eramaker era basic variable list (provisional version)&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
I think &amp;lt;em&amp;gt;&amp;lt;b&amp;gt;it's hard to get a picture just by looking at this file.&amp;lt;/b&amp;gt;&amp;lt;/em&amp;gt; It is easier to understand if you play the sample game first, and then look at the ERB files of the sample game while looking at it.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Basic Variables==&lt;br /&gt;
===Generic Variables===&lt;br /&gt;
====A-Z====&lt;br /&gt;
* The variable is a single letter of the alphabet, from A to Z.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can use it as a disposable data container as you like. However, it is not suitable for long time data storage because it is not known where it is rewritten.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====COUNT====&lt;br /&gt;
* This variable counts the number of times it is repeated when using the REPEAT instruction.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Do not rewrite the contents of COUNT between REPEAT and REND, as this may lead to a malfunction.&amp;lt;BR&amp;gt;&lt;br /&gt;
====RESULT====&lt;br /&gt;
* A variable that records various results.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Since you don't know where it could be rewritten, it is preferable to move the data to another variable unless it is used on the spot.&amp;lt;BR&amp;gt;&lt;br /&gt;
====RESULTS (String Variable)====&lt;br /&gt;
* A string variable that records various results.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Since you don't know where it could be rewritten, it is preferable to move the data to another variable unless it is used on the spot.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Basic Information Variables===&lt;br /&gt;
====DAY====&lt;br /&gt;
* Records the date. Feel free to handle it as you wish.&amp;lt;BR&amp;gt;&lt;br /&gt;
====TIME====&lt;br /&gt;
* Records the time. Feel free to handle it as you wish.&amp;lt;BR&amp;gt;&lt;br /&gt;
====MONEY====&lt;br /&gt;
* Keeps track of your money. The program will refer to it when you shop, so don't rewrite it unless you've gained or lost money.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Basic Training Information Variables===&lt;br /&gt;
====MASTER====&lt;br /&gt;
* It refers to the protagonist's [[#enroll|Character Registration Number]], which may be different from the number specified in CharaXX.csv. It is usually 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
====TARGET====&lt;br /&gt;
* This is the [[#enroll|Character Registration Number]] of the trainee, which may be different from the number specified in CharaXX.csv.&amp;lt;BR&amp;gt;&lt;br /&gt;
====ASSI====&lt;br /&gt;
* It refers to the assistant's [[#enroll|Character Registration Number]], which may be different from the number specified in CharaXX.csv.&amp;lt;BR&amp;gt;&lt;br /&gt;
====PLAYER====&lt;br /&gt;
* Refers to the [[#enroll|Character Registration Number]] of the person doing the training. Normally it should match MASTER or ASSI, but be aware that the number may be different from the one specified in CharaXX.csv.&amp;lt;BR&amp;gt;&lt;br /&gt;
====CHARANUM====&lt;br /&gt;
* The number of characters currently registered. Includes the protagonist. This variable cannot be changed by the user.&amp;lt;BR&amp;gt;&lt;br /&gt;
====ASSIPLAY====&lt;br /&gt;
* If it's a 1, the assistant is doing the training, if it's a 0, it's not.&amp;lt;BR&amp;gt;&lt;br /&gt;
====SELECTCOM====&lt;br /&gt;
* The selected command is the same command number as the one registered in TRAIN.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====PREVCOM====&lt;br /&gt;
* This is the previous selected command. This is used for example for penalties for executing the same command in succession.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Training Variables===&lt;br /&gt;
====LOSEBASE (Array, 0-999)====&lt;br /&gt;
* It's how much of the basic parameters are lost by the training command. Normally, LOSEBASE:0 is for physical exhaustion and LOSEBASE:1 is for energy exhaustion.&amp;lt;BR&amp;gt;&lt;br /&gt;
====UP (Array, 0-999)====&lt;br /&gt;
* This is how much the training parameters are raised by the training command. A in UP:A is the parameter number specified in PALAM.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====DOWN (Array, 0-999)====&lt;br /&gt;
* This is how much the training parameters are lowered by the training command. A of DOWN:A is the parameter number specified in PALAM.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====PALAMLV (Array, 0-999)====&lt;br /&gt;
* This is the boundary value of the level of the parameter in training. If the training parameters exceed this threshold, the number of gems you receive after training will increase dramatically.&amp;lt;BR&amp;gt;&lt;br /&gt;
====EXPLV (Array, 0-999)====&lt;br /&gt;
* This is the boundary value for the level of experience. If your experience exceeds this threshold, your training may be more effective (especially with V and A experience).&amp;lt;BR&amp;gt;&lt;br /&gt;
====EJAC====&lt;br /&gt;
* This is a temporary variable that is used for ejaculation checks. It's an independent variable for readability, but it's really just a data entry.&lt;br /&gt;
===Flags===&lt;br /&gt;
====FLAG (Array, 0-9999)====&lt;br /&gt;
* Record the various states of the game. In the sample game, FLAG:0 is used to determine if a character in training has been rested or not. It's also frequently used to see if an event has occurred or not.&amp;lt;BR&amp;gt;&lt;br /&gt;
====TFLAG (Array, 0-999)====&lt;br /&gt;
* Record the various states of the game. Think of it as a Temporary Flag, or Training Flag, which is used in the sample game to record how you ejaculated and whether you performed the service training. In short, it is a flag for temporary use rather than FLAG.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Character Data===&lt;br /&gt;
* Most of the character data is double-arranged and is accessed as EXP:1:2 (looking at the second experience of the first character).&amp;lt;BR&amp;gt;&lt;br /&gt;
* However, it can also be written as EXP:0. In this case, it will be interpreted as EXP:TARGET:0. In other words, you don't need to write TARGET: to access the data of the character being trained.&amp;lt;BR&amp;gt;&lt;br /&gt;
====NO (Array, 0-99)====&lt;br /&gt;
* Character number. Since it is not a double array, it is accessed as NO:TARGET or NO:ASSI.&amp;lt;BR&amp;gt;&lt;br /&gt;
====BASE (Double Array, 0-99)====&lt;br /&gt;
* These are the basic parameters of the character. In the sample game, BASE:0 represents health, BASE:1 represents energy and BASE:2 represents ejaculation gauge.&amp;lt;BR&amp;gt;&lt;br /&gt;
====MAXBASE (Double Array, 0-99)====&lt;br /&gt;
* This is the maximum value of the basic parameters of the character.&amp;lt;BR&amp;gt;&lt;br /&gt;
====ABL (Double Array, 0-99)====&lt;br /&gt;
* The ability of your character, which is accessed by the ability number registered in ABL.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====TALENT (Double Array, 0-999)====&lt;br /&gt;
* The qualities of the character. It is accessed by the quality number registered in TALENT.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====EXP (Double Array, 0-99)====&lt;br /&gt;
* The experience of the character, which is accessed by the experience number registered in EXP.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====MARK (Double Array, 0-99)====&lt;br /&gt;
* This is the engraving of the character. It is accessed by the mark number registered in MARK.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====RELATION (Double Array, 0-99)====&lt;br /&gt;
* RELATION:TARGET:3 indicates the compatibility of the character in training with the character number 3. Note that I'm not referring to the compatibility with the characters with [[#enroll|Character Registration Number]] 3.&amp;lt;BR&amp;gt;&lt;br /&gt;
====JUEL (Double Array, 0-199)====&lt;br /&gt;
* This is the gems that character has. Access by the parameter number registered in PALAM.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====CFLAG (Double Array, 0-999)====&lt;br /&gt;
* This is a flag for each character. You can record a variety of data for each character. In the sample game, a character whose CFLAG:0 is 1 is considered an SP character.&amp;lt;BR&amp;gt;&lt;br /&gt;
====ISASSI (Array, 0-99)====&lt;br /&gt;
* If it's a 0, it's not an assistant. If it's a 1, it's an assistant. Since it is not a double array, it is accessed as ISASSI:TARGET or ISASSI:ASSI.&amp;lt;BR&amp;gt;&lt;br /&gt;
====NAME (Array, 0-99) (String Variable)====&lt;br /&gt;
* The name of the character. Since it is not a double array, it is accessed as NAME:TARGET or NAME:ASSI.&amp;lt;BR&amp;gt;&lt;br /&gt;
====CALLNAME (Array, 0-99) (String Variable)====&lt;br /&gt;
* This is the name of the character. Since it is not a double array, it is accessed as CALLNAME:TARGET or CALLNAME:ASSI.&amp;lt;BR&amp;gt;&lt;br /&gt;
====TEQUIP (Double Array, 0-99)====&lt;br /&gt;
* This is the item that Chara is wearing. You can use this when you're putting in vibrators during training, but you can also use it for character enhancement items. In the sample game, we also used it to judge the use of aphrodisiacs.&amp;lt;BR&amp;gt;&lt;br /&gt;
====PALAM (Double Array, 0-99)====&lt;br /&gt;
* Character's training parameters, accessed by the parameter numbers registered in PALAM.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====STAIN (Double Array, 0-99)====&lt;br /&gt;
* This is the &amp;quot;dirt&amp;quot; generated by training. It changes when you ejaculate from a blow job or have anal sex. In the sample game, STAIN:0 refers to the mouth, STAIN:1 to the hand, STAIN:2 to the penis, STAIN:3 to the vagina, and STAIN:4 to the anal stain. See [[#stain|here]] for details of the stain notation.&amp;lt;BR&amp;gt;&lt;br /&gt;
====EX (Double Array, 0-99)====&lt;br /&gt;
* This is how many times climaxed during this training. In the sample game, EX:0 is a C climax, EX:1 is a V climax, and EX:2 is an A climax.&amp;lt;BR&amp;gt;&lt;br /&gt;
====SOURCE (Double Array, 0-99)====&lt;br /&gt;
* This is the training source generated by executing commands. If you look at the COMxx.ERB and SOURCE.ERB, you will see the flow from the training source to the UP of the training parameters.&amp;lt;BR&amp;gt;&lt;br /&gt;
====NOWEX (Double Array, 0-99)====&lt;br /&gt;
* This is how many times climaxed during this command alone. In the sample game, NOWEX:0 is a C climax, NOWEX:1 is a V climax, and NOWEX:2 is an A climax.&amp;lt;BR&amp;gt;&lt;br /&gt;
====GOTJUEL (Double Array, 0-99)====&lt;br /&gt;
* This is the gems received after this training, which is accessed by the parameter number registered in PALAM.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Item Data===&lt;br /&gt;
====ITEM (Array, 0-99)====&lt;br /&gt;
* This is the number of each item you have, accessed by the item number registered in ITEM.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====ITEMSALES (Array, 0-99)====&lt;br /&gt;
* It' s whether the item is available in the shop or not. If it's a 1, it's for sale. If it's a 0, it's not for sale. The item number registered in ITEM.CSV is used to access it.&amp;lt;BR&amp;gt;&lt;br /&gt;
====BOUGHT====&lt;br /&gt;
* Here's what items were bought. You can use this if you want to delete the item you just bought at @EVENTBUY from the shop.&amp;lt;BR&amp;gt;&lt;br /&gt;
====NOITEM====&lt;br /&gt;
* If NO ITEM is specified in GAMEBASE.CSV, it will be set to 1. In this case, the execution of the command will ignore the presence or absence of the item.&amp;lt;BR&amp;gt;&lt;br /&gt;
====PBAND====&lt;br /&gt;
* This is the item number for the strap-on. It is set to 4 by default. Strap-on is treated as an independent variable because it is often involved in training decisions.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Name Data===&lt;br /&gt;
====ABLNAME (Array, 0-99) (String Variable)====&lt;br /&gt;
* The name of the ability, accessed by the parameter number registered in ABL.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====TALENTNAME (Array, 0-99) (String Variable)====&lt;br /&gt;
* The name of the property, accessed by the parameter number registered in TALENT.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====EXPNAME (Array, 0-99) (String Variable)====&lt;br /&gt;
* The name of the experience, which is accessed by the parameter number registered in EXP.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====MARKNAME (Array, 0-99) (String Variable)====&lt;br /&gt;
* The name of the mark, accessed by the parameter number registered in MARK.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====PALAMNAME (Array, 0-199) (String Variable)====&lt;br /&gt;
* The name of the parameter while training, which is accessed by the parameter number registered in PALAM.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
====ITEMNAME (Array, 0-99) (String Variable)====&lt;br /&gt;
* The name of the item, which is accessed by the parameter number registered in ITEM.CSV.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===String Data===&lt;br /&gt;
====STR (Array, 0-19999) (String Variable)====&lt;br /&gt;
* String data. The data of STR.CSV is stored here. Note that modifying this variable will not save it.&amp;lt;BR&amp;gt;&lt;br /&gt;
====SAVESTR (Array, 0-99) (String Variable)====&lt;br /&gt;
* String data. The data recorded here will be saved when you save it. You can store the string variables you want to use all the time here.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Other Data===&lt;br /&gt;
====RAND (Pseudo-Array)====&lt;br /&gt;
* This is a special variable that returns a random number. For example: PRINTV RAND:10 randomly displays a number from 0 to 9.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Remember that the return value is an integer from 0 to A-1 in the case of RAND:A.&lt;br /&gt;
==&amp;lt;span id=&amp;quot;enroll&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Character Registration Number==&lt;br /&gt;
===The difference between a character registration number and a character number===&lt;br /&gt;
====Unembodied Character Data====&lt;br /&gt;
* The number (番号) specified in CharaXX.CSV. That's the &amp;quot;character number&amp;quot;.&amp;lt;BR&amp;gt;&lt;br /&gt;
* However, not all of the characters in CharaXX.CSV are real at the start of the game. They only become real when the ADDCHARA command is called.&amp;lt;BR&amp;gt;&lt;br /&gt;
====Registering a character====&lt;br /&gt;
* At the start of the game, the only character who is an entity is the main character. And the main character's &amp;quot;character registration number&amp;quot; is 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Let's assume that a character whose character number is 5 in ADDCHARA is registered here. The &amp;quot;character number&amp;quot; of this character is 5, but the &amp;quot;registration number of the character&amp;quot; is 1 because it is next to the main character. If you add one more character with a character number of 7, the registration number of that character is 2.&amp;lt;BR&amp;gt;&lt;br /&gt;
====Removing a character====&lt;br /&gt;
* Now, let's assume that the DELCHARA command deleted a character whose registration number is 1. Then, the &amp;quot;registration number&amp;quot; of the character with &amp;quot;character number 7&amp;quot; added later will become 1.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Keep in mind that the currently registered characters are given a &amp;quot;character registration number&amp;quot; from 0 without any gaps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;stain&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;About Stain==&lt;br /&gt;
===Specifics of the stain data===&lt;br /&gt;
====Types of Stains====&lt;br /&gt;
* The stain data is managed by STAIN. STAIN:TARGET:0 means the dirt of the mouth of the character being trained.&amp;lt;BR&amp;gt;&lt;br /&gt;
* However, there are many different types of stains that can be considered here. If you give a blow job, you'll get a smear of semen, and if you give a cunnilingus, you'll get a smear of love juice.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The sample game assumes four types of dirt: vagina, penis, semen, and anus.&lt;br /&gt;
====How to describe the stain data====&lt;br /&gt;
* Now, the numbers 1, 2, 4, and 8 have been assigned to this stain. In other words, if there are anal and seminal stains, 4+8 is 12, if there are love semen and seminal stains, 1+4 is 5, and so on.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If we express it this way, one variable can handle the four types of stains well. However, &amp;quot;added semen stains in the mouth&amp;quot; and &amp;quot;determining whether there is love semen stains in the mouth&amp;quot; do not work well with the conventional +-*/%.&amp;lt;BR&amp;gt;&lt;br /&gt;
====How to get the stain data====&lt;br /&gt;
* So, we use the &amp;amp; and | operators. It's similar to &amp;amp;&amp;amp; (and) and || (or), but it's used alone.&amp;lt;BR&amp;gt;&lt;br /&gt;
* For example, let's say that STAIN:TARGET:0 is 12. If we call STAIN:TARGET:0 &amp;amp; 4 here, only the part of 4 will be extracted. That is, STAIN:TARGET:0 &amp;amp; 4 == 4.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Next, let's assume that STAIN:TARGET:0 is 1+2+8=11. If we call STAIN:TARGET:0 &amp;amp; 4 here, only the part of 4 will be extracted. That is, STAIN:TARGET:0 &amp;amp; 4 == 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
* This way, you can easily tell which stains are present or not.&lt;br /&gt;
====How to add stain data====&lt;br /&gt;
* Next, let's say that STAIN:TARGET:0 is 1+4=5. If we type STAIN:TARGET:0 | 2, the 2 part will be added. That is, STAIN:TARGET:0 | 2 == 7.&amp;lt;BR&amp;gt;&lt;br /&gt;
* And let's say that STAIN:TARGET:0 is 1+2+4=7. If we set STAIN:TARGET:0 | 2 here, the 2 part will be added. But part 2 is already included, so it doesn't change. That is, STAIN:TARGET:0 | 2 == 7.&amp;lt;BR&amp;gt;&lt;br /&gt;
* It is also possible to write STAIN:TARGET:0 |= 2.&amp;lt;BR&amp;gt;&lt;br /&gt;
* This way, additional dirt can be treated without worrying about whether it already contains dirt or not.&lt;br /&gt;
==Update History==&lt;br /&gt;
* 09/04/20 Page fully translated.&lt;br /&gt;
* 06/05/05 Provisional version released.&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/eramaerb&amp;diff=39838</id>
		<title>Emuera/eramaerb</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/eramaerb&amp;diff=39838"/>
		<updated>2020-04-09T22:08:11Z</updated>

		<summary type="html">&lt;p&gt;Maldito: Page fully transalted&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;B&amp;gt;eramaker ERB file format (provisional)&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
I think &amp;lt;em&amp;gt;&amp;lt;b&amp;gt;it's hard to get a picture just by looking at this file.&amp;lt;/b&amp;gt;&amp;lt;/em&amp;gt; It is easier to understand if you play the sample game first, and then look at the ERB files of the sample game while looking at it.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Basic Info==&lt;br /&gt;
===About the ERB file===&lt;br /&gt;
* Put a folder named ERB directly under eramaker.exe, and put ERB file in it.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can use any file name as long as the extension is .ERB&amp;lt;BR&amp;gt;&lt;br /&gt;
* Please edit it with a text editor such as Notepad.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to write an ERB file===&lt;br /&gt;
====Comments &amp;amp; Spaces====&lt;br /&gt;
In all ERB files,&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* If the first character in the first column is a ; (semicolon), the line is ignored. Empty lines are also ignored.&amp;lt;BR&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Don't put a semicolon at the end of a line, or a comment after it.&amp;lt;/del&amp;gt; Both ways can be done in Emuera.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Any number of spaces or tabs at the beginning of a line will be ignored.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
;Setting up the money&lt;br /&gt;
MONEY = 500&lt;br /&gt;
;Setting the time&lt;br /&gt;
DAY = 10&lt;br /&gt;
TIME = 1&lt;br /&gt;
;Game start&lt;br /&gt;
PRINT What do we do now?&lt;br /&gt;
&lt;br /&gt;
; Also CORRECT in Emuera&lt;br /&gt;
; The ; at the end of MONEY = 500 is not needed&lt;br /&gt;
; MISTAKE in eramaker&lt;br /&gt;
&lt;br /&gt;
MONEY = 500;&lt;br /&gt;
TIME = 5; (Start on Day 5)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Half-width input====&lt;br /&gt;
Please use half-width characters when inputting numbers, instructions, variable names, function names, etc.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
PRINT Let the game begin.&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
ＭＯＮＥＹ ＝　500&lt;br /&gt;
ＰＲＩＮＴ Let the game begin.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Inputting a string====&lt;br /&gt;
It doesn't work properly if you enclose a string with &amp;quot;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
PRINT The day is over...&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
PRINT &amp;quot;The day is over...&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====It' s all in one line====&lt;br /&gt;
Even when writing long instructions, don't split them into more than two lines.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
PRINT Nayuki's body was sensitive and she had a lot of experience, so she was happy even if it was a little rough. Even though she denies it with her mouth, Nayuki is getting more and more promiscuous. But the peculiar circumstance of her being asleep made me hesitant to make a bolder move.&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
PRINT &lt;br /&gt;
Nayuki's body was sensitive and she had a lot of experience, so she was happy even if it was a little rough. Even though she denies it with her mouth, Nayuki is getting more and more promiscuous. But the peculiar circumstance of her being asleep made me hesitant to make a bolder move.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Variables and Instructions==&lt;br /&gt;
===About the variables===&lt;br /&gt;
&lt;br /&gt;
In training SLG, the change of parameters is vital. Therefore, it is necessary to learn how to use &amp;quot;variables&amp;quot; that can store data and perform calculations such as adding and multiplying data.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
====Putting a number in a variable====&lt;br /&gt;
Use = (equal). Please enter it in half-width characters. Before and after = is separated by a half-size space or a tab.&amp;lt;BR&amp;gt;&lt;br /&gt;
The numbers that can be used in eramaker are basically integers. Do not enter a decimal point.&amp;lt;b&amp;gt;*&amp;lt;/b&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
MONEY ＝ 500&lt;br /&gt;
MONEY=500&lt;br /&gt;
MONEY = 3.14&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;*Adendum:&amp;lt;/b&amp;gt; Emuera has since added more number literal types. Check [[Emuera/exvar#Constants_(Literals)|Constants (Literals)]] for more information.&lt;br /&gt;
&lt;br /&gt;
====Putting a calculated number into a variable====&lt;br /&gt;
Use = in the same way. Note that * is for multiplication, / is for division, and % is for the rest of the division.&amp;lt;BR&amp;gt;&lt;br /&gt;
Fractions are rounded down when the result is a decimal.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
;set MONEY to 74&lt;br /&gt;
MONEY = 15+34+25&lt;br /&gt;
;set MONEY to 650&lt;br /&gt;
MONEY = 150+(100-50)*10&lt;br /&gt;
;set MONEY to 3&lt;br /&gt;
MONEY = 10/3&lt;br /&gt;
;set MONEY to TIME multiplied by 10&lt;br /&gt;
MONEY = TIME*10&lt;br /&gt;
;If DAY is 0,1,2... then MONEY becomes 0,10,20... and returns to 0 when it exceeds 7.&lt;br /&gt;
MONEY = DAY%7*10&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
MONEY = 500×10÷4&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Add or multiply variables====&lt;br /&gt;
Use +=, -=, *=, /=, %=.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
MONEY = 100&lt;br /&gt;
TIME = 12&lt;br /&gt;
;set MONEY to 150&lt;br /&gt;
MONEY += 50&lt;br /&gt;
;set MONEY to 750&lt;br /&gt;
MONEY *= 7-2&lt;br /&gt;
;set MONEY to 80&lt;br /&gt;
MONEY -= 670&lt;br /&gt;
;set MONEY to 8&lt;br /&gt;
MONEY %= TIME&lt;br /&gt;
;set MONEY to 1&lt;br /&gt;
MONEY /= TIME-4&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====About Arrays====&lt;br /&gt;
* The variables can be accessed as an &amp;quot;array&amp;quot;. An &amp;quot;array&amp;quot; is for managing multiple data with the variable of the same name.&amp;lt;BR&amp;gt;&lt;br /&gt;
* To access the array, use : (colon). Please enter it in half-width characters. Don't put any spaces in between.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The number that can be put after the array is at least 0. The maximum value is determined by the variable. See the list for more information.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also put a variable instead of a number after the array. However, you can't put an array after an array.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
A = 35&lt;br /&gt;
;Set the FLAG to a value&lt;br /&gt;
FLAG:0 = 0&lt;br /&gt;
FLAG:2 = 10&lt;br /&gt;
FLAG:35 = 440&lt;br /&gt;
;Calculate with FLAG&lt;br /&gt;
FLAG:A += 100/FLAG:2&lt;br /&gt;
FLAG:2 *= FLAG:A&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
FLAG：0 = 10&lt;br /&gt;
FLAG : 52 = 1000&lt;br /&gt;
FLAG:FLAG:20 = 10000&lt;br /&gt;
FLAG:91881816 = 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====About the Double Sequence====&lt;br /&gt;
* Exceptionally, some variables can be accessed using two colons. Usually variables related to your character's data.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Use (variable name):(character number):(variable number) to access it.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
A = 2&lt;br /&gt;
;Makes the 5th character's 0th ability LV3.&lt;br /&gt;
ABL:5:0 = 3&lt;br /&gt;
;A (2nd) character's first experience is increased by 1.&lt;br /&gt;
EXP:A:1 += 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Display the variable on the screen====&lt;br /&gt;
* The easiest way to do this is to use the PRINTV and PRINTVL commands. We will discuss the instruction in more detail later.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
A = 2&lt;br /&gt;
PRINTV A&lt;br /&gt;
A = 30&lt;br /&gt;
PRINTVL A&lt;br /&gt;
B = 400&lt;br /&gt;
PRINTVL B&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
230&lt;br /&gt;
400&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====About String Variables====&lt;br /&gt;
* Regular variables can only handle integers, but there are string variables that can handle strings. However, the features are limited.&amp;lt;BR&amp;gt;&lt;br /&gt;
* To display a string variable on the screen, use the PRINTS or PRINTSL instruction.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
STR:0 = aiueo&lt;br /&gt;
PRINTSL STR:0&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
;You can't add it with +=&lt;br /&gt;
STR:0 += ueo&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Variable List====&lt;br /&gt;
* See [[Emuera/eramavar|here]].&lt;br /&gt;
&lt;br /&gt;
===About Instructions (Basic)===&lt;br /&gt;
Instructions can be used to display characters on the screen and to make conditional judgments.&lt;br /&gt;
====How to write an instruction====&lt;br /&gt;
* The basic writing style is (instruction name) (instruction content). Separate (instruction name) and (instruction content) with a half-size space or tab. &amp;lt;BR&amp;gt;&lt;br /&gt;
* If there is no (instruction content), start a new line as it is.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
PRINT This is a test.&lt;br /&gt;
SIF 3 == 1+2&lt;br /&gt;
   PRINT Obviously.&lt;br /&gt;
WAIT&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
PRINTThis is a test.。&lt;br /&gt;
;wait for input&lt;br /&gt;
WAIT 0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Displaying Text====&lt;br /&gt;
* PRINT is an instruction to display text; PRINTL displays text and starts a new line; PRINTW displays text and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The PRINTV command displays the content of a variable, the PRINTVL command displays the content of the variable and makes a new line, the PRINTVW command displays the content of the variable and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINTS is an instruction that displays the contents of a string variable, PRINTSL displays the contents of the string variable and starts a new line, PRINTSW displays the contents of the string variable and waits for input, and PRINTSW displays the contents of the string variable and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINTFORM can display a combination of characters, variables, and string variables; PRINTFORML can do the same and break a new line; PRINTFORMW can do the same and wait for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINTFORMS is the same as PRINTFORM. PRINTFORMSL is the same as PRINTFORM, but with a new line, PRINTFORMSW is the same as PRINTFORM and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
(If you are waiting for input with a W at the end of the command, press Enter to move on, and the line will eventually be broken.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
NAME:0 = Sato&lt;br /&gt;
PRINT The money is &lt;br /&gt;
PRINTV MONEY&lt;br /&gt;
PRINTL  yen.&lt;br /&gt;
PRINT My name is &lt;br /&gt;
PRINTS NAME:0&lt;br /&gt;
PRINTL .&lt;br /&gt;
PRINTFORML To repeat, the name is %NAME:0% and the money is {MONEY} yen.&lt;br /&gt;
PRINTFORMW If you get 1000 yen and pay 600 yen, you're left with {MONEY+1000-600} yen.&lt;br /&gt;
STR:0 = If you multiply that money by five, it's {(MONEY+1000-600)*5} yen.&lt;br /&gt;
PRINTFORMSW STR:0&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
The money is 500 yen.&lt;br /&gt;
My name is Sato.&lt;br /&gt;
To repeat, the name is Sato and the money is 500 yen.&lt;br /&gt;
If you get 1000 yen and pay 600 yen, you're left with 900 yen.&lt;br /&gt;
If you multiply that money by five, it's 4500 yen.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Making Conditional Decisions====&lt;br /&gt;
&lt;br /&gt;
* The quickest way to understand conditional decisions is to look at &amp;lt;b&amp;gt;examples&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* SIF executes the next line if the conditional expression is not 0 (if true). If it is 0 (if not true), it skips the next line.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If the conditional expression is not 0 (if satisfied), IF executes from the next line until ELSE, ELSEIF, or ENDIF are encountered. (If it's ELSE, it will be executed from the next line until it receives an ENDIF. If the conditional expression is satisfied in ELSEIF, it executes the next lines until it encounters ELSE, ELSEIF, or ENDIF. If the conditional expression is not satisfied, skip until ELSE, ELSEIF, or ENDIF, and repeat)&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
A = 1&lt;br /&gt;
B = 2&lt;br /&gt;
C = 4&lt;br /&gt;
&lt;br /&gt;
SIF A == 1&lt;br /&gt;
   PRINTL Test 1&lt;br /&gt;
SIF B != 1&lt;br /&gt;
   PRINTL Test 2&lt;br /&gt;
SIF C &amp;lt; 5&lt;br /&gt;
   PRINTL Test 3&lt;br /&gt;
IF A+B &amp;gt; 2&lt;br /&gt;
   IF C &amp;gt;= 6&lt;br /&gt;
      PRINTL Test 4&lt;br /&gt;
   ELSE&lt;br /&gt;
      PRINTL Test 5&lt;br /&gt;
   ENDIF&lt;br /&gt;
   IF A == 1 &amp;amp;&amp;amp; B == 3&lt;br /&gt;
      PRINTL Test 6&lt;br /&gt;
   ELSEIF A == 1 || B == 3&lt;br /&gt;
      PRINTL Test 7&lt;br /&gt;
   ELSEIF A &amp;gt; 1 || (B &amp;gt; 2 &amp;amp;&amp;amp; C &amp;gt; 2)&lt;br /&gt;
      PRINTL Test 8&lt;br /&gt;
   ENDIF&lt;br /&gt;
ELSEIF A+B == 2&lt;br /&gt;
   PRINTL Test 9&lt;br /&gt;
ELSE&lt;br /&gt;
   PRINTL Test 10&lt;br /&gt;
ENDIF&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
Test 1&lt;br /&gt;
Test 2&lt;br /&gt;
Test 3&lt;br /&gt;
Test 5&lt;br /&gt;
Test 7&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Use == for &amp;quot;equal&amp;quot; and != for &amp;quot;not equal&amp;quot;, &amp;gt; for &amp;quot;left is greater than&amp;quot;, &amp;gt;= for &amp;quot;left is greater or equal than right&amp;quot;, &amp;lt; for &amp;quot;left is less than&amp;quot;, and &amp;lt;= for &amp;quot;left is less or equal than right&amp;quot;. All fields must be typed in half-width characters.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Use &amp;amp;&amp;amp; for &amp;quot;and&amp;quot; and || for &amp;quot;or&amp;quot;. All fields must be typed in half-width characters.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also use parentheses to describe complex conditions.&lt;br /&gt;
&lt;br /&gt;
====Input and wait for input====&lt;br /&gt;
* Use WAIT to wait for input, e.g. to display a sentence.&amp;lt;BR&amp;gt;&lt;br /&gt;
（※Usually something like PRINTW is used instead. It makes it easier to see because stuff can be expressed with fewer lines）&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you want the player to input an integer, use INPUT. The result of the input is stored in the RESULT variable.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you want the player to input a string, use INPUTS. The result of the input is stored in RESULTS variable.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
PRINT Data entry begins.&lt;br /&gt;
WAIT&lt;br /&gt;
PRINTL Please enter your age.&lt;br /&gt;
INPUT&lt;br /&gt;
PRINTL Please enter your name.&lt;br /&gt;
INPUTS&lt;br /&gt;
PRINTFORML %RESULTS% is {RESULT} years old, isn't it?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Repetition and GOTO====&lt;br /&gt;
* If you want to repeat the same instruction, use REPEAT, which is repeated until REND is found. The number of times it is repeated is stored in the COUNT.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Please note that you cannot create a REPEAT inside a REPEAT.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you use CONTINUE on the way from REPEAT to REND, it will go back to where REPEAT was. If you use BREAK, it will stop repeating and skip to the next line after REND.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you want to move to another place at once, you can use GOTO. To use GOTO, you need to register a &amp;quot;label&amp;quot; with $.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Example 1&lt;br /&gt;
&lt;br /&gt;
REPEAT 10&lt;br /&gt;
   PRINT AIU&lt;br /&gt;
REND&lt;br /&gt;
;Line break by writing 0 characters in PRINTL&lt;br /&gt;
PRINTL &lt;br /&gt;
REPEAT 5&lt;br /&gt;
   PRINTFORML Score: {COUNT*5}&lt;br /&gt;
REND&lt;br /&gt;
&lt;br /&gt;
; Results Of Example 1&lt;br /&gt;
&lt;br /&gt;
AIUAIUAIUAIUAIUAIUAIUAIUAIUAIU&lt;br /&gt;
Score: 0&lt;br /&gt;
Score: 5&lt;br /&gt;
Score: 10&lt;br /&gt;
Score: 15&lt;br /&gt;
Score: 20&lt;br /&gt;
&lt;br /&gt;
; Example 2&lt;br /&gt;
&lt;br /&gt;
MONEY = 300&lt;br /&gt;
REPEAT 5&lt;br /&gt;
    SIF MONEY &amp;lt;= COUNT*100&lt;br /&gt;
        BREAK&lt;br /&gt;
    PRINTFORML That's more money than {COUNT*100} yen.&lt;br /&gt;
REND&lt;br /&gt;
REPEAT 5&lt;br /&gt;
    SIF MONEY == COUNT*100&lt;br /&gt;
        CONTINUE&lt;br /&gt;
    PRINTFORML The holdings are not {COUNT*100} yen.&lt;br /&gt;
REND&lt;br /&gt;
&lt;br /&gt;
; Results Of Example 2&lt;br /&gt;
&lt;br /&gt;
That's more money than 0 yen.&lt;br /&gt;
That's more money than 100 yen.&lt;br /&gt;
That's more money than 200 yen.&lt;br /&gt;
The holdings are not 0 yen.&lt;br /&gt;
The holdings are not 100 yen.&lt;br /&gt;
The holdings are not 200 yen.&lt;br /&gt;
The holdings are not 400 yen.&lt;br /&gt;
&lt;br /&gt;
; Example 3&lt;br /&gt;
&lt;br /&gt;
$INPUT_LOOP&lt;br /&gt;
PRINTL Enter a number from 0 to 9.&lt;br /&gt;
INPUT&lt;br /&gt;
SIF RESULT &amp;lt; 0 || RESULT &amp;gt; 9&lt;br /&gt;
    GOTO INPUT_LOOP&lt;br /&gt;
PRINTFORML {RESULT} has been entered.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====About Functions====&lt;br /&gt;
* It's hard to understand your program when you're writing it from start to finish.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can use &amp;quot;functions&amp;quot; to break them down into parts and make them easier to understand.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Functions are registered using @. After @, write the name of the function using the alphabet and _ (underscore). Please enter the function name in half-width characters.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The first function called in the game should be named EVENTFIRST (more on this later).&amp;lt;BR&amp;gt;&lt;br /&gt;
* To move to another function, use JUMP.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you want to move to another function and then resume from the original position when the function is finished, use CALL.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you use RETURN in a function called by CALL, you can terminate the function in the middle. At that time, the number specified by RETURN is stored in RESULT. If the function exits without using RETURN, RESULT will be set to 0.&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you use RESTART, you start from the beginning of the function.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
@EVENTFIRST&lt;br /&gt;
PRINTW Game start.&lt;br /&gt;
&lt;br /&gt;
CALL OPENING&lt;br /&gt;
PRINTFORMW The opening result was {RESULT}.&lt;br /&gt;
CALL GAME_MAIN&lt;br /&gt;
PRINTFORMW The result of the game was {RESULT}.&lt;br /&gt;
JUMP ENDING&lt;br /&gt;
&lt;br /&gt;
PRINTL You can't see this part because I used JUMP.&lt;br /&gt;
&lt;br /&gt;
@OPENING&lt;br /&gt;
PRINTW Doing Opening.&lt;br /&gt;
RETURN 25&lt;br /&gt;
&lt;br /&gt;
@GAME_MAIN&lt;br /&gt;
PRINTW We're in the game.&lt;br /&gt;
PRINTL Ending without RETURN.&lt;br /&gt;
&lt;br /&gt;
@ENDING&lt;br /&gt;
PRINTW Doing Ending.&lt;br /&gt;
RESTART&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
Game start.&lt;br /&gt;
Doing Opening.&lt;br /&gt;
The opening result was 25.&lt;br /&gt;
We're in the game.&lt;br /&gt;
Ending without RETURN.&lt;br /&gt;
The result of the game was 0.&lt;br /&gt;
Doing Ending.&lt;br /&gt;
Doing Ending.&lt;br /&gt;
Doing Ending.&lt;br /&gt;
Doing Ending.&lt;br /&gt;
Doing Ending.&lt;br /&gt;
.......(keeps on infinitely)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Other Basic Instructions====&lt;br /&gt;
* Use QUIT to quit the game.&amp;lt;BR&amp;gt;&lt;br /&gt;
* With DRAWLINE, you can draw a line ---- from the left edge of the screen to the right edge of the screen.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can use TIMES to multiply by decimals. eramaker basically treats numbers as integers, so if you want to intertwine decimals, you can use this instruction: TIMES (variable),(fractional).&amp;lt;BR&amp;gt;&lt;br /&gt;
* If you use BAR, you can display a graph like [*****....], if you use BARL, you can use it in the form of a new line. BARL is used the same way as BAR (variable),(maximum value),(length).&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
DRAWLINE&lt;br /&gt;
BARL MONEY , 1000 , 20&lt;br /&gt;
PRINTFORMW I have {MONEY} yen.&lt;br /&gt;
DRAWLINE&lt;br /&gt;
TIMES MONEY , 1.25&lt;br /&gt;
BARL MONEY , 1000 , 20&lt;br /&gt;
PRINTFORMW It is now {MONEY} yen. End the game.&lt;br /&gt;
QUIT&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------&lt;br /&gt;
[**********..........]&lt;br /&gt;
I have 500 yen.&lt;br /&gt;
---------------------------------------------------------------------&lt;br /&gt;
[************........]&lt;br /&gt;
It is now 625 yen. End the game.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===About Instructions (for Training)===&lt;br /&gt;
* The eramaker has a number of special instructions to use for training.&lt;br /&gt;
&lt;br /&gt;
====Display of training data====&lt;br /&gt;
* PRINT_ABL displays the character's abilities.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_TALENT displays the character's qualities.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_MARK displays the character's marks.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_EXP displays the experiences of the character.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_PALAM displays the character's training parameters.&amp;lt;BR&amp;gt;&lt;br /&gt;
* When using the above instructions, specify which character's data you want to display. For example, PRINT_ABL 0 will usually show the ability of the protagonist.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_ITEM displays the items in your possession.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_SHOPITEM displays the items available in the shop.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* UPCHECK shows the change in training parameters as a result of training commands.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
====Character Management====&lt;br /&gt;
* ADDCHARA adds a character. If you want to add the character number 3, you do it with ADDCHARA 3.&amp;lt;BR&amp;gt;&lt;br /&gt;
* ADDSPCHARA adds an SP character. If you want to add an SP character with character number 3, use ADDSPCHARA 3.&amp;lt;BR&amp;gt;&lt;br /&gt;
(An SP character is a character whose character flag number 0 is 1)&amp;lt;BR&amp;gt;&lt;br /&gt;
* DELCHARA removes characters added by ADDCHARA and others.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
;The name of the character with character number 0 is Hiroyuki, the main character.&lt;br /&gt;
;Suppose the name of the character number 3 is Tomoko, the name of the character number 5 is Remy, and the name of the character number 6 is Kotone.&lt;br /&gt;
PRINTFORML The number of characters you have now is {CHARANUM}.&lt;br /&gt;
&lt;br /&gt;
ADDCHARA 3&lt;br /&gt;
ADDCHARA 5&lt;br /&gt;
ADDCHARA 6&lt;br /&gt;
PRINTFORML The number of characters you have now is {CHARANUM}.&lt;br /&gt;
REPEAT CHARANUM&lt;br /&gt;
   PRINTFORML At number {COUNT} is %NAME:COUNT%。&lt;br /&gt;
REND&lt;br /&gt;
DELCHARA 2&lt;br /&gt;
PRINTFORML The number of characters you have now is {CHARANUM}.&lt;br /&gt;
REPEAT CHARANUM&lt;br /&gt;
   PRINTFORML At number {COUNT} is %NAME:COUNT%。&lt;br /&gt;
REND&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
The number of characters you have now is 1.&lt;br /&gt;
The number of characters you have now is 4.&lt;br /&gt;
At number 0 is Hiroyuki。&lt;br /&gt;
At number 1 is Tomoko。&lt;br /&gt;
At number 2 is Remy。&lt;br /&gt;
At number 3 is Kotone。&lt;br /&gt;
The number of characters you have now is 3.&lt;br /&gt;
At number 0 is Hiroyuki。&lt;br /&gt;
At number 1 is Tomoko。&lt;br /&gt;
At number 2 is Kotone。&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Save-Related====&lt;br /&gt;
* SAVEGAME calls the save screen and LOADGAME calls the load screen. You must be a SHOP to be able to call them.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PUTFORM can only be used with a special function called @SAVEINFO, which can be written in the same format as PRINTFORM to give an overview of the saved data. It's a good idea to write data such as what day it is, how good your characters are, and which characters you're training.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====BEGIN====&lt;br /&gt;
* BEGIN progresses the game by invoking various system instructions.&amp;lt;BR&amp;gt;&lt;br /&gt;
* When BEGIN is called, the running function is terminated, and even if it is called from somewhere by CALL, it does not return to the original function.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN TRAIN will start training.&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN AFTERTRAIN is no longer training.&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN ABLUP invokes the Ability Up screen.&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN TURNEND ends its turn.&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN SHOP calls the SHOP.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Update History==&lt;br /&gt;
* 09/04/20　Page fully translated.&lt;br /&gt;
* 06/05/05　Provisional version released.&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/eramaerb&amp;diff=39837</id>
		<title>Emuera/eramaerb</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/eramaerb&amp;diff=39837"/>
		<updated>2020-04-09T01:36:31Z</updated>

		<summary type="html">&lt;p&gt;Maldito: /* １行で完結 */  title translation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;B&amp;gt;eramaker ERB file format (provisional)&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
I think &amp;lt;em&amp;gt;&amp;lt;b&amp;gt;it's hard to get a picture just by looking at this file.&amp;lt;/b&amp;gt;&amp;lt;/em&amp;gt; It is easier to understand if you play the sample game first, and then look at the ERB files of the sample game while looking at it.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Basic Info==&lt;br /&gt;
===About the ERB file===&lt;br /&gt;
* Put a folder named ERB directly under eramaker.exe, and put ERB file in it.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can use any file name as long as the extension is .ERB&amp;lt;BR&amp;gt;&lt;br /&gt;
* Please edit it with a text editor such as Notepad.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to write an ERB file===&lt;br /&gt;
====Comments &amp;amp; Spaces====&lt;br /&gt;
In all ERB files,&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* If the first character in the first column is a ; (semicolon), the line is ignored. Empty lines are also ignored.&amp;lt;BR&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Don't put a semicolon at the end of a line, or a comment after it.&amp;lt;/del&amp;gt; Both ways can be done in Emuera.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Any number of spaces or tabs at the beginning of a line will be ignored.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
;Setting up the money&lt;br /&gt;
MONEY = 500&lt;br /&gt;
;Setting the time&lt;br /&gt;
DAY = 10&lt;br /&gt;
TIME = 1&lt;br /&gt;
;Game start&lt;br /&gt;
PRINT What do we do now?&lt;br /&gt;
&lt;br /&gt;
; Also CORRECT in Emuera&lt;br /&gt;
; The ; at the end of MONEY = 500 is not needed&lt;br /&gt;
; MISTAKE in eramaker&lt;br /&gt;
&lt;br /&gt;
MONEY = 500;&lt;br /&gt;
TIME = 5; (Start on Day 5)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Half-width input====&lt;br /&gt;
Please use half-width characters when inputting numbers, instructions, variable names, function names, etc.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
PRINT Let the game begin.&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
ＭＯＮＥＹ ＝　５００&lt;br /&gt;
ＰＲＩＮＴ Let the game begin.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Inputting a string====&lt;br /&gt;
It doesn't work properly if you enclose a string with &amp;quot;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
PRINT The day is over...&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
PRINT &amp;quot;The day is over...&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====It' s all in one line====&lt;br /&gt;
Even when writing long instructions, don't split them into more than two lines.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
PRINT Nayuki's body was sensitive and she had a lot of experience, so she was happy even if it was a little rough. Even though she denies it with her mouth, Nayuki is getting more and more promiscuous. But the peculiar circumstance of her being asleep made me hesitant to make a bolder move.&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
PRINT &lt;br /&gt;
Nayuki's body was sensitive and she had a lot of experience, so she was happy even if it was a little rough. Even though she denies it with her mouth, Nayuki is getting more and more promiscuous. But the peculiar circumstance of her being asleep made me hesitant to make a bolder move.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Variables and Instructions==&lt;br /&gt;
===About the variables===&lt;br /&gt;
&lt;br /&gt;
In training SLG, the change of parameters is vital. Therefore, it is necessary to learn how to use &amp;quot;variables&amp;quot; that can store data and perform calculations such as adding and multiplying data.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
====Putting a number in a variable====&lt;br /&gt;
Use = (equal). Please enter it in half-width characters. Before and after = is separated by a half-size space or a tab.&amp;lt;BR&amp;gt;&lt;br /&gt;
The numbers that can be used in eramaker are basically integers. Do not enter a decimal point.&amp;lt;b&amp;gt;*&amp;lt;/b&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
MONEY ＝ 500&lt;br /&gt;
MONEY=500&lt;br /&gt;
MONEY = 3.14&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;*Adendum:&amp;lt;/b&amp;gt; Emuera has since added more number literal types. Check [[Emuera/exvar#Constants_(Literals)|Constants (Literals)]] for more information.&lt;br /&gt;
&lt;br /&gt;
====Putting a calculated number into a variable====&lt;br /&gt;
Use = in the same way. Note that * is for multiplication, / is for division, and % is for the rest of the division.&amp;lt;BR&amp;gt;&lt;br /&gt;
Fractions are rounded down when the result is a decimal.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
;set MONEY to 74&lt;br /&gt;
MONEY = 15+34+25&lt;br /&gt;
;set MONEY to 650&lt;br /&gt;
MONEY = 150+(100-50)*10&lt;br /&gt;
;set MONEY to 3&lt;br /&gt;
MONEY = 10/3&lt;br /&gt;
;set MONEY to TIME multiplied by 10&lt;br /&gt;
MONEY = TIME*10&lt;br /&gt;
;If DAY is 0,1,2... then MONEY becomes 0,10,20... and returns to 0 when it exceeds 7.&lt;br /&gt;
MONEY = DAY%7*10&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
MONEY = 500×10÷4&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Add or multiply variables====&lt;br /&gt;
Use +=, -=, *=, /=, %=.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
MONEY = 100&lt;br /&gt;
TIME = 12&lt;br /&gt;
;set MONEY to 150&lt;br /&gt;
MONEY += 50&lt;br /&gt;
;set MONEY to 750&lt;br /&gt;
MONEY *= 7-2&lt;br /&gt;
;set MONEY to 80&lt;br /&gt;
MONEY -= 670&lt;br /&gt;
;set MONEY to 8&lt;br /&gt;
MONEY %= TIME&lt;br /&gt;
;set MONEY to 1&lt;br /&gt;
MONEY /= TIME-4&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====About Arrays====&lt;br /&gt;
* The variables can be accessed as an &amp;quot;array&amp;quot;. An &amp;quot;array&amp;quot; is for managing multiple data with the variable of the same name.&amp;lt;BR&amp;gt;&lt;br /&gt;
* To access the array, use : (colon). Please enter it in half-width characters. Don't put any spaces in between.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The number that can be put after the array is at least 0. The maximum value is determined by the variable. See the list for more information.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also put a variable instead of a number after the array. However, you can't put an array after an array.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
A = 35&lt;br /&gt;
;Set the FLAG to a value&lt;br /&gt;
FLAG:0 = 0&lt;br /&gt;
FLAG:2 = 10&lt;br /&gt;
FLAG:35 = 440&lt;br /&gt;
;Calculate with FLAG&lt;br /&gt;
FLAG:A += 100/FLAG:2&lt;br /&gt;
FLAG:2 *= FLAG:A&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
FLAG：0 = 10&lt;br /&gt;
FLAG : 52 = 1000&lt;br /&gt;
FLAG:FLAG:20 = 10000&lt;br /&gt;
FLAG:91881816 = 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====About the Double Sequence====&lt;br /&gt;
* Exceptionally, some variables can be accessed using two colons. Usually variables related to your character's data.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Use (variable name):(character number):(variable number) to access it.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
A = 2&lt;br /&gt;
;Makes the 5th character's 0th ability LV3.&lt;br /&gt;
ABL:5:0 = 3&lt;br /&gt;
;A (2nd) character's first experience is increased by 1.&lt;br /&gt;
EXP:A:1 += 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Display the variable on the screen====&lt;br /&gt;
* The easiest way to do this is to use the PRINTV and PRINTVL commands. We will discuss the instruction in more detail later.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
A = 2&lt;br /&gt;
PRINTV A&lt;br /&gt;
A = 30&lt;br /&gt;
PRINTVL A&lt;br /&gt;
B = 400&lt;br /&gt;
PRINTVL B&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
230&lt;br /&gt;
400&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====About String Variables====&lt;br /&gt;
* Regular variables can only handle integers, but there are string variables that can handle strings. However, the features are limited.&amp;lt;BR&amp;gt;&lt;br /&gt;
* To display a string variable on the screen, use the PRINTS or PRINTSL instruction.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
STR:0 = aiueo&lt;br /&gt;
PRINTSL STR:0&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
;You can't add it with +=&lt;br /&gt;
STR:0 += ueo&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Variable List====&lt;br /&gt;
* See [[Emuera/eramavar|here]].&lt;br /&gt;
&lt;br /&gt;
===About Instructions (Basic)===&lt;br /&gt;
Instructions can be used to display characters on the screen and to make conditional judgments.&lt;br /&gt;
====How to write an instruction====&lt;br /&gt;
* The basic writing style is (instruction name) (instruction content). Separate (instruction name) and (instruction content) with a half-size space or tab. &amp;lt;BR&amp;gt;&lt;br /&gt;
* If there is no (instruction content), start a new line as it is.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
PRINT This is a test.&lt;br /&gt;
SIF 3 == 1+2&lt;br /&gt;
   PRINT Obviously.&lt;br /&gt;
WAIT&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
PRINTThis is a test.。&lt;br /&gt;
;wait for input&lt;br /&gt;
WAIT 0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Displaying Text====&lt;br /&gt;
* PRINT is an instruction to display text; PRINTL displays text and starts a new line; PRINTW displays text and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The PRINTV command displays the content of a variable, the PRINTVL command displays the content of the variable and makes a new line, the PRINTVW command displays the content of the variable and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINTS is an instruction that displays the contents of a string variable, PRINTSL displays the contents of the string variable and starts a new line, PRINTSW displays the contents of the string variable and waits for input, and PRINTSW displays the contents of the string variable and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINTFORM can display a combination of characters, variables, and string variables; PRINTFORML can do the same and break a new line; PRINTFORMW can do the same and wait for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINTFORMS is the same as PRINTFORM. PRINTFORMSL is the same as PRINTFORM, but with a new line, PRINTFORMSW is the same as PRINTFORM and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
(If you are waiting for input with a W at the end of the command, press Enter to move on, and the line will eventually be broken.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
NAME:0 = Sato&lt;br /&gt;
PRINT The money is &lt;br /&gt;
PRINTV MONEY&lt;br /&gt;
PRINTL  yen.&lt;br /&gt;
PRINT My name is &lt;br /&gt;
PRINTS NAME:0&lt;br /&gt;
PRINTL .&lt;br /&gt;
PRINTFORML To repeat, the name is %NAME:0% and the money is {MONEY} yen.&lt;br /&gt;
PRINTFORMW If you get 1000 yen and pay 600 yen, you're left with {MONEY+1000-600} yen.&lt;br /&gt;
STR:0 = If you multiply that money by five, it's {(MONEY+1000-600)*5} yen.&lt;br /&gt;
PRINTFORMSW STR:0&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
The money is 500 yen.&lt;br /&gt;
My name is Sato.&lt;br /&gt;
To repeat, the name is Sato and the money is 500 yen.&lt;br /&gt;
If you get 1000 yen and pay 600 yen, you're left with 900 yen.&lt;br /&gt;
If you multiply that money by five, it's 4500 yen.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====条件判断する====&lt;br /&gt;
&lt;br /&gt;
* 条件判断は; EXAMPLE&amp;lt;/B&amp;gt;を見ながら理解するのが早&lt;br /&gt;
&lt;br /&gt;
* SIFは条件式が0でなければ（成立した場合）次の行を実行します。0の場合（成立しない場合）、次の行をスキップします。&amp;lt;BR&amp;gt;&lt;br /&gt;
* IFは条件式が0でなければ（成立した場合）、次の行からELSE、ELSEIF、ENDIFを迎えるまで実行していきます。0である場合（成立しない場合）、ELSE、ELSEIF、ENDIFを迎えるまでスキップします。（ELSEならその次の行からENDIFを迎えるまで実行します。ELSEIFで条件式が成立している場合、その次の行からELSEかELSEIFかENDIFを迎えるまで実行します。成立していなければELSEかELSEIFかENDIFを迎えるまでスキップし、同じことを繰り返します）&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
A = 1&lt;br /&gt;
B = 2&lt;br /&gt;
C = 4&lt;br /&gt;
&lt;br /&gt;
SIF A == 1&lt;br /&gt;
   PRINTL テスト１&lt;br /&gt;
SIF B != 1&lt;br /&gt;
   PRINTL テスト２&lt;br /&gt;
SIF C &amp;lt; 5&lt;br /&gt;
   PRINTL テスト３&lt;br /&gt;
IF A+B &amp;gt; 2&lt;br /&gt;
   IF C &amp;gt;= 6&lt;br /&gt;
      PRINTL テスト４&lt;br /&gt;
   ELSE&lt;br /&gt;
      PRINTL テスト５&lt;br /&gt;
   ENDIF&lt;br /&gt;
   IF A == 1 &amp;amp;&amp;amp; B == 3&lt;br /&gt;
      PRINTL テスト６&lt;br /&gt;
   ELSEIF A == 1 || B == 3&lt;br /&gt;
      PRINTL テスト７&lt;br /&gt;
   ELSEIF A &amp;gt; 1 || (B &amp;gt; 2 &amp;amp;&amp;amp; C &amp;gt; 2)&lt;br /&gt;
      PRINTL テスト８&lt;br /&gt;
   ENDIF&lt;br /&gt;
ELSEIF A+B == 2&lt;br /&gt;
   PRINTL テスト９&lt;br /&gt;
ELSE&lt;br /&gt;
   PRINTL テスト１０&lt;br /&gt;
ENDIF&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
テスト１&lt;br /&gt;
テスト２&lt;br /&gt;
テスト３&lt;br /&gt;
テスト５&lt;br /&gt;
テスト７&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 「等しい」には==を、「等しくない」には!=を、「左が大きい」には&amp;gt;を、「左が右以上」には&amp;gt;=を、「右が大きい」には&amp;lt;を、「右が左以上」には&amp;lt;=を使います。すべて半角で入力してください。&amp;lt;BR&amp;gt;&lt;br /&gt;
* 「かつ」には&amp;amp;&amp;amp;を、「または」には||を使います。すべて半角で入力してください。&amp;lt;BR&amp;gt;&lt;br /&gt;
* カッコを使い、複雑な条件を記述することもできます。&lt;br /&gt;
&lt;br /&gt;
====入力と入力待ち====&lt;br /&gt;
* 文章を表示するなどして、入力を待つときにはWAITを使います。&amp;lt;BR&amp;gt;&lt;br /&gt;
（※普段はPRINTWなどを使うと、少ない行数で表現できるため見やすいです）&amp;lt;BR&amp;gt;&lt;br /&gt;
* 整数をプレイヤーに入力させたいときはINPUTを使います。入力された結果はRESULTに格納されます。&amp;lt;BR&amp;gt;&lt;br /&gt;
* 文字列をプレイヤーに入力させたいときはINPUTSを使います。入力された結果はRESULTSに格納されます。&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
PRINT データ入力開始。&lt;br /&gt;
WAIT&lt;br /&gt;
PRINTL 年齢を入力してください。&lt;br /&gt;
INPUT&lt;br /&gt;
PRINTL 名前を入力してください。&lt;br /&gt;
INPUTS&lt;br /&gt;
PRINTFORML %RESULTS%さんは{RESULT}歳ですね。&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====繰り返しとGOTO====&lt;br /&gt;
* 同じ命令を繰り返したいときはREPEATを使います。RENDがあるまで繰り返されます。繰り返した回数はCOUNTに格納されます。&amp;lt;BR&amp;gt;&lt;br /&gt;
* REPEATの中にREPEATは作れませんので注意してください。&amp;lt;BR&amp;gt;&lt;br /&gt;
* REPEATからRENDまでの途中でCONTINUEを使うと、REPEATのあるところまで戻ります。BREAKを使うと、繰り返しをやめてRENDの次の行までスキップします。&amp;lt;BR&amp;gt;&lt;br /&gt;
* 別のところに一気に移動したいときはGOTOを使います。GOTOを使うときは、$を使って「ラベル」を登録しておく必要があります。&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Example 1&lt;br /&gt;
&lt;br /&gt;
REPEAT 10&lt;br /&gt;
   PRINT あいう&lt;br /&gt;
REND&lt;br /&gt;
;０文字をPRINTLで書くことで改行&lt;br /&gt;
PRINTL &lt;br /&gt;
REPEAT 5&lt;br /&gt;
   PRINTFORML 点数：{COUNT*5}&lt;br /&gt;
REND&lt;br /&gt;
&lt;br /&gt;
; Results Of Example 1&lt;br /&gt;
&lt;br /&gt;
あいうあいうあいうあいうあいうあいうあいうあいうあいうあいう&lt;br /&gt;
点数：0&lt;br /&gt;
点数：5&lt;br /&gt;
点数：10&lt;br /&gt;
点数：15&lt;br /&gt;
点数：20&lt;br /&gt;
&lt;br /&gt;
; Example 2&lt;br /&gt;
&lt;br /&gt;
MONEY = 300&lt;br /&gt;
REPEAT 5&lt;br /&gt;
   SIF MONEY &amp;lt;= COUNT*100&lt;br /&gt;
      BREAK&lt;br /&gt;
   PRINTFORML {COUNT*100}円よりは金が多い。&lt;br /&gt;
REND&lt;br /&gt;
REPEAT 5&lt;br /&gt;
   SIF MONEY == COUNT*100&lt;br /&gt;
      CONTINUE&lt;br /&gt;
   PRINTFORML 所持金は{COUNT*100}円ではない。&lt;br /&gt;
REND&lt;br /&gt;
&lt;br /&gt;
; Results Of Example 2&lt;br /&gt;
&lt;br /&gt;
0円よりは金が多い。&lt;br /&gt;
100円よりは金が多い。&lt;br /&gt;
200円よりは金が多い。&lt;br /&gt;
所持金は0円ではない。&lt;br /&gt;
所持金は100円ではない。&lt;br /&gt;
所持金は200円ではない。&lt;br /&gt;
所持金は400円ではない。&lt;br /&gt;
&lt;br /&gt;
; Example 3&lt;br /&gt;
&lt;br /&gt;
$INPUT_LOOP&lt;br /&gt;
PRINTL ０から９までの数字を入力してください。&lt;br /&gt;
INPUT&lt;br /&gt;
SIF RESULT &amp;lt; 0 || RESULT &amp;gt; 9&lt;br /&gt;
   GOTO INPUT_LOOP&lt;br /&gt;
PRINTFORML {RESULT}が入力されました。&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====関数について====&lt;br /&gt;
* プログラムを最初から最後まで続けて書くとわかりづらいものです。&amp;lt;BR&amp;gt;&lt;br /&gt;
* 部分部分に切り分けてわかりやすくするためには、「関数」を使います。&amp;lt;BR&amp;gt;&lt;br /&gt;
* 関数は@を使って登録します。@の後に、アルファベットと_（アンダーバー）を使って関数名を書いてください。関数名は半角で入力してください。&amp;lt;BR&amp;gt;&lt;br /&gt;
* ゲームの最初に呼ばれる関数は「EVENTFIRST」という名前にします（これについては後に詳述）。&amp;lt;BR&amp;gt;&lt;br /&gt;
* 他の関数に移動するには、JUMPを使います。&amp;lt;BR&amp;gt;&lt;br /&gt;
* 他の関数に移動し、その関数が終わったら再び元の位置から再開したいときはCALLを使います。&amp;lt;BR&amp;gt;&lt;br /&gt;
* CALLで呼ばれた関数の中でRETURNを使うと、その関数を途中で終えることができます。そのとき、RESULTにRETURNで指定した数値が格納されます。RETURNを使わずに関数が終了した場合、RESULTには0が格納されます。&amp;lt;BR&amp;gt;&lt;br /&gt;
* RESTARTを使うと、その関数の最初からやり直します。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
@EVENTFIRST&lt;br /&gt;
PRINTW ゲームスタート。&lt;br /&gt;
&lt;br /&gt;
CALL OPENING&lt;br /&gt;
PRINTFORMW オープニングの結果は{RESULT}でした。&lt;br /&gt;
CALL GAME_MAIN&lt;br /&gt;
PRINTFORMW ゲームの結果は{RESULT}でした。&lt;br /&gt;
JUMP ENDING&lt;br /&gt;
&lt;br /&gt;
PRINTL JUMPしたのでこの部分は表示されない。&lt;br /&gt;
&lt;br /&gt;
@OPENING&lt;br /&gt;
PRINTW オープニングです。&lt;br /&gt;
RETURN 25&lt;br /&gt;
&lt;br /&gt;
@GAME_MAIN&lt;br /&gt;
PRINTW ゲーム中です。&lt;br /&gt;
PRINTL RETURNなしで終わります。&lt;br /&gt;
&lt;br /&gt;
@ENDING&lt;br /&gt;
PRINTW エンディングです。&lt;br /&gt;
RESTART&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
ゲームスタート。&lt;br /&gt;
オープニングです。&lt;br /&gt;
オープニングの結果は25でした。&lt;br /&gt;
ゲーム中です。&lt;br /&gt;
RETURNなしで終わります。&lt;br /&gt;
ゲームの結果は0でした。&lt;br /&gt;
エンディングです。&lt;br /&gt;
エンディングです。&lt;br /&gt;
エンディングです。&lt;br /&gt;
エンディングです。&lt;br /&gt;
エンディングです。&lt;br /&gt;
.......（以下無限）&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====その他、基本的な命令====&lt;br /&gt;
* QUITを使うとゲームを終了します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* DRAWLINEを使うと画面の左端から右端まで----と線を引きます。&amp;lt;BR&amp;gt;&lt;br /&gt;
* TIMESを使うと、小数を使った掛け算ができます。eramakerでは基本的に数値を整数で扱うので、小数を絡めたいときはこの命令を使ってください。TIMES (変数) , (小数値)という形で使います。&amp;lt;BR&amp;gt;&lt;br /&gt;
* BARを使うと、[*****....]のようにグラフが表示できます。BARLの場合は改行されます。BAR (変数) , (最大値), (長さ)という形で使います。&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
DRAWLINE&lt;br /&gt;
BARL MONEY , 1000 , 20&lt;br /&gt;
PRINTFORMW {MONEY}円持っていました。&lt;br /&gt;
DRAWLINE&lt;br /&gt;
TIMES MONEY , 1.25&lt;br /&gt;
BARL MONEY , 1000 , 20&lt;br /&gt;
PRINTFORMW {MONEY}円になりました。ゲームを終了します。&lt;br /&gt;
QUIT&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------&lt;br /&gt;
[**********..........]&lt;br /&gt;
500円持っていました。&lt;br /&gt;
---------------------------------------------------------------------&lt;br /&gt;
[************........]&lt;br /&gt;
625円になりました。ゲームを終了します。&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===命令について（調教用）===&lt;br /&gt;
* eramakerには、調教のために使う特殊な命令がいくつかあります。&lt;br /&gt;
&lt;br /&gt;
====調教用データの表示====&lt;br /&gt;
* PRINT_ABLはキャラの能力を表示します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_TALENTはキャラの素質を表示します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_MARKはキャラの刻印を表示します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_EXPはキャラの経験を表示します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_PALAMはキャラの調教中パラメータを表示します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* 以上の命令を使うときには、どのキャラのデータを表示したいのかを指定してください。たとえばPRINT_ABL 0なら、大体の場合は主人公の能力を表示することになります。&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_ITEMは所持しているアイテムを表示します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_SHOPITEMはショップで売っているアイテムを表示します。&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* UPCHECKは調教コマンドによる調教中パラメータの変化を表示します。&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
====キャラの管理====&lt;br /&gt;
* ADDCHARAはキャラを追加します。キャラ番号3のキャラを追加したいならADDCHARA 3のようにします。&amp;lt;BR&amp;gt;&lt;br /&gt;
* ADDSPCHARAはSPキャラを追加します。キャラ番号3のSPキャラを追加したいならADDSPCHARA 3のようにします。&amp;lt;BR&amp;gt;&lt;br /&gt;
（SPキャラとは、キャラフラグの0番が1であるキャラのことを指します）&amp;lt;BR&amp;gt;&lt;br /&gt;
* DELCHARAはADDCHARAなどで追加したキャラを削除します。&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
;キャラ番号0のキャラの名前が浩之で主人公。&lt;br /&gt;
;キャラ番号3のキャラの名前が智子、5のキャラの名前がレミィ、6のキャラの名前が琴音だとする&lt;br /&gt;
PRINTFORML 今いるキャラは{CHARANUM}人です。&lt;br /&gt;
&lt;br /&gt;
ADDCHARA 3&lt;br /&gt;
ADDCHARA 5&lt;br /&gt;
ADDCHARA 6&lt;br /&gt;
PRINTFORML 今いるキャラは{CHARANUM}人です。&lt;br /&gt;
REPEAT CHARANUM&lt;br /&gt;
   PRINTFORML {COUNT}番目に%NAME:COUNT%。&lt;br /&gt;
REND&lt;br /&gt;
DELCHARA 2&lt;br /&gt;
PRINTFORML 今いるキャラは{CHARANUM}人です。&lt;br /&gt;
REPEAT CHARANUM&lt;br /&gt;
   PRINTFORML {COUNT}番目に%NAME:COUNT%。&lt;br /&gt;
REND&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
今いるキャラは1人です。&lt;br /&gt;
今いるキャラは4人です。&lt;br /&gt;
0番目に浩之。&lt;br /&gt;
1番目に智子。&lt;br /&gt;
2番目にレミィ。&lt;br /&gt;
3番目に琴音。&lt;br /&gt;
今いるキャラは3人です。&lt;br /&gt;
0番目に浩之。&lt;br /&gt;
1番目に智子。&lt;br /&gt;
2番目に琴音。&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====セーブ関係====&lt;br /&gt;
* SAVEGAMEはセーブ画面を、LOADGAMEはロード画面を呼びます。いずれもSHOPでないと呼び出せません。&amp;lt;BR&amp;gt;&lt;br /&gt;
* PUTFORMは@SAVEINFOという特殊な関数でのみ使えます。PRINTFORMと同様の書式で書くことにより、セーブデータに概要をつけることができます。何日目か、キャラの能力はどれくらいか、どのキャラを調教しているかなどのデータを書き込むとよいでしょう。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====BEGIN====&lt;br /&gt;
* BEGINはさまざまなシステム命令を呼び出すことにより、ゲームを進行させます。&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGINを呼んだ時点で実行中の関数は終了します。CALLでどこからか呼ばれてきたとしても、元の関数に戻ることはありません。&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN TRAINは調教を開始します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN AFTERTRAINは調教を終了します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN ABLUPは能力アップ画面を呼び出します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN TURNENDはそのターンを終了します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN SHOPはSHOPを呼び出します。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==更新履歴==&lt;br /&gt;
* 06/05/05　暫定版公開。&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/eramaerb&amp;diff=39836</id>
		<title>Emuera/eramaerb</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/eramaerb&amp;diff=39836"/>
		<updated>2020-04-09T01:34:44Z</updated>

		<summary type="html">&lt;p&gt;Maldito: translated half of the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;B&amp;gt;eramaker ERB file format (provisional)&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
I think &amp;lt;em&amp;gt;&amp;lt;b&amp;gt;it's hard to get a picture just by looking at this file.&amp;lt;/b&amp;gt;&amp;lt;/em&amp;gt; It is easier to understand if you play the sample game first, and then look at the ERB files of the sample game while looking at it.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Basic Info==&lt;br /&gt;
===About the ERB file===&lt;br /&gt;
* Put a folder named ERB directly under eramaker.exe, and put ERB file in it.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can use any file name as long as the extension is .ERB&amp;lt;BR&amp;gt;&lt;br /&gt;
* Please edit it with a text editor such as Notepad.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to write an ERB file===&lt;br /&gt;
====Comments &amp;amp; Spaces====&lt;br /&gt;
In all ERB files,&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* If the first character in the first column is a ; (semicolon), the line is ignored. Empty lines are also ignored.&amp;lt;BR&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Don't put a semicolon at the end of a line, or a comment after it.&amp;lt;/del&amp;gt; Both ways can be done in Emuera.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Any number of spaces or tabs at the beginning of a line will be ignored.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
;Setting up the money&lt;br /&gt;
MONEY = 500&lt;br /&gt;
;Setting the time&lt;br /&gt;
DAY = 10&lt;br /&gt;
TIME = 1&lt;br /&gt;
;Game start&lt;br /&gt;
PRINT What do we do now?&lt;br /&gt;
&lt;br /&gt;
; Also CORRECT in Emuera&lt;br /&gt;
; The ; at the end of MONEY = 500 is not needed&lt;br /&gt;
; MISTAKE in eramaker&lt;br /&gt;
&lt;br /&gt;
MONEY = 500;&lt;br /&gt;
TIME = 5; (Start on Day 5)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Half-width input====&lt;br /&gt;
Please use half-width characters when inputting numbers, instructions, variable names, function names, etc.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
PRINT Let the game begin.&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
ＭＯＮＥＹ ＝　５００&lt;br /&gt;
ＰＲＩＮＴ Let the game begin.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Inputting a string====&lt;br /&gt;
It doesn't work properly if you enclose a string with &amp;quot;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
PRINT The day is over...&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
PRINT &amp;quot;The day is over...&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====１行で完結====&lt;br /&gt;
Even when writing long instructions, don't split them into more than two lines.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
PRINT Nayuki's body was sensitive and she had a lot of experience, so she was happy even if it was a little rough. Even though she denies it with her mouth, Nayuki is getting more and more promiscuous. But the peculiar circumstance of her being asleep made me hesitant to make a bolder move.&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
PRINT &lt;br /&gt;
Nayuki's body was sensitive and she had a lot of experience, so she was happy even if it was a little rough. Even though she denies it with her mouth, Nayuki is getting more and more promiscuous. But the peculiar circumstance of her being asleep made me hesitant to make a bolder move.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Variables and Instructions==&lt;br /&gt;
===About the variables===&lt;br /&gt;
&lt;br /&gt;
In training SLG, the change of parameters is vital. Therefore, it is necessary to learn how to use &amp;quot;variables&amp;quot; that can store data and perform calculations such as adding and multiplying data.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
====Putting a number in a variable====&lt;br /&gt;
Use = (equal). Please enter it in half-width characters. Before and after = is separated by a half-size space or a tab.&amp;lt;BR&amp;gt;&lt;br /&gt;
The numbers that can be used in eramaker are basically integers. Do not enter a decimal point.&amp;lt;b&amp;gt;*&amp;lt;/b&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
MONEY ＝ 500&lt;br /&gt;
MONEY=500&lt;br /&gt;
MONEY = 3.14&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;*Adendum:&amp;lt;/b&amp;gt; Emuera has since added more number literal types. Check [[Emuera/exvar#Constants_(Literals)|Constants (Literals)]] for more information.&lt;br /&gt;
&lt;br /&gt;
====Putting a calculated number into a variable====&lt;br /&gt;
Use = in the same way. Note that * is for multiplication, / is for division, and % is for the rest of the division.&amp;lt;BR&amp;gt;&lt;br /&gt;
Fractions are rounded down when the result is a decimal.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
;set MONEY to 74&lt;br /&gt;
MONEY = 15+34+25&lt;br /&gt;
;set MONEY to 650&lt;br /&gt;
MONEY = 150+(100-50)*10&lt;br /&gt;
;set MONEY to 3&lt;br /&gt;
MONEY = 10/3&lt;br /&gt;
;set MONEY to TIME multiplied by 10&lt;br /&gt;
MONEY = TIME*10&lt;br /&gt;
;If DAY is 0,1,2... then MONEY becomes 0,10,20... and returns to 0 when it exceeds 7.&lt;br /&gt;
MONEY = DAY%7*10&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
MONEY = 500×10÷4&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Add or multiply variables====&lt;br /&gt;
Use +=, -=, *=, /=, %=.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
MONEY = 100&lt;br /&gt;
TIME = 12&lt;br /&gt;
;set MONEY to 150&lt;br /&gt;
MONEY += 50&lt;br /&gt;
;set MONEY to 750&lt;br /&gt;
MONEY *= 7-2&lt;br /&gt;
;set MONEY to 80&lt;br /&gt;
MONEY -= 670&lt;br /&gt;
;set MONEY to 8&lt;br /&gt;
MONEY %= TIME&lt;br /&gt;
;set MONEY to 1&lt;br /&gt;
MONEY /= TIME-4&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====About Arrays====&lt;br /&gt;
* The variables can be accessed as an &amp;quot;array&amp;quot;. An &amp;quot;array&amp;quot; is for managing multiple data with the variable of the same name.&amp;lt;BR&amp;gt;&lt;br /&gt;
* To access the array, use : (colon). Please enter it in half-width characters. Don't put any spaces in between.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The number that can be put after the array is at least 0. The maximum value is determined by the variable. See the list for more information.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also put a variable instead of a number after the array. However, you can't put an array after an array.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
A = 35&lt;br /&gt;
;Set the FLAG to a value&lt;br /&gt;
FLAG:0 = 0&lt;br /&gt;
FLAG:2 = 10&lt;br /&gt;
FLAG:35 = 440&lt;br /&gt;
;Calculate with FLAG&lt;br /&gt;
FLAG:A += 100/FLAG:2&lt;br /&gt;
FLAG:2 *= FLAG:A&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
FLAG：0 = 10&lt;br /&gt;
FLAG : 52 = 1000&lt;br /&gt;
FLAG:FLAG:20 = 10000&lt;br /&gt;
FLAG:91881816 = 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====About the Double Sequence====&lt;br /&gt;
* Exceptionally, some variables can be accessed using two colons. Usually variables related to your character's data.&amp;lt;BR&amp;gt;&lt;br /&gt;
* Use (variable name):(character number):(variable number) to access it.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
A = 2&lt;br /&gt;
;Makes the 5th character's 0th ability LV3.&lt;br /&gt;
ABL:5:0 = 3&lt;br /&gt;
;A (2nd) character's first experience is increased by 1.&lt;br /&gt;
EXP:A:1 += 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Display the variable on the screen====&lt;br /&gt;
* The easiest way to do this is to use the PRINTV and PRINTVL commands. We will discuss the instruction in more detail later.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
A = 2&lt;br /&gt;
PRINTV A&lt;br /&gt;
A = 30&lt;br /&gt;
PRINTVL A&lt;br /&gt;
B = 400&lt;br /&gt;
PRINTVL B&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
230&lt;br /&gt;
400&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====About String Variables====&lt;br /&gt;
* Regular variables can only handle integers, but there are string variables that can handle strings. However, the features are limited.&amp;lt;BR&amp;gt;&lt;br /&gt;
* To display a string variable on the screen, use the PRINTS or PRINTSL instruction.&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
STR:0 = aiueo&lt;br /&gt;
PRINTSL STR:0&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
;You can't add it with +=&lt;br /&gt;
STR:0 += ueo&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Variable List====&lt;br /&gt;
* See [[Emuera/eramavar|here]].&lt;br /&gt;
&lt;br /&gt;
===About Instructions (Basic)===&lt;br /&gt;
Instructions can be used to display characters on the screen and to make conditional judgments.&lt;br /&gt;
====How to write an instruction====&lt;br /&gt;
* The basic writing style is (instruction name) (instruction content). Separate (instruction name) and (instruction content) with a half-size space or tab. &amp;lt;BR&amp;gt;&lt;br /&gt;
* If there is no (instruction content), start a new line as it is.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; CORRECT&lt;br /&gt;
&lt;br /&gt;
PRINT This is a test.&lt;br /&gt;
SIF 3 == 1+2&lt;br /&gt;
   PRINT Obviously.&lt;br /&gt;
WAIT&lt;br /&gt;
&lt;br /&gt;
; MISTAKE&lt;br /&gt;
&lt;br /&gt;
PRINTThis is a test.。&lt;br /&gt;
;wait for input&lt;br /&gt;
WAIT 0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Displaying Text====&lt;br /&gt;
* PRINT is an instruction to display text; PRINTL displays text and starts a new line; PRINTW displays text and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The PRINTV command displays the content of a variable, the PRINTVL command displays the content of the variable and makes a new line, the PRINTVW command displays the content of the variable and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINTS is an instruction that displays the contents of a string variable, PRINTSL displays the contents of the string variable and starts a new line, PRINTSW displays the contents of the string variable and waits for input, and PRINTSW displays the contents of the string variable and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINTFORM can display a combination of characters, variables, and string variables; PRINTFORML can do the same and break a new line; PRINTFORMW can do the same and wait for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINTFORMS is the same as PRINTFORM. PRINTFORMSL is the same as PRINTFORM, but with a new line, PRINTFORMSW is the same as PRINTFORM and waits for input.&amp;lt;BR&amp;gt;&lt;br /&gt;
(If you are waiting for input with a W at the end of the command, press Enter to move on, and the line will eventually be broken.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
NAME:0 = Sato&lt;br /&gt;
PRINT The money is &lt;br /&gt;
PRINTV MONEY&lt;br /&gt;
PRINTL  yen.&lt;br /&gt;
PRINT My name is &lt;br /&gt;
PRINTS NAME:0&lt;br /&gt;
PRINTL .&lt;br /&gt;
PRINTFORML To repeat, the name is %NAME:0% and the money is {MONEY} yen.&lt;br /&gt;
PRINTFORMW If you get 1000 yen and pay 600 yen, you're left with {MONEY+1000-600} yen.&lt;br /&gt;
STR:0 = If you multiply that money by five, it's {(MONEY+1000-600)*5} yen.&lt;br /&gt;
PRINTFORMSW STR:0&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
The money is 500 yen.&lt;br /&gt;
My name is Sato.&lt;br /&gt;
To repeat, the name is Sato and the money is 500 yen.&lt;br /&gt;
If you get 1000 yen and pay 600 yen, you're left with 900 yen.&lt;br /&gt;
If you multiply that money by five, it's 4500 yen.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====条件判断する====&lt;br /&gt;
&lt;br /&gt;
* 条件判断は; EXAMPLE&amp;lt;/B&amp;gt;を見ながら理解するのが早&lt;br /&gt;
&lt;br /&gt;
* SIFは条件式が0でなければ（成立した場合）次の行を実行します。0の場合（成立しない場合）、次の行をスキップします。&amp;lt;BR&amp;gt;&lt;br /&gt;
* IFは条件式が0でなければ（成立した場合）、次の行からELSE、ELSEIF、ENDIFを迎えるまで実行していきます。0である場合（成立しない場合）、ELSE、ELSEIF、ENDIFを迎えるまでスキップします。（ELSEならその次の行からENDIFを迎えるまで実行します。ELSEIFで条件式が成立している場合、その次の行からELSEかELSEIFかENDIFを迎えるまで実行します。成立していなければELSEかELSEIFかENDIFを迎えるまでスキップし、同じことを繰り返します）&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
A = 1&lt;br /&gt;
B = 2&lt;br /&gt;
C = 4&lt;br /&gt;
&lt;br /&gt;
SIF A == 1&lt;br /&gt;
   PRINTL テスト１&lt;br /&gt;
SIF B != 1&lt;br /&gt;
   PRINTL テスト２&lt;br /&gt;
SIF C &amp;lt; 5&lt;br /&gt;
   PRINTL テスト３&lt;br /&gt;
IF A+B &amp;gt; 2&lt;br /&gt;
   IF C &amp;gt;= 6&lt;br /&gt;
      PRINTL テスト４&lt;br /&gt;
   ELSE&lt;br /&gt;
      PRINTL テスト５&lt;br /&gt;
   ENDIF&lt;br /&gt;
   IF A == 1 &amp;amp;&amp;amp; B == 3&lt;br /&gt;
      PRINTL テスト６&lt;br /&gt;
   ELSEIF A == 1 || B == 3&lt;br /&gt;
      PRINTL テスト７&lt;br /&gt;
   ELSEIF A &amp;gt; 1 || (B &amp;gt; 2 &amp;amp;&amp;amp; C &amp;gt; 2)&lt;br /&gt;
      PRINTL テスト８&lt;br /&gt;
   ENDIF&lt;br /&gt;
ELSEIF A+B == 2&lt;br /&gt;
   PRINTL テスト９&lt;br /&gt;
ELSE&lt;br /&gt;
   PRINTL テスト１０&lt;br /&gt;
ENDIF&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
テスト１&lt;br /&gt;
テスト２&lt;br /&gt;
テスト３&lt;br /&gt;
テスト５&lt;br /&gt;
テスト７&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 「等しい」には==を、「等しくない」には!=を、「左が大きい」には&amp;gt;を、「左が右以上」には&amp;gt;=を、「右が大きい」には&amp;lt;を、「右が左以上」には&amp;lt;=を使います。すべて半角で入力してください。&amp;lt;BR&amp;gt;&lt;br /&gt;
* 「かつ」には&amp;amp;&amp;amp;を、「または」には||を使います。すべて半角で入力してください。&amp;lt;BR&amp;gt;&lt;br /&gt;
* カッコを使い、複雑な条件を記述することもできます。&lt;br /&gt;
&lt;br /&gt;
====入力と入力待ち====&lt;br /&gt;
* 文章を表示するなどして、入力を待つときにはWAITを使います。&amp;lt;BR&amp;gt;&lt;br /&gt;
（※普段はPRINTWなどを使うと、少ない行数で表現できるため見やすいです）&amp;lt;BR&amp;gt;&lt;br /&gt;
* 整数をプレイヤーに入力させたいときはINPUTを使います。入力された結果はRESULTに格納されます。&amp;lt;BR&amp;gt;&lt;br /&gt;
* 文字列をプレイヤーに入力させたいときはINPUTSを使います。入力された結果はRESULTSに格納されます。&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
PRINT データ入力開始。&lt;br /&gt;
WAIT&lt;br /&gt;
PRINTL 年齢を入力してください。&lt;br /&gt;
INPUT&lt;br /&gt;
PRINTL 名前を入力してください。&lt;br /&gt;
INPUTS&lt;br /&gt;
PRINTFORML %RESULTS%さんは{RESULT}歳ですね。&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====繰り返しとGOTO====&lt;br /&gt;
* 同じ命令を繰り返したいときはREPEATを使います。RENDがあるまで繰り返されます。繰り返した回数はCOUNTに格納されます。&amp;lt;BR&amp;gt;&lt;br /&gt;
* REPEATの中にREPEATは作れませんので注意してください。&amp;lt;BR&amp;gt;&lt;br /&gt;
* REPEATからRENDまでの途中でCONTINUEを使うと、REPEATのあるところまで戻ります。BREAKを使うと、繰り返しをやめてRENDの次の行までスキップします。&amp;lt;BR&amp;gt;&lt;br /&gt;
* 別のところに一気に移動したいときはGOTOを使います。GOTOを使うときは、$を使って「ラベル」を登録しておく必要があります。&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; Example 1&lt;br /&gt;
&lt;br /&gt;
REPEAT 10&lt;br /&gt;
   PRINT あいう&lt;br /&gt;
REND&lt;br /&gt;
;０文字をPRINTLで書くことで改行&lt;br /&gt;
PRINTL &lt;br /&gt;
REPEAT 5&lt;br /&gt;
   PRINTFORML 点数：{COUNT*5}&lt;br /&gt;
REND&lt;br /&gt;
&lt;br /&gt;
; Results Of Example 1&lt;br /&gt;
&lt;br /&gt;
あいうあいうあいうあいうあいうあいうあいうあいうあいうあいう&lt;br /&gt;
点数：0&lt;br /&gt;
点数：5&lt;br /&gt;
点数：10&lt;br /&gt;
点数：15&lt;br /&gt;
点数：20&lt;br /&gt;
&lt;br /&gt;
; Example 2&lt;br /&gt;
&lt;br /&gt;
MONEY = 300&lt;br /&gt;
REPEAT 5&lt;br /&gt;
   SIF MONEY &amp;lt;= COUNT*100&lt;br /&gt;
      BREAK&lt;br /&gt;
   PRINTFORML {COUNT*100}円よりは金が多い。&lt;br /&gt;
REND&lt;br /&gt;
REPEAT 5&lt;br /&gt;
   SIF MONEY == COUNT*100&lt;br /&gt;
      CONTINUE&lt;br /&gt;
   PRINTFORML 所持金は{COUNT*100}円ではない。&lt;br /&gt;
REND&lt;br /&gt;
&lt;br /&gt;
; Results Of Example 2&lt;br /&gt;
&lt;br /&gt;
0円よりは金が多い。&lt;br /&gt;
100円よりは金が多い。&lt;br /&gt;
200円よりは金が多い。&lt;br /&gt;
所持金は0円ではない。&lt;br /&gt;
所持金は100円ではない。&lt;br /&gt;
所持金は200円ではない。&lt;br /&gt;
所持金は400円ではない。&lt;br /&gt;
&lt;br /&gt;
; Example 3&lt;br /&gt;
&lt;br /&gt;
$INPUT_LOOP&lt;br /&gt;
PRINTL ０から９までの数字を入力してください。&lt;br /&gt;
INPUT&lt;br /&gt;
SIF RESULT &amp;lt; 0 || RESULT &amp;gt; 9&lt;br /&gt;
   GOTO INPUT_LOOP&lt;br /&gt;
PRINTFORML {RESULT}が入力されました。&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====関数について====&lt;br /&gt;
* プログラムを最初から最後まで続けて書くとわかりづらいものです。&amp;lt;BR&amp;gt;&lt;br /&gt;
* 部分部分に切り分けてわかりやすくするためには、「関数」を使います。&amp;lt;BR&amp;gt;&lt;br /&gt;
* 関数は@を使って登録します。@の後に、アルファベットと_（アンダーバー）を使って関数名を書いてください。関数名は半角で入力してください。&amp;lt;BR&amp;gt;&lt;br /&gt;
* ゲームの最初に呼ばれる関数は「EVENTFIRST」という名前にします（これについては後に詳述）。&amp;lt;BR&amp;gt;&lt;br /&gt;
* 他の関数に移動するには、JUMPを使います。&amp;lt;BR&amp;gt;&lt;br /&gt;
* 他の関数に移動し、その関数が終わったら再び元の位置から再開したいときはCALLを使います。&amp;lt;BR&amp;gt;&lt;br /&gt;
* CALLで呼ばれた関数の中でRETURNを使うと、その関数を途中で終えることができます。そのとき、RESULTにRETURNで指定した数値が格納されます。RETURNを使わずに関数が終了した場合、RESULTには0が格納されます。&amp;lt;BR&amp;gt;&lt;br /&gt;
* RESTARTを使うと、その関数の最初からやり直します。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
@EVENTFIRST&lt;br /&gt;
PRINTW ゲームスタート。&lt;br /&gt;
&lt;br /&gt;
CALL OPENING&lt;br /&gt;
PRINTFORMW オープニングの結果は{RESULT}でした。&lt;br /&gt;
CALL GAME_MAIN&lt;br /&gt;
PRINTFORMW ゲームの結果は{RESULT}でした。&lt;br /&gt;
JUMP ENDING&lt;br /&gt;
&lt;br /&gt;
PRINTL JUMPしたのでこの部分は表示されない。&lt;br /&gt;
&lt;br /&gt;
@OPENING&lt;br /&gt;
PRINTW オープニングです。&lt;br /&gt;
RETURN 25&lt;br /&gt;
&lt;br /&gt;
@GAME_MAIN&lt;br /&gt;
PRINTW ゲーム中です。&lt;br /&gt;
PRINTL RETURNなしで終わります。&lt;br /&gt;
&lt;br /&gt;
@ENDING&lt;br /&gt;
PRINTW エンディングです。&lt;br /&gt;
RESTART&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
ゲームスタート。&lt;br /&gt;
オープニングです。&lt;br /&gt;
オープニングの結果は25でした。&lt;br /&gt;
ゲーム中です。&lt;br /&gt;
RETURNなしで終わります。&lt;br /&gt;
ゲームの結果は0でした。&lt;br /&gt;
エンディングです。&lt;br /&gt;
エンディングです。&lt;br /&gt;
エンディングです。&lt;br /&gt;
エンディングです。&lt;br /&gt;
エンディングです。&lt;br /&gt;
.......（以下無限）&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====その他、基本的な命令====&lt;br /&gt;
* QUITを使うとゲームを終了します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* DRAWLINEを使うと画面の左端から右端まで----と線を引きます。&amp;lt;BR&amp;gt;&lt;br /&gt;
* TIMESを使うと、小数を使った掛け算ができます。eramakerでは基本的に数値を整数で扱うので、小数を絡めたいときはこの命令を使ってください。TIMES (変数) , (小数値)という形で使います。&amp;lt;BR&amp;gt;&lt;br /&gt;
* BARを使うと、[*****....]のようにグラフが表示できます。BARLの場合は改行されます。BAR (変数) , (最大値), (長さ)という形で使います。&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
MONEY = 500&lt;br /&gt;
DRAWLINE&lt;br /&gt;
BARL MONEY , 1000 , 20&lt;br /&gt;
PRINTFORMW {MONEY}円持っていました。&lt;br /&gt;
DRAWLINE&lt;br /&gt;
TIMES MONEY , 1.25&lt;br /&gt;
BARL MONEY , 1000 , 20&lt;br /&gt;
PRINTFORMW {MONEY}円になりました。ゲームを終了します。&lt;br /&gt;
QUIT&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------&lt;br /&gt;
[**********..........]&lt;br /&gt;
500円持っていました。&lt;br /&gt;
---------------------------------------------------------------------&lt;br /&gt;
[************........]&lt;br /&gt;
625円になりました。ゲームを終了します。&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===命令について（調教用）===&lt;br /&gt;
* eramakerには、調教のために使う特殊な命令がいくつかあります。&lt;br /&gt;
&lt;br /&gt;
====調教用データの表示====&lt;br /&gt;
* PRINT_ABLはキャラの能力を表示します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_TALENTはキャラの素質を表示します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_MARKはキャラの刻印を表示します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_EXPはキャラの経験を表示します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_PALAMはキャラの調教中パラメータを表示します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* 以上の命令を使うときには、どのキャラのデータを表示したいのかを指定してください。たとえばPRINT_ABL 0なら、大体の場合は主人公の能力を表示することになります。&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_ITEMは所持しているアイテムを表示します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* PRINT_SHOPITEMはショップで売っているアイテムを表示します。&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* UPCHECKは調教コマンドによる調教中パラメータの変化を表示します。&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
====キャラの管理====&lt;br /&gt;
* ADDCHARAはキャラを追加します。キャラ番号3のキャラを追加したいならADDCHARA 3のようにします。&amp;lt;BR&amp;gt;&lt;br /&gt;
* ADDSPCHARAはSPキャラを追加します。キャラ番号3のSPキャラを追加したいならADDSPCHARA 3のようにします。&amp;lt;BR&amp;gt;&lt;br /&gt;
（SPキャラとは、キャラフラグの0番が1であるキャラのことを指します）&amp;lt;BR&amp;gt;&lt;br /&gt;
* DELCHARAはADDCHARAなどで追加したキャラを削除します。&amp;lt;BR&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
; EXAMPLE&lt;br /&gt;
&lt;br /&gt;
;キャラ番号0のキャラの名前が浩之で主人公。&lt;br /&gt;
;キャラ番号3のキャラの名前が智子、5のキャラの名前がレミィ、6のキャラの名前が琴音だとする&lt;br /&gt;
PRINTFORML 今いるキャラは{CHARANUM}人です。&lt;br /&gt;
&lt;br /&gt;
ADDCHARA 3&lt;br /&gt;
ADDCHARA 5&lt;br /&gt;
ADDCHARA 6&lt;br /&gt;
PRINTFORML 今いるキャラは{CHARANUM}人です。&lt;br /&gt;
REPEAT CHARANUM&lt;br /&gt;
   PRINTFORML {COUNT}番目に%NAME:COUNT%。&lt;br /&gt;
REND&lt;br /&gt;
DELCHARA 2&lt;br /&gt;
PRINTFORML 今いるキャラは{CHARANUM}人です。&lt;br /&gt;
REPEAT CHARANUM&lt;br /&gt;
   PRINTFORML {COUNT}番目に%NAME:COUNT%。&lt;br /&gt;
REND&lt;br /&gt;
&lt;br /&gt;
; RESULTS&lt;br /&gt;
&lt;br /&gt;
今いるキャラは1人です。&lt;br /&gt;
今いるキャラは4人です。&lt;br /&gt;
0番目に浩之。&lt;br /&gt;
1番目に智子。&lt;br /&gt;
2番目にレミィ。&lt;br /&gt;
3番目に琴音。&lt;br /&gt;
今いるキャラは3人です。&lt;br /&gt;
0番目に浩之。&lt;br /&gt;
1番目に智子。&lt;br /&gt;
2番目に琴音。&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====セーブ関係====&lt;br /&gt;
* SAVEGAMEはセーブ画面を、LOADGAMEはロード画面を呼びます。いずれもSHOPでないと呼び出せません。&amp;lt;BR&amp;gt;&lt;br /&gt;
* PUTFORMは@SAVEINFOという特殊な関数でのみ使えます。PRINTFORMと同様の書式で書くことにより、セーブデータに概要をつけることができます。何日目か、キャラの能力はどれくらいか、どのキャラを調教しているかなどのデータを書き込むとよいでしょう。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====BEGIN====&lt;br /&gt;
* BEGINはさまざまなシステム命令を呼び出すことにより、ゲームを進行させます。&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGINを呼んだ時点で実行中の関数は終了します。CALLでどこからか呼ばれてきたとしても、元の関数に戻ることはありません。&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN TRAINは調教を開始します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN AFTERTRAINは調教を終了します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN ABLUPは能力アップ画面を呼び出します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN TURNENDはそのターンを終了します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* BEGIN SHOPはSHOPを呼び出します。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==更新履歴==&lt;br /&gt;
* 06/05/05　暫定版公開。&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/eramacsv&amp;diff=39835</id>
		<title>Emuera/eramacsv</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/eramacsv&amp;diff=39835"/>
		<updated>2020-04-09T00:30:55Z</updated>

		<summary type="html">&lt;p&gt;Maldito: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;B&amp;gt;eramaker CSV file format (provisional version)&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I think &amp;lt;em&amp;gt;&amp;lt;b&amp;gt;it's hard to get a picture just by looking at this file.&amp;lt;/b&amp;gt;&amp;lt;/em&amp;gt; It is easier to understand if you play the sample game first, and then look at the CSV files of the sample game while looking at it.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Basic Info==&lt;br /&gt;
===About CSV Files===&lt;br /&gt;
Put a folder named CSV directly under eramaker.exe.&amp;lt;BR&amp;gt;&lt;br /&gt;
The CSV files include the following.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TABLE border=1&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;GameBase.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers the basic data of the game.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Palam.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers parameters used during training (such as C Pleasure, Pain, Hate)&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Abl.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers character abilities (such as V Sense, Service, Masochism).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Talent.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers qualities (such as Cowardice, Self-Control, Quick Recovery).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Mark.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers marks (such as Pleasure Mark, Shame Mark).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Exp.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers experiences (such as V Exp, Masturbation Exp).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Train.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers training commands (such as Cunnilingus, Blowjob, Whip).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Item.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers items (such as Vibrator, Needle).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Str.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers various sentences to be used in the game.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;CharaXX.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers the initial data of your character. From Chara00.csv to Chara99.csv.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to write a CSV file===&lt;br /&gt;
In all CSV files,&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* If the first character in the first column is a ; (semicolon), the line is ignored. Empty lines are also ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Example&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
;Setting up the physical and mental strength&amp;lt;BR&amp;gt;&lt;br /&gt;
基礎,0,2000&amp;lt;BR&amp;gt;&lt;br /&gt;
基礎,1,1000&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
;Setting up abilities&amp;lt;BR&amp;gt;&lt;br /&gt;
能力,0,2&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please use half-width characters when entering numbers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Correct&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
121,Futanari&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Wrong&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
１２１,Futanari&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* It won't work properly if you put &amp;quot;&amp;quot; around a string, which seems to be the default setting in OpenOffice.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Correct&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
0,Obedience&amp;lt;BR&amp;gt;&lt;br /&gt;
1,Desire&amp;lt;BR&amp;gt;&lt;br /&gt;
2,Technique&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;Wrong&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
0,&amp;quot;Obedience&amp;quot;&amp;lt;BR&amp;gt;&lt;br /&gt;
1,&amp;quot;Desire&amp;quot;&amp;lt;BR&amp;gt;&lt;br /&gt;
2,&amp;quot;Technique&amp;quot;&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the help of your spreadsheet software for the setting method.&lt;br /&gt;
&lt;br /&gt;
==Format for each file==&lt;br /&gt;
&lt;br /&gt;
===Format for GameBase.csv===&lt;br /&gt;
&lt;br /&gt;
Write instructions in the first column and data in the second and subsequent columns.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
====コード,(Number)====&lt;br /&gt;
* Code. Sets the game code to (Number). This is used to prevent you from accidentally loading another game's save data. (Number) can be any value.&lt;br /&gt;
&lt;br /&gt;
====バージョン,(Number)====&lt;br /&gt;
* Version. Sets the version of the game to (Number). On the screen, you will see (Number) divided by 1000. By default, save data from a different version will not be loaded.&lt;br /&gt;
&lt;br /&gt;
====タイトル,(String)====&lt;br /&gt;
* Title. Sets the title of the game to (String). It is displayed at startup.&lt;br /&gt;
&lt;br /&gt;
====作者,(String)====&lt;br /&gt;
* Author. Sets the author of the game to (String). It is displayed at startup.&lt;br /&gt;
&lt;br /&gt;
====製作年,(String)====&lt;br /&gt;
* Development year. Sets the production year of the game to (String). It is displayed at startup. Since it is not a numerical value, it is possible to put 2005-2006, for example.&lt;br /&gt;
&lt;br /&gt;
====追加情報,(String)====&lt;br /&gt;
* Additional Information. Sets the game's additional information to (String). It is displayed at startup.&lt;br /&gt;
&lt;br /&gt;
====最初からいるキャラ,(Number)====&lt;br /&gt;
* Sets the character who is not the main character at the start of the game. It's used in games like Era Light, where the characters to be trained are decided from the beginning. (Number) specifies the character number. For example, if you specify 1, you get Chara01.csv, if you specify 12, you get Chara12.csv.&lt;br /&gt;
&lt;br /&gt;
====アイテムなし,(Number)====&lt;br /&gt;
* No items. If you set (Number) to 1, you will be able to train without items when you need to train a vibrator. When you make a game that has no concept of items, make it 1.&lt;br /&gt;
&lt;br /&gt;
====バージョン違い認める,(Number)====&lt;br /&gt;
* Admit different versions. If the version of the saved data is (Number) or more, it can be loaded even if the version is different. Set this if you have upgraded to a new version that does not affect the entire system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Example&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
;Save data after version 1.20 can be loaded.&amp;lt;BR&amp;gt;&lt;br /&gt;
バージョン違い認める,1200&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Palam.csv===&lt;br /&gt;
* Write the Parameter number in the 1st column and the Parameter name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* It is recommended that the Parameter numbers start at 0 and you do not make blank free numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The maximum Parameter number is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Abl.csv===&lt;br /&gt;
* Write the Ability number in the 1st column and the Ability name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* It is recommended that the Ability numbers start at 0 and you do not make blank free numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The maximum Ability number is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Talent.csv===&lt;br /&gt;
* Write the Talent number in the 1st column and the Talent name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The trait number is a minimum of 0 and a maximum of 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Mark.csv===&lt;br /&gt;
* Write the Mark number in the 1st column and the Mark name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* It is recommended that the parameter numbers start at 0 and you do not make blank free numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The maximum Mark number is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Exp.csv===&lt;br /&gt;
* Write the Experience number in the 1st column and the Experience name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The minimum experience number is 0 and the maximum is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Train.csv===&lt;br /&gt;
* Write the Command number in the 1st column and the Command name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The minimum Command number is 0 and the maximum is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Item.csv===&lt;br /&gt;
* Write the item number in the 1st, the name of the item in the 2nd, and the price of the item in the 3rd.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The minimum item number is 0 and the maximum is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Str.csv===&lt;br /&gt;
* Write the string number in the 1st column and the string in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* There is no limit to the length of the string.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The minimum string number is 0 and the maximum is 19999.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for CharaXX.csv===&lt;br /&gt;
====番号,(Number)====&lt;br /&gt;
* キャラ番号を(Number)に設定します。キャラ同士の相性、同一キャラのスペシャルバージョンなどを作るときに重要です。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====名前,(String)====&lt;br /&gt;
* キャラの名前を(String)に設定します。いちおう文字列の長さに制限はありませんが、長すぎると表示が乱れることが考えられます。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====呼び名,(String)====&lt;br /&gt;
* キャラの呼び名を(String)に設定します。あだ名のあるキャラなどに使いましょう。&amp;lt;BR&amp;gt;&lt;br /&gt;
* いちおう文字列の長さに制限はありませんが、長すぎると表示が乱れることが考えられます。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====基礎,(数値1),(数値2)====&lt;br /&gt;
* キャラの基礎パラメータの(数値1)番目を(数値2)に設定します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* サンプルゲームでは0番目が体力、1番目が気力、2番目が射精ゲージになっています。&amp;lt;BR&amp;gt;&lt;br /&gt;
* (数値1)は最低で0、最高で99です。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Example&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
;2000 in stamina and 1000 in spirit.&amp;lt;BR&amp;gt;&lt;br /&gt;
基礎,0,2000&amp;lt;BR&amp;gt;&lt;br /&gt;
基礎,1,1000&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====能力,(数値1),(数値2)====&lt;br /&gt;
* キャラの初期能力の(数値1)番目を(数値2)に設定します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* (数値1)にはAbl.csvで指定した能力番号を使ってください。&amp;lt;BR&amp;gt;&lt;br /&gt;
* (数値2)に特に制限はありませんが、サンプルゲームでは0から5までとしています。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====素質,(Number)====&lt;br /&gt;
* キャラの素質に(Number)番目のものを加えます。&amp;lt;BR&amp;gt;&lt;br /&gt;
* (Number)にはTalent.csvで指定した素質番号を使ってください。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====経験,(数値1),(数値2)====&lt;br /&gt;
* キャラの初期経験の(数値1)番目を(数値2)に設定します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* (数値1)にはExp.csvで指定した経験番号を使ってください。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====相性,(数値1),(数値2)====&lt;br /&gt;
* (数値1)番目のキャラに対する相性を(数値2)に設定します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* (数値1)にはCharaXX.csvでそれぞれ指定したキャラ番号を使ってください。&amp;lt;BR&amp;gt;&lt;br /&gt;
* (数値2)は100が標準で、それより低いと相性が悪い、高いと相性がよいという意味になります。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====助手,(Number)====&lt;br /&gt;
* （数値)を1にすると、初期状態から助手として扱われます。&lt;br /&gt;
&lt;br /&gt;
====フラグ,(数値1),(数値2)====&lt;br /&gt;
* (数値1)番目のキャラフラグを(数値2)に設定します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* (数値1)は最低で0、最高で999です。&amp;lt;BR&amp;gt;&lt;br /&gt;
* キャラフラグはゲーム製作者のアイデア次第で自由に使えます。サンプルゲームでは、0番目のフラグが1であるキャラは「スペシャルキャラ」であるとしています。&amp;lt;BR&amp;gt;&lt;br /&gt;
* （※フラグという名前ですが、整数の値なら0と1以外でも大丈夫です）&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==知っておくと便利なこと==&lt;br /&gt;
&lt;br /&gt;
====Str.csvでの***や+++について====&lt;br /&gt;
* サンプルゲームera lightのStr.csvには、***や+++などが多く出てきます。ゲーム内ではそれぞれ「あかり」「浩之ちゃん」と変換されているはずです。&amp;lt;BR&amp;gt;&lt;br /&gt;
* これを完全に理解するにはera basicの知識が必要ですが、ひとまず***は調教しているキャラの名前、+++は主人公の呼び名、$$$は調教しているキャラの呼び名だと知っていればよいでしょう。&amp;lt;BR&amp;gt;&lt;br /&gt;
* サンプルゲームerakanonでは助手システムがあります。///は助手の名前、===はそのとき調教している人（主人公or助手）の呼び名に変換されます。&lt;br /&gt;
&lt;br /&gt;
==更新履歴==&lt;br /&gt;
* 06/05/01　暫定版公開。&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eragames.rip/index.php?title=Emuera/eramacsv&amp;diff=39834</id>
		<title>Emuera/eramacsv</title>
		<link rel="alternate" type="text/html" href="https://wiki.eragames.rip/index.php?title=Emuera/eramacsv&amp;diff=39834"/>
		<updated>2020-04-09T00:28:40Z</updated>

		<summary type="html">&lt;p&gt;Maldito: subtitle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;B&amp;gt;eramaker CSV file format (provisional version)&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;&amp;lt;b&amp;gt;I'm sure it's hard to get a picture just by looking at this file.&amp;lt;/b&amp;gt;&amp;lt;/em&amp;gt; It is easier to understand if you play the sample game first, and then look at the ERB files of the sample game while you have it open.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Basic Info==&lt;br /&gt;
===About CSV Files===&lt;br /&gt;
Put a folder named CSV directly under eramaker.exe.&amp;lt;BR&amp;gt;&lt;br /&gt;
The CSV files include the following.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TABLE border=1&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;GameBase.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers the basic data of the game.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Palam.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers parameters used during training (such as C Pleasure, Pain, Hate)&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Abl.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers character abilities (such as V Sense, Service, Masochism).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Talent.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers qualities (such as Cowardice, Self-Control, Quick Recovery).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Mark.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers marks (such as Pleasure Mark, Shame Mark).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Exp.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers experiences (such as V Exp, Masturbation Exp).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Train.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers training commands (such as Cunnilingus, Blowjob, Whip).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Item.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers items (such as Vibrator, Needle).&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;Str.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers various sentences to be used in the game.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;TR&amp;gt;&amp;lt;TD&amp;gt;CharaXX.csv&amp;lt;/TD&amp;gt;&amp;lt;TD&amp;gt;Registers the initial data of your character. From Chara00.csv to Chara99.csv.&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;br /&gt;
&amp;lt;/TABLE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to write a CSV file===&lt;br /&gt;
In all CSV files,&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
* If the first character in the first column is a ; (semicolon), the line is ignored. Empty lines are also ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Example&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
;Setting up the physical and mental strength&amp;lt;BR&amp;gt;&lt;br /&gt;
基礎,0,2000&amp;lt;BR&amp;gt;&lt;br /&gt;
基礎,1,1000&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
;Setting up abilities&amp;lt;BR&amp;gt;&lt;br /&gt;
能力,0,2&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Please use half-width characters when entering numbers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Correct&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
121,Futanari&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Wrong&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
１２１,Futanari&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* It won't work properly if you put &amp;quot;&amp;quot; around a string, which seems to be the default setting in OpenOffice.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Correct&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
0,Obedience&amp;lt;BR&amp;gt;&lt;br /&gt;
1,Desire&amp;lt;BR&amp;gt;&lt;br /&gt;
2,Technique&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;Wrong&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
0,&amp;quot;Obedience&amp;quot;&amp;lt;BR&amp;gt;&lt;br /&gt;
1,&amp;quot;Desire&amp;quot;&amp;lt;BR&amp;gt;&lt;br /&gt;
2,&amp;quot;Technique&amp;quot;&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please refer to the help of your spreadsheet software for the setting method.&lt;br /&gt;
&lt;br /&gt;
==Format for each file==&lt;br /&gt;
&lt;br /&gt;
===Format for GameBase.csv===&lt;br /&gt;
&lt;br /&gt;
Write instructions in the first column and data in the second and subsequent columns.&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
====コード,(Number)====&lt;br /&gt;
* Code. Sets the game code to (Number). This is used to prevent you from accidentally loading another game's save data. (Number) can be any value.&lt;br /&gt;
&lt;br /&gt;
====バージョン,(Number)====&lt;br /&gt;
* Version. Sets the version of the game to (Number). On the screen, you will see (Number) divided by 1000. By default, save data from a different version will not be loaded.&lt;br /&gt;
&lt;br /&gt;
====タイトル,(String)====&lt;br /&gt;
* Title. Sets the title of the game to (String). It is displayed at startup.&lt;br /&gt;
&lt;br /&gt;
====作者,(String)====&lt;br /&gt;
* Author. Sets the author of the game to (String). It is displayed at startup.&lt;br /&gt;
&lt;br /&gt;
====製作年,(String)====&lt;br /&gt;
* Development year. Sets the production year of the game to (String). It is displayed at startup. Since it is not a numerical value, it is possible to put 2005-2006, for example.&lt;br /&gt;
&lt;br /&gt;
====追加情報,(String)====&lt;br /&gt;
* Additional Information. Sets the game's additional information to (String). It is displayed at startup.&lt;br /&gt;
&lt;br /&gt;
====最初からいるキャラ,(Number)====&lt;br /&gt;
* Sets the character who is not the main character at the start of the game. It's used in games like Era Light, where the characters to be trained are decided from the beginning. (Number) specifies the character number. For example, if you specify 1, you get Chara01.csv, if you specify 12, you get Chara12.csv.&lt;br /&gt;
&lt;br /&gt;
====アイテムなし,(Number)====&lt;br /&gt;
* No items. If you set (Number) to 1, you will be able to train without items when you need to train a vibrator. When you make a game that has no concept of items, make it 1.&lt;br /&gt;
&lt;br /&gt;
====バージョン違い認める,(Number)====&lt;br /&gt;
* Admit different versions. If the version of the saved data is (Number) or more, it can be loaded even if the version is different. Set this if you have upgraded to a new version that does not affect the entire system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Example&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
;Save data after version 1.20 can be loaded.&amp;lt;BR&amp;gt;&lt;br /&gt;
バージョン違い認める,1200&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Palam.csv===&lt;br /&gt;
* Write the Parameter number in the 1st column and the Parameter name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* It is recommended that the Parameter numbers start at 0 and you do not make blank free numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The maximum Parameter number is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Abl.csv===&lt;br /&gt;
* Write the Ability number in the 1st column and the Ability name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* It is recommended that the Ability numbers start at 0 and you do not make blank free numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The maximum Ability number is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Talent.csv===&lt;br /&gt;
* Write the Talent number in the 1st column and the Talent name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The trait number is a minimum of 0 and a maximum of 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Mark.csv===&lt;br /&gt;
* Write the Mark number in the 1st column and the Mark name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* It is recommended that the parameter numbers start at 0 and you do not make blank free numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The maximum Mark number is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Exp.csv===&lt;br /&gt;
* Write the Experience number in the 1st column and the Experience name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The minimum experience number is 0 and the maximum is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Train.csv===&lt;br /&gt;
* Write the Command number in the 1st column and the Command name in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The minimum Command number is 0 and the maximum is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Item.csv===&lt;br /&gt;
* Write the item number in the 1st, the name of the item in the 2nd, and the price of the item in the 3rd.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The minimum item number is 0 and the maximum is 99.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for Str.csv===&lt;br /&gt;
* Write the string number in the 1st column and the string in the 2nd column.&amp;lt;BR&amp;gt;&lt;br /&gt;
* There is no limit to the length of the string.&amp;lt;BR&amp;gt;&lt;br /&gt;
* You can also create blank numbers.&amp;lt;BR&amp;gt;&lt;br /&gt;
* The minimum string number is 0 and the maximum is 19999.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Format for CharaXX.csv===&lt;br /&gt;
====番号,(Number)====&lt;br /&gt;
* キャラ番号を(Number)に設定します。キャラ同士の相性、同一キャラのスペシャルバージョンなどを作るときに重要です。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====名前,(String)====&lt;br /&gt;
* キャラの名前を(String)に設定します。いちおう文字列の長さに制限はありませんが、長すぎると表示が乱れることが考えられます。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====呼び名,(String)====&lt;br /&gt;
* キャラの呼び名を(String)に設定します。あだ名のあるキャラなどに使いましょう。&amp;lt;BR&amp;gt;&lt;br /&gt;
* いちおう文字列の長さに制限はありませんが、長すぎると表示が乱れることが考えられます。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====基礎,(数値1),(数値2)====&lt;br /&gt;
* キャラの基礎パラメータの(数値1)番目を(数値2)に設定します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* サンプルゲームでは0番目が体力、1番目が気力、2番目が射精ゲージになっています。&amp;lt;BR&amp;gt;&lt;br /&gt;
* (数値1)は最低で0、最高で99です。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BLOCKQUOTE&amp;gt;&lt;br /&gt;
&amp;lt;B&amp;gt;Example&amp;lt;/B&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
;2000 in stamina and 1000 in spirit.&amp;lt;BR&amp;gt;&lt;br /&gt;
基礎,0,2000&amp;lt;BR&amp;gt;&lt;br /&gt;
基礎,1,1000&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;/BLOCKQUOTE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====能力,(数値1),(数値2)====&lt;br /&gt;
* キャラの初期能力の(数値1)番目を(数値2)に設定します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* (数値1)にはAbl.csvで指定した能力番号を使ってください。&amp;lt;BR&amp;gt;&lt;br /&gt;
* (数値2)に特に制限はありませんが、サンプルゲームでは0から5までとしています。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====素質,(Number)====&lt;br /&gt;
* キャラの素質に(Number)番目のものを加えます。&amp;lt;BR&amp;gt;&lt;br /&gt;
* (Number)にはTalent.csvで指定した素質番号を使ってください。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====経験,(数値1),(数値2)====&lt;br /&gt;
* キャラの初期経験の(数値1)番目を(数値2)に設定します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* (数値1)にはExp.csvで指定した経験番号を使ってください。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====相性,(数値1),(数値2)====&lt;br /&gt;
* (数値1)番目のキャラに対する相性を(数値2)に設定します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* (数値1)にはCharaXX.csvでそれぞれ指定したキャラ番号を使ってください。&amp;lt;BR&amp;gt;&lt;br /&gt;
* (数値2)は100が標準で、それより低いと相性が悪い、高いと相性がよいという意味になります。&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====助手,(Number)====&lt;br /&gt;
* （数値)を1にすると、初期状態から助手として扱われます。&lt;br /&gt;
&lt;br /&gt;
====フラグ,(数値1),(数値2)====&lt;br /&gt;
* (数値1)番目のキャラフラグを(数値2)に設定します。&amp;lt;BR&amp;gt;&lt;br /&gt;
* (数値1)は最低で0、最高で999です。&amp;lt;BR&amp;gt;&lt;br /&gt;
* キャラフラグはゲーム製作者のアイデア次第で自由に使えます。サンプルゲームでは、0番目のフラグが1であるキャラは「スペシャルキャラ」であるとしています。&amp;lt;BR&amp;gt;&lt;br /&gt;
* （※フラグという名前ですが、整数の値なら0と1以外でも大丈夫です）&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==知っておくと便利なこと==&lt;br /&gt;
&lt;br /&gt;
====Str.csvでの***や+++について====&lt;br /&gt;
* サンプルゲームera lightのStr.csvには、***や+++などが多く出てきます。ゲーム内ではそれぞれ「あかり」「浩之ちゃん」と変換されているはずです。&amp;lt;BR&amp;gt;&lt;br /&gt;
* これを完全に理解するにはera basicの知識が必要ですが、ひとまず***は調教しているキャラの名前、+++は主人公の呼び名、$$$は調教しているキャラの呼び名だと知っていればよいでしょう。&amp;lt;BR&amp;gt;&lt;br /&gt;
* サンプルゲームerakanonでは助手システムがあります。///は助手の名前、===はそのとき調教している人（主人公or助手）の呼び名に変換されます。&lt;br /&gt;
&lt;br /&gt;
==更新履歴==&lt;br /&gt;
* 06/05/01　暫定版公開。&lt;/div&gt;</summary>
		<author><name>Maldito</name></author>
		
	</entry>
</feed>