This is a documentation for Board Game Arena: play board games online !

SandboxScripts

来自Board Game Arena
Dashuiweng讨论 | 贡献2025年3月28日 (五) 04:14的版本 (创建页面,内容为“以下是您可以从 Sandbox 脚本中调用的函数参考。 === Javascript === BGA 沙箱脚本是用 Javascript 编写的。 使用Javascript,您可以编写脚本来让您的沙盒游戏具有更多的自动化规则。 重要:与 Javascript 最常见的用法相反,沙盒脚本在'''服务器端'''执行。 === BGA API === 为了与您的 BGA Sandbox 游戏交互,我们为您提供了一个 API。 使用此 API,您可以从当前游戏情…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

以下是您可以从 Sandbox 脚本中调用的函数参考。

Javascript

BGA 沙箱脚本是用 Javascript 编写的。

使用Javascript,您可以编写脚本来让您的沙盒游戏具有更多的自动化规则。

重要:与 Javascript 最常见的用法相反,沙盒脚本在服务器端执行。

BGA API

为了与您的 BGA Sandbox 游戏交互,我们为您提供了一个 API。

使用此 API,您可以从当前游戏情况中获取游戏元素的属性值、修改它们和/或触发游戏行动(例如:移动配件、翻卡等)。

快速开始

Hello World

从 Sandbox 编辑器的“界面视图【interface view】”选项卡中,选择一个元素,并访问其属性(右上角的图标)。

转到“脚本(高级)【Scripts (advanced)】”部分。

在“单击此元素时【When this element is clicked】”前面,输入“onMyClick”。

关闭窗口。转到 “script view” 选项卡。

输入以下内容 :

function onMyClick( element_id )
{
   bga.log("Hello world! You just clicked on element " + element_id + ". Congrats!");
}

保存并发布您的项目,开始测试会话,点击前一个元素:您的消息会出现在右侧的日志中!

重要提示

  • 您不必为脚本的每次修改都执行保存并发布:每次保存脚本(control+S)时,用于所有测试会话的脚本都会更新。请注意,BGA 上的生产版本当然不会更新,直到您再次明确保存和发布您的项目。
  • 要检查变量的内容,您可以将bga.log()与JSON.stringify()结合使用。例如:
 bga.log( JSON.stringify( bga.getPlayers()) );
  • 除了log() 之外,您还可以使用 bga.exit( "my message" ) 来调试脚本。使用 bga.exit,脚本会立即停止执行,并且所有以前的游戏更改都会被取消,因此尝试重试作直到脚本正常。
  • 我们建议您先开发一个没有脚本的完整可玩游戏版本,然后再编写脚本。
  • 在Board Game Arena 上,玩家们期待可以自动执行所有规则的游戏。因此,即使从技术上讲可以只编写一部分脚本也能畅玩游戏,但是在大多数情况下,我们也会只发布完全脚本化的游戏:)