DooM (14.10.11)
Hallo,
Ich zeig hier mal, wie man alle GM/ Admins anzeigen lassen kann die Online mit diesen Befehl.
In die FuncTextCmd.cpp tragt ihr folgendes ein.
und als aufruf:PHP-Code:BOOL TextCmd_gml ( CScanner& scanner )
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)scanner.dwValue;
CString Nick;
int online = 0;
g_DPCoreClient.SendGetPlayerCount( pUser->m_idPlayer );
for ( int i = 0; i < g_UserMng.GetCount(); i++ ){
CUser* pUser2 = static_cast<CUser*>( prj.GetUserByID( i ) );
if( IsValidObj( pUser2 ) && pUser2->IsAuthHigher( AUTH_GAMEMASTER ) && !pUser2->HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_SMELPROT ) ){
Nick = CPlayerDataCenter::GetInstance()->GetPlayerString( i );
pUser->AddText( Nick + " [Online]" );
online++;
}
}
if( online == 0 )
pUser->AddText( "Es sind keine GMs Online." );
#endif
return TRUE;
}
So far,PHP-Code:ON_TEXTCMDFUNC( TextCmd_gml, "gmlist", "gm", "", "", TCM_SERVER, AUTH_GENERAL , "" )
DooM
Danke an Dardan der mir den Tipp dazu gegeben hat :)
Auch ein Dank an Sedrika fürs ausbessern :)
Niveau wo bist du ?
Captain Niveau, wir sinken!
Da epvp grad anscheinend ein Backup macht, schreib ich es hier mal rein.
Wieso lässt du am Anfang " pUser->AddText( "GMs Online:" );" ausgeben ?
Wär dein Code nicht so Optimaler ?
So läuft es nur soweit wie viele User Online sind.PHP-Code:BOOL TextCmd_gml ( CScanner& scanner )
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)scanner.dwValue;
CString Nick;
int online = 0;
g_DPCoreClient.SendGetPlayerCount( pUser->m_idPlayer );
for ( int i = 0; i < g_UserMng.GetCount(); i++ ){
CUser* pUser2 = static_cast<CUser*>( prj.GetUserByID( i ) );
if( IsValidObj( pUser2 ) && pUser2->IsAuthHigher( AUTH_GAMEMASTER ) && !pUser2->HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_SMELPROT ) ){
Nick = CPlayerDataCenter::GetInstance()->GetPlayerString( i );
pUser->AddText( Nick + " [Online]" );
online++;
}
}
if( online == 0 )
pUser->AddText( "Es sind keine GMs Online." );
#endif
return TRUE;
}
Ich bin nicht der "Pro" in c++ deswegen hab ich es mal so gemacht. Da Dardan mir nur den Tipp mit den String gegeben hat hab ichs halt mal so gemacht und es geht auch( für meine c++ kenntnisse sher gut ).
Dein Code ist schon besser , danke fürs ausbessern :).
So Far,
DooM
Niveau wo bist du ?
Captain Niveau, wir sinken!
Kein ding, ich sagte ja auch nicht das deins schlecht sei meine besserung, sollte zeigen wie man es noch lösen kann und das unnötige durchlaufen der for schleife.
DooM (14.10.11)
Lesezeichen