对不起,我的英语。 当我启动ARK Survival Evolved游戏并连接到服务器时,我可以接收玩家ID并跟踪有人进出的变化。 下面的代码为我提供了此信息。
#include <windows.h>
#include <iostream>
#include "include\steam\steam_api.h"
#pragma comment(lib, "steam_api.lib")
using namespace std;
int main(int argc, char* argv[])
{
if(!SteamAPI_Init()) {
return 0;
} cout << "\n";
while(true) {
int friendCount = SteamFriends()->GetFriendCount(0x10);
cout << "friendCount: " << friendCount << "\n";
for (int i = 0; i < friendCount; ++i) {
CSteamID playerID = SteamFriends()->GetFriendByIndex(i, 0x10);
long long steamID64 = playerID.ConvertToUint64();
//...
}
//...
Sleep(500);
}
return 0;
}
功能
SteamFriends()->GetFriendCount(0x10)
返回“当前游戏”叠加层中显示的玩家人数。
如果我通过任务管理器终止游戏,则连接将继续,并且我将继续接收ID并跟踪更改!因此,正在运行的游戏是可选的。
如何在不启动游戏的情况下获取服务器上的玩家ID列表?我知道IP和端口。
功能
SteamUser()->TerminateGameConnection(1438555551, 7783);
断开与覆盖的连接(friendCount == 0)。但是,反函数
SteamUser()->InitiateGameConnection(pAuthBlob, cbMaxAuthBlob, k_steamIDNonSteamGS, 1438555551, 7783, true);
不重新连接(也许第三个参数不正确)。
有什么想法吗?