环境设置

1. 初始化 Steamworks API

greenworks.initAPI()

返回 Boolean ,表示是否成功初始化Steam API。

注意:测试时,您需要启动并登录Steam客户端,并在应用程序目录下创建一个带有Steam APP ID(或steamworks示例APP ID)的Steam_appid.txt文件。

2. 初始化

greenworks.init()

当成功初始化Steam API时,返回 True,否则会抛出一个异常。

3. 判断steam是否正在运行

greenworks.isSteamRunning()

返回一个 Boolean 值,表示steam是否在运行中。

4. 在需要的时候重启应用

greenworks.restartAppIfNecessary(appId)

  • appId Integer: 游戏的APP ID

如果你的应用程序不是通过Steam启动的,这将向Steam发出启动应用程序的信号,然后导致你的应用退出。 调用 restartAppIfNecessary() 后,您不会有任何损失,但如果它返回 true ,则您的应用程序正在重新启动。

5. 获取游戏ID

greenworks.getAppId()

返回一个 Integer 值,表示当前运行中的游戏id。

6. 获取游戏构建ID

greenworks.getAppBuildId()

返回一个 Integer 值,表示游戏的构建id。 可能会根据游戏后台的更新而随时发生变化。

7. 获取SteamId对象

greenworks.getSteamId()

返回一个表示当前用户的 SteamID 的对象。

8. 获取当前游戏语言

greenworks.getCurrentGameLanguage()

返回一个 Integer 值,表示Steam中专门为该游戏设置的当前语言。

9. 获取当前UI的语言

greenworks.getCurrentUILanguage()

返回一个 String 值,表示Steam UI中设置的当前语言。

10. 获取当前游戏安装目录

greenworks.getCurrentGameInstallDir()

尚未实现.

11. 获取应用安装目录

greenworks.getAppInstallDir(app_id, buffer, buffer_size)

  • app_id Integer: 游戏的APP ID

返回一个 String 值,表示应用安装目录的绝对路径。

12. 获取玩家数量

greenworks.getNumberOfPlayers(success_callback, [error_callback])

  • success_callback Function(num_of_players)

    • num_of_players Integer: Steam上当前游戏的玩家数量。

  • error_callback Function(err)

13. 打开Steam遮罩层

greenworks.activateGameOverlay(option)

  • option String: 有效的选项宝坤 Friends, Community, Players, Settings, OfficialGameGroup, StatsAchievements

激活 option 指定的游戏遮罩层。

14. 是否启用Steam遮罩层

greenworks.isGameOverlayEnabled()

返回一个 Boolean 值,表示Steam遮罩层是否被启用或禁用。

15. 判断Steam是否处于大屏幕模式

greenworks.isSteamInBigPictureMode()

返回一个 Boolean 值,表示Steam是否处于大屏幕模式。如果应用程序不在Steam的 游戏 类别中,则始终返回 false

16. 通过Steam遮罩层打开Web页面

greenworks.activateGameOverlayToWebPage(url)

  • url String: 完整的url,例如。http://www.steamgames.com.

在steam游戏遮罩层中打开指定的url。

17. 判断是否购买了游戏

greenworks.isSubscribedApp(appId)

  • appId Integer: 游戏的APP ID

返回一个 Boolean,表示用户是否购买了游戏。

18. 判断应用是否已安装

greenworks.isAppInstalled(appId)

  • appId Integer: 应用的APP ID

返回一个 Boolean,表示应用是否已安装。该应用实际上可能不属于用户。

仅适用于应用本体,DLC使用的是 isDLCInstalled

19. 获取图片大小

greenworks.getImageSize(handle)

  • handle Integer: 要获取大小的图像句柄。

返回一个 对象,包含图片的宽高值。

20. 获取图像字节

greenworks.getImageRGBA(handle)

  • handle Integer: 图片句柄

返回一个 Buffer ,表示RGBA格式的图片数据。

下面是保存 png 格式图片的示例:

var greeenworks = require('./greenworks');
// Relies on 'jimp' module. Install it via 'npm install jimp'.
var Jimp = require('jimp');

var friends = greenworks.getFriends(greenworks.FriendFlags.Immediate);
if (friends.length > 0) {
  var handle = greenworks.getSmallFriendAvatar(friends[0].getRawSteamID());
  if (!handle) {
    console.log("The user don't set small avartar");
    return;
  }
  var image_buffer = greenworks.getImageRGBA(handle);
  var size = greenworks.getImageSize(handle);
  if (!size.height || !size.width) {
    console.log("Image corrupted. Please try again");
    return;
  }
  console.log(size);
  var image = new Jimp(size.height, size.width, function (err, image) {
    for (var i = 0; i < size.height; ++i) {
      for (var j = 0; j < size.width; ++j) {
        var idx = 4 * (i * size.height + j);
        var hex = Jimp.rgbaToInt(image_buffer[idx], image_buffer[idx+1],
            image_buffer[idx+2], image_buffer[idx+3]);
        image.setPixelColor(hex, j, i);
      }
    }
  });
  image.write("/tmp/test.png");
}

21. 获取IP所在国家

greenworks.getIPCountry()

返回客户端正在运行的 2 位 ISO 3166-1-alpha-2 格式的国家代码。 如“US”或“UK”。

22. 获取启动命令行

greenworks.getLaunchCommandLine()

如果游戏通过 Steam URL 如 steam://run/<appid>//<command line>/ 启动,则可以获取启动命令行。 此方法优于通过操作系统用命令行启动,后者可能存在安全隐患。 为了使丰富状态加入能使用此方式,而不被置于操作系统命令行,您必须在您应用的“安装”>“通用安装”页面上启用“使用启动命令行”。