事件

greenworks 是一个事件回调器,负责监听Steam事件。

var greenworks = require('docs/greenworks.json');

// 需要在使用greenworks的API之前进行初始化
greenworks.init();

function log(msg) {
    console.log(msg);
}

greenworks.on('game-overlay-activated', function(is_active) {
    if (is_active)
        log('game overlay is activated');
    else
        log('game overlay is deactivated');
});

greenworks.on('steam-servers-connected', function() { log('connected')});
greenworks.on('steam-servers-disconnected', function() { log('disconnected')});
greenworks.on('steam-server-connect-failure', function() { log('connected failure')});
greenworks.on('steam-shutdown', function() { log('shutdown')});

1. 游戏遮罩层激活或隐藏

事件: 'game-overlay-activated'

Returns:

  • is_active Boolean: 表示游戏覆盖层是激活还是隐藏。

当游戏遮罩层激活或隐藏时触发。

2. 连接到Steam服务器

事件: 'game-servers-connected'

当游戏连接到Steam服务器时触发。

3. 从Steam服务器断开

事件: 'game-servers-disconnected'

当游戏从Steam服务器断开连接时触发。

4. 连接Steam服务器失败

事件: 'game-server-connect-failure'

当游戏连接Steam服务器失败时触发。

5. Steam客户端即将关闭

事件: 'steam-shutdown'

当Steam客户端即将关闭时触发。

6. 好友状态改变

事件: 'persona-state-change'

当一个好友的状态改变时(与 greenworks.requestUserInformation 一起使用)触发。

7. 头像图片加载完成

事件: 'avatar-image-loaded'

如果图像还不可用,那么在上一个使用 getLargeFriendAvatar() 加载一个头像大图时触发。

8. 收到聊天信息

事件: 'game-connected-friend-chat-message'

Returns:

  • steam_id String: 一个64位steam ID.

  • message_id Integer

当用户收到聊天消息时触发。

9. DLC安装完成

事件: 'dlc-installed'

Returns:

  • dlc_app_id Integer: DLC的APPID

当用户获得DLC的所有权,或者是安装了DLC之后触发。

10. 微交易授权响应

事件: 'micro-txn-authorization-response'

Returns:

  • app_id Integer: 此次微交易的AppID。

  • ord_id String: 为此次微交易提供的的64位OrderID。

  • authorized Boolean: 用户是否授权了交易。

当用户响应微交易授权请求后触发。

11. 创建大厅

事件: 'lobby-created'

在尝试创建大厅之后触发。

Returns:

  • m_eResult Integer: 大厅创建结果。

  • m_ulSteamIDLobby String: 该大厅的Steam ID。

12. 大厅数据改变

事件: 'lobby-data-update'

大厅数据改变时触发。

Returns:

  • m_ulSteamIDLobby String: 该大厅的Steam ID。

  • m_ulSteamIDMember String: 房间成员或房间本身数据改变时的Steam ID.

  • m_bSuccess Boolean: 大厅数据是否成功改变。

13. 进入大厅

事件: 'lobby-enter'

尝试进入大厅时触发。 收到这条消息后就可以使用大厅数据。

Returns:

  • m_ulSteamIDLobby String: 该大厅的Steam ID。

  • m_rgfChatPermissions Integer: 未使用 - 使用为0。

  • m_bLocked Boolean: 如果是true,则只有被邀请的用户才可以加入。

  • m_EChatRoomEnterResponse Integer: 这实际上是一个 EChatRoomEnterResponse 值。 如果成功加入大厅就是 k_EChatRoomEnterResponseSuccess,否则是 k_EChatRoomEnterResponseError。

14. 收到大厅邀请

事件: 'lobby-invite'

收到邀请时触发。

Returns:

  • m_ulSteamIDUser String: 发送邀请的人的Steam ID。

  • m_ulSteamIDLobby String: 邀请我们的Steam ID。

  • m_ulGameID String: 邀请我们的大厅的Game ID。

15. 加入大厅

事件: 'lobby-join-requested'

当用户从朋友列表或被邀请后尝试加入大厅时触发。 当连接到指定大厅的时候,游戏客户端会收到这条消息。

Returns:

  • m_steamIDLobby String: 要连接到的大厅的Steam ID。

  • m_steamIDFriend String: 他们是通过那个朋友加入的。如果不是直接通过朋友加入则会无效。

16. 加入游戏请求

事件: 'rich-presence-join-requested'

当用户尝试从好友列表中加入游戏时触发,其使用的是富消息状态。

Returns:

  • m_steamIdFriend String: 他们是通过那个朋友加入的。如果不是直接通过朋友加入则会无效。

  • m_rgchConnect String: 与 "连接" 富消状态息key关联的值。

17. 命令行执行URL

事件: 'new-url-launch-parameters'

在游戏已经运行时,当用户使用命令行执行steam url或查询参数(如 steam://run/<appid>//?param1=value1;param2=value2;param3=value3; )后触发。 新的参数可以使用 GetLaunchCommandLine 以及 GetLaunchQueryParam 查询。