匹配大厅
1. 大厅类型对象
greenworks.LobbyType
大厅类型,从 CreateLobby 或 SetLobbyType 设置。
-
Private
(0.只能通过邀请加入大厅) -
FriendsOnly
(1.好友和受邀者可加入,但不出现在大厅列表中) -
Public
(2.可以通过搜索返回并对好友可见) -
Invisible
(3.通过搜索返回,但不对好友可见。如果希望一个用户同时在两个大厅中,比如将组配到一起时很有用。 用户只能加入一个普通大厅,最多可加入两个不可见大厅。)
2. 创建匹配大厅
createLobby(lobbyType, maxMembers)
-
lobbyType
greenworks.LobbyType -
maxMembers
Integer: 可加入此大厅的玩家最大数量。 不能超过 250 人
创建一个新的匹配大厅。
返回一个指向 Steam API 调用的唯一 String
型句柄。
3. 设置大厅数据
setLobbyData(steamIDLobby, pchKey, pchValue)
-
steamIDLobby
String: 要设置元数据的大厅 Steam ID。可以在lobby-created回调函数中获得 -
pchKey
String: 要设置数据的键。 不得长于255 -
pchValue
String: 要设置的值。 不得长于8192
在大厅元数据中设置键/值对。 此函数可用于设置大厅名称、当前地图、游戏模式等。
返回一个 Boolean
值表示是否设置成功。
4. 获取大厅数据
getLobbyData(steamIDLobby, pchKey)
-
steamIDLobby
String: 要从中获得元数据的大厅的 Steam ID -
pchKey
String: 要获取值的键
获取与指定大厅中的指定键相关的元数据。
返回一个 String
字符串表示取到的值。如果没有为此键设置值,或 steamIDLobby 无效,则返回一个空白字符串("")。
5. 删除大厅数据
deleteLobbyData(steamIDLobby, pchKey)
-
steamIDLobby
String: 待删除元数据的大厅的 Steam ID。 -
pchKey
String: 待删除数据的键。
从大厅移除元数据键。 此操作只能由大厅所有者完成。 只有当键存在时,才会发送数据。 在发送数据之前会稍有延迟,因此您可以重复调用来设置您需要的所有数据,并在最后一次顺序调用之后,数据将被自动批处理和发送。
返回一个 Boolean
。true, 表示成功删除了键/值;否则,如果 steamIDLobby 或 pchKey 无效,则为 false。
6. 加入匹配大厅
joinLobby(steamIDLobby)
-
steamIDLobby
String: 要加入的大厅的 Steam ID。
加入一个现有大厅。 可以用 RequestLobbyList 搜索并加入好友从而获取大厅的 Steam ID,也可以从邀请中获取。
返回指向一个 Steam API 调用的唯一 String
句柄。
7. 退出匹配大厅
leaveLobby(steamIDLobby)
-
steamIDLobby
String: 要离开的大厅id。
离开用户当前所在的大厅,这将立即在客户端生效,大厅的其他用户将得到 LobbyChatUpdate_t 回调的通知。
8. 根据索引获得大厅信息
getLobbyByIndex(index)
-
index
Integer: 要获得其 Steam ID 的大厅索引,从 0 至 LobbyMatchList_t.m_nLobbiesMatching。
收到 RequestLobbyList 结果后,获得指定索引中大厅的 Steam ID。
返回一个 SteamID 对象;如果所提供的索引无效或未找到大厅,返回 undefined
。
9. 根据索引获得成员信息
getLobbyMemberByIndex(steamIDLobby, indexMember)
-
steamIDLobby
String: 大厅id -
indexMember
Integer: 在 0 与 GetNumLobbyMembers 之间的索引。
获得给定索引中大厅成员的 Steam ID。 注意: 当前用户必须在大厅中才能获取该大厅中其他用户的 Steam ID。
返回一个 SteamID 对象;如果所提供的索引无效或未找到大厅,返回 undefined
。
10. 获取大厅所有者
getLobbyOwner(steamIDLobby)
-
steamIDLobby
String: 要获得其所有者的大厅的 Steam ID。
返回当前大厅所有者。 注意: 必须是大厅成员才能调用。 注意: 始终只有一位大厅所有者,如果当前所有者离开,该大厅中的另一名玩家将自动成为所有者。 在一个大厅的所有者刚离开时,其他玩家便有机会(但较少见)加入该大厅,进入大厅后,其自身便成为该大厅的所有者。
返回一个 SteamID 对象;如果所提供的索引无效或未找到大厅,返回 undefined
。
11. 获取大厅中的用户数量
getNumLobbyMembers(steamIDLobby)
-
steamIDLobby
String: 要获得其成员数量的大厅的 Steam ID。
获得一个大厅中的用户数。 注意: 当前用户必须在大厅中才能获取该大厅中其他用户的 Steam ID。 用于循环访问,调用此函数后,可使用 GetLobbyMemberByIndex 来获得大厅中每个成员的 Steam ID。 通过 ISteamFriends 接口可自动收到大厅其他成员的个人信息(姓名、头像等)。
返回一个 Integer
值,表示大厅中成员的数量,如果当前用户没有来自大厅的数据,则返回 0。
12. 邀请其他用户进入大厅
inviteUserToLobby(steamIDLobby, steamIDInvitee)
-
steamIDLobby
String: 要邀请用户进入的大厅的 Steam ID。 -
steamIDInvitee
String: 将被邀请的用户的 Steam ID。
邀请其他用户进入大厅。 指定用户点击了加入链接后,如果该用户在游戏中,将发送 GameLobbyJoinRequested_t 回调 ,如果游戏尚未运行,则游戏将自动通过命令行参数 +connect_lobby <64-bit lobby Steam ID> 启动。
返回一个 Boolean
值。true, 表示成功发送邀请;否则,如果本地用户不在大厅中,或无法连接至 Steam,或指定用户无效,则为 false。 注意: 此调用不检查其他用户是否被成功邀请。
13. 设置大厅是否开放
setLobbyJoinable(steamIDLobby, lobbyJoinable)
-
steamIDLobby
String: 大厅的 Steam ID。 -
lobbyJoinable
Boolean: 是否允许用户加入此大厅?
设置一个大厅是否对其他玩家开放。 新的大厅始终默认为启用。 如果禁止加入,那么没有玩家可以加入,即便他们是好友或已受邀请。 禁止加入的大厅将不会从大厅搜索中返回。
返回一个 Boolean
值,表示设置是否成功。
14. 变更大厅所有者
setLobbyOwner(steamIDLobby, steamIDNewOwner)
-
steamIDLobby
String: 要发生所有者变更的大厅的 Steam ID。 -
steamIDNewOwner
String: 要成为大厅新所有者的用户的 Steam ID,该用户必须在该大厅中。
变更大厅所有者。 只能由大厅所有者设置。 这将针对大厅中的所有用户触发 LobbyDataUpdate_t,每位用户应更新其本地状态以反映新的所有者。 通常在所有者名称旁边显示一个皇冠图标。
返回一个 Boolean
值表示变更是否成功。true, 表示成功变更所有者。 false, 表示您不是大厅目前的所有者,或 steamIDNewOwner 不是大厅成员,或无法连接至 Steam。
15. 设置大厅类型
setLobbyType(steamIDLobby, lobbyType)
-
steamIDLobby
String: 要设置类型的大厅的 Steam ID。 -
lobbyType
greenworks.LobbyType 要设置的新大厅类型。
当使用 CreateLobby 创建大厅时也会进行此设置。 它只可由大厅所有者设置。
返回一个 Boolean
值表示设置是否成功。true, 表示成功;否则,如果您不是大厅所有者,则返回 false。