Dieses tut lässt euch im Worldserver die user und staff online anzah ausgeben
user.h
user.cpp
in user.cpp
adden
threadmng.cpp
worldserver.h
nun steht im worldserver fenster
Online Staff : x
Online User : x
(x = anzahl)
user.h
Code:
unter
LONG GetCount() { return m_lCount; }
das
#ifdef __WORLDSERVER_ADMIN
LONG GetUserCount() { return m_uCount; }
LONG GetAdminCount() { return m_sCount; }
void AddUserCount() ;
void AddAdminCount() ;
#endif
unter
class CUserMng
{
public:
CUserMng();
virtual ~CUserMng();
private:
long m_lCount;
Das adden:
#ifdef __WORLDSERVER_ADMIN
long m_uCount;
long m_sCount;
#endif
Code:
am ende dieser funktion : #ifdef __MAP_SECURITY void CUser::Open( DWORD dwWorldId ) #else // __MAP_SECURITY void CUser::Open( void ) #endif // __MAP_SECURITY #ifdef __WORLDSERVER_ADMIN if(IsAuthHigher(AUTH_GAMEMASTER)) g_UserMng.AddAdminCount(); else g_UserMng.AddUserCount(); #endif
Code:
unter
CUserMng::CUserMng()
{
m_lCount = 0;
das
#ifdef __WORLDSERVER_ADMIN
m_sCount = 0;
m_uCount = 0;
#endif
Code:
unter
void CUserMng::RemoveAllUsers()
{
map<DWORD, CUser*>::iterator it;
for( it = m_users.begin(); it != m_users.end(); ++it )
{
DestroyPlayer( it->second );
}
m_users.clear();
m_lCount = 0;
das
#ifdef __WORLDSERVER_ADMIN
m_sCount = 0;
m_uCount = 0;
#endif
in user.cpp
Code:
#ifdef __WORLDSERVER_ADMIN
void CUserMng::AddUserCount()
{
++m_uCount;
}
void CUserMng::AddAdminCount()
{
++m_sCount;
}
#endif
Code:
unter
void CUserMng::RemoveUser( DWORD dwSerial )
{
map<DWORD, CUser*>::iterator it = m_users.find( dwSerial );
if( it == m_users.end() )
return;
CUser* pUser = it->second;
if( IsValidObj( pUser ) )
{
pUser->OnTradeRemoveUser();
m_users.erase( it );
--m_lCount;
das adden
#ifdef __WORLDSERVER_ADMIN
if(pUser->IsAuthHigher(AUTH_GAMEMASTER))
--m_sCount;
else
--m_uCount;
#endif
Code:
unter
#ifdef __INFINITE_0227
if( dwTick > 1000 )
{
char szBuffer[256];
sprintf( szBuffer,
"OP: %d, %2.1f, %2.1f, %2.1f, %2.1f, %2.1f, %2.1f, %2.1f, %2.1f, %2.1f, %2.1f, %2.1f, %2.1f\n",
dwTick, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12 );
Error( szBuffer );
}
#endif // __INFINITE_0227
if( dwElapsed > 1000 )
{
SetLogInfo( LOGTYPE_CCU, "CCU:%d", g_UserMng.GetCount() );
das
#ifdef __WORLDSERVER_ADMIN
SetLogInfo( LOGTYPE_USER, "Online User:%d ", g_UserMng.GetUserCount() );
SetLogInfo( LOGTYPE_ADMIN, "Online Staff:%d ", g_UserMng.GetAdminCount() );
#endif
Code:
unter
void RedirectIOToConsole();
enum LOGTYPE
{
LOGTYPE_TIME,
LOGTYPE_CCU,
LOGTYPE_PERFOMANCE,
LOGTYPE_RESPAWN,
LOGTYPE_WARN1,
LOGTYPE_WARN2,
LOGTYPE_MAP,
das
#ifdef __WORLDSERVER_ADMIN
LOGTYPE_ADMIN,
LOGTYPE_USER,
#endif
nun steht im worldserver fenster
Online Staff : x
Online User : x
(x = anzahl)