steam — steamworks C ++ sdk. Определить, что клиент запускает уже запущенную игру из одного профиля

У меня есть следующая ситуация.
Клиент_1 запустит игру из профиля_1 на компьютере_1, войдите в игру и играйте.
Клиент_2 запустить игру из профиля_1 на компьютере_2, войти в игру и играть.
Для Client_1 steam показывают уведомление о том, что подключен другой игрок, и прекращают сеанс. Как Client_1 может обрабатывать в C ++ коде, чем другой игрок запускает игру из текущего профиля? Есть ли обратные вызовы?

0

Решение

Хорошо. Я решаю эту проблему. Это упрощение моей реализации, которое позволяет прослушивать определенные события из steam.

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;
};
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]