Skip to content

Commit

Permalink
Merge pull request #49 from xiaoxustudio/main
Browse files Browse the repository at this point in the history
update docs for variable
  • Loading branch information
MakinoharaShoko authored Aug 22, 2024
2 parents f6c157f + 64c82e7 commit f381c58
Show file tree
Hide file tree
Showing 3 changed files with 237 additions and 3 deletions.
80 changes: 79 additions & 1 deletion src/en/webgal-script/variable.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,4 +99,82 @@ changeScene:First playthrough plot.txt;
label:turn-2;
Second playthrough;
changeScene:Second playthrough plot.txt;
```
```

## Advanced Usage(`>=4.5.4`
Use built-in variables to perform more advanced operations, such as making changes to configuration variables, executing logic based on specified conditions, and so on.

WebGAL currently has two built-in variable domains: `stage` and `userData`.

::: tip
`stage` is a **runtime built-in variable** and `userData` is an **archive built-in variable**.

The properties for `stage` can be found in the `state` TAB under the WebGAL editor, and `userData` can be found in `indexedDB` in the DevTools.
:::

You can access them using `$`, for example to get the value of BGM:

```ws
setVar:a=($stage.bgm.volume);
WebGAL:The current BGM volume is{a};
```

Of course, you can also use it directly in a conversation:

```ws
WebGAL:The current BGM volume is{$stage.bgm.volume};
```

::: warning
`Parentheses` are needed to get a **single-valued variable**, but not to do math.
:::

We can also access the global variables in `config.txt` :

```ws
setVar:title=(Game_name);
WebGAL:The current title of the game is{title};
```

The same goes for modifications. When changing the game title to a new one, the variable name in setVar needs to be set to the name of the variable we are modifying.

Adding the `global` flag indicates that we are modifying a configuration variable:

```ws
setVar:Game_name=('New Game Title') -global;
WebGAL:The current title of the game is{Game_name};
```

::: warning
If `global` is not added, it will be assigned to the in-game variable. Please be aware of when to use the `global` parameter.
:::

::: tip
The original configuration variables `Title_img``Title_bgm``Game_name``Game_key`.
To do this, use `Clear all data` in the game options.
:::

Of course, you can also create a custom configuration variable in `config.txt`, such as a version number:

```text
Game_name:欢迎使用WebGAL!;
Game_key:f60ad5725c1588;
Title_img:WebGAL_New_Enter_Image.png;
Title_bgm:s_Title.mp3;
Textbox_theme:imss;
; Add version variable
version:1;
```

Then we can access it, modify it, and so on in a script:

```ws
setVar:v=(version);
WebGAL:The current version number is{v};
setVar:version=version*2 -global;
WebGAL:The current modified version number is{version};
```

::: warning
`config.txt` hasn't escaped any special symbols yet.
:::
80 changes: 79 additions & 1 deletion src/ja/webgal-script/variable.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,4 +99,82 @@ changeScene:一周目ストーリー.txt;
label:turn-2;
2周目;
changeScene:二周目ストーリー.txt;
```
```

## 高级用法(`>=4.5.4`
組み込み変数は、構成変数の変更や、組み込み変数に基づいて論理的に実行して条件を指定するなど、より高度な操作に使用します。

WebGAL には現在、`stage``userData` の 2 つの組み込み変数フィールドがあります。

::: tip
`stage` はランタイム組み込み変数で、`userData` はアーカイブ組み込み変数です。

`stage`はWebGalエディタの下の`state`タブにあり、`userData`は開発者ツールの`indexedDB`で表示できます。
:::

それらにアクセスするには `$` を使用します (例: BGM の値を取得します)。

```ws
setVar:a=($stage.bgm.volume);
WebGAL:現在のBGMボリュームは、以下の通りです{a};
```

もちろん、会話で直接使用することもできます:

```ws
WebGAL:現在のBGMボリュームは、以下の通りです{$stage.bgm.volume};
```

::: warning
`括弧付き`ラッパーは、`単一値`の変数を取得するために必要ですが、数学には必要ありません。
:::

また、`config.txt` のグローバル変数にもアクセスできます:

