Aşağıdaki izleme sürem var. İstemci_1, Profil_1’den Computer_1’de oyunu başlat, oyuna giriş yap ve oyna. İstemci_2 Profile_2, Computer_2'da oyunu başlat, oyuna giriş yap ve oyna. İstemci_1 buharı için başka bir oyuncunun bağlandığını bildirir ve oturumu sonlandırır. Client_1, C++ kodunda başka bir oyuncudan daha fazla oyuncuyu mevcut profilden nasıl başlatabilir? Herhangi bir geri arama var mı?buhar işleri C++ sdk. İstemci çalıştırmayı zaten tek bir oyundan başlatmayı algıla.
0
A
cevap
0
Tamam. Bu sorunu çözüyorum. Bu, belirli olayları buhardan dinlemeyi sağlayan benim uygulamamın basitleştirilmesidir.
class SteamCallbacksListener
{
private:
STEAM_CALLBACK(SteamCallbacksListener, onSteamServersConnected, SteamServersConnected_t, mSteamConnectedListener);
STEAM_CALLBACK(SteamCallbacksListener, onSteamServersDisconnected, SteamServersDisconnected_t, mSteamDisconnectedListener);
STEAM_CALLBACK(SteamCallbacksListener, onSteamServerConnectFailure, SteamServerConnectFailure_t, mSteamConnectFilureListener);
SteamCallbacksListener();
SteamCallbacksListener(const SteamCallbacksListener& _copy);
~SteamCallbacksListener();
public:
static SteamCallbacksListener* getInstance()
{
static SteamCallbacksListener instance;
return &instance;
}
};
SteamCallbacksListener::SteamCallbacksListener()
: mSteamConnectedListener(this, &SteamCallbacksListener::onSteamServersConnected)
, mSteamDisconnectedListener(this, &SteamCallbacksListener::onSteamServersDisconnected)
, mSteamConnectFilureListener(this, &SteamCallbacksListener::onSteamServerConnectFailure)
{
}
SteamCallbacksListener::~SteamCallbacksListener()
{
}
void SteamCallbacksListener::onSteamServersConnected(SteamServersConnected_t* _pParam)
{
}
void SteamCallbacksListener::onSteamServersDisconnected(SteamServersDisconnected_t* _pParam)
{
if(_pParam)
{
switch(_pParam->m_eResult)
{
case k_EResultAlreadyLoggedInElsewhere:
case k_EResultLoggedInElsewhere:
case k_EResultPasswordRequiredToKickSession:
{
log("This client already logged in. Error!");
}
break;
};
}
}