```ws
setVar:title=(Game_name);
WebGAL:現在のゲームのタイトルは次のとおりです{title};
```

変更も例外ではなく、ゲームのタイトルを新しいゲームのタイトルに変更する場合、setVar の変数名には変更する変数名を設定する必要があります。

`global`パラメータを追加して、構成変数を変更していることを示します:

```ws
setVar:Game_name=新しいゲームタイトル -global;
WebGAL:現在のゲームのタイトルは次のとおりです{Game_name};
```

::: warning
`global` を付けないとゲーム内変数に代入されるので、`global` パラメータを使うタイミングに注意してください。
:::

::: tip
変更可能な元の構成変数 `Title_img``Title_bgm``Game_name``Game_key`
回復したい場合は、ゲームオプションの`すべてのデータを消去`を使用して回復できます。
:::

もちろん、`config.txt`でカスタム構成変数を作成することもできます。たとえば、バージョン番号を作成します:

```text
Game_name:欢迎使用WebGAL!;
Game_key:f60ad5725c1588;
Title_img:WebGAL_New_Enter_Image.png;
Title_bgm:s_Title.mp3;
Textbox_theme:imss;
; バージョン番号を増やす
version:1;
```

次に、スクリプトでそれを取得して変更できます:

```ws
setVar:v=(version);
WebGAL:現在のバージョン番号は{v};
setVar:version=version*2 -global;
WebGAL:変更された現在のバージョン番号は次のとおりです{version};
```

::: warning
`config.txt`は、特別なシンボルとしてまだ逃れられていません。
:::
80 changes: 79 additions & 1 deletion src/webgal-script/variable.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,4 +99,82 @@ changeScene:一周目剧情.txt;
label:turn-2;
二周目;
changeScene:二周目剧情.txt;
```
```

## 高级用法(`>=4.5.4`
使用内置变量进行更为高级的操作,如对配置变量进行修改,根据内置变量进行指定条件的逻辑运行等。

WebGAL 目前内置变量域有两个:`stage``userData`

::: tip
`stage`**运行时内置变量**`userData`**存档内置变量**

`stage` 可在 WebGAL 编辑器下面的`state`选项卡查看有哪些属性,`userData`则是可以在开发者工具中`indexedDB`查看。
:::

使用`$`可以访问他们,如获取BGM的值:

```ws
setVar:a=($stage.bgm.volume);
WebGAL:当前的BGM音量为{a};
```

当然,你也可以直接在对话中使用它:

```ws
WebGAL:当前的BGM音量为{$stage.bgm.volume};
```

::: warning
获取**单值变量**时需要使用`括号`包裹,但进行数学运算时不需要。
:::

我们还可以访问`config.txt`中的全局变量:

```ws
setVar:title=(Game_name);
WebGAL:当前的游戏标题为{title};
```

修改也不例外,当要修改游戏标题为新游戏标题时,setVar的变量名称需要设置为我们将修改的变量名称

`global`参数表示我们要修改的是配置变量:

```ws
setVar:Game_name=新游戏标题 -global;
WebGAL:当前的游戏标题为{Game_name};
```

::: warning
不加`global`则会赋值到游戏内变量,请注意何时使用`global`参数。
:::

::: tip
可以修改的原始配置变量`Title_img``Title_bgm``Game_name``Game_key`
想要恢复则可以在游戏选项中使用`清空所有数据`即可恢复。
:::

当然,你也可以在`config.txt`中创建一个自定义配置变量,如 创建一个版本号:

```text
Game_name:欢迎使用WebGAL!;
Game_key:f60ad5725c1588;
Title_img:WebGAL_New_Enter_Image.png;
Title_bgm:s_Title.mp3;
Textbox_theme:imss;
; 增加版本号
version:1;
```

那么我们就可以在脚本里面对它进行获取,修改等操作:

```ws
setVar:v=(version);
WebGAL:当前的版本号为{v};
setVar:version=version*2 -global;
WebGAL:当前被修改的版本号为{version};
```

::: warning
`config.txt`暂未做特殊符号的转义处理。
:::

0 comments on commit f381c58

Please sign in to comment.