[Source]Gmlist

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [Source]Gmlist

      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.

      PHP-Quellcode

      1. BOOL TextCmd_gml ( CScanner& scanner )
      2. {
      3. #ifdef __WORLDSERVER
      4. CUser* pUser = (CUser*)scanner.dwValue;
      5. CString Nick;
      6. int online = 0;
      7. g_DPCoreClient.SendGetPlayerCount( pUser->m_idPlayer );
      8. for ( int i = 0; i < g_UserMng.GetCount(); i++ ){
      9. CUser* pUser2 = static_cast<CUser*>( prj.GetUserByID( i ) );
      10. if( IsValidObj( pUser2 ) && pUser2->IsAuthHigher( AUTH_GAMEMASTER ) && !pUser2->HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_SMELPROT ) ){
      11. Nick = CPlayerDataCenter::GetInstance()->GetPlayerString( i );
      12. pUser->AddText( Nick + " [Online]" );
      13. online++;
      14. }
      15. }
      16. if( online == 0 )
      17. pUser->AddText( "Es sind keine GMs Online." );
      18. #endif
      19. return TRUE;
      20. }
      Alles anzeigen
      und als aufruf:

      PHP-Quellcode

      1. ON_TEXTCMDFUNC( TextCmd_gml, "gmlist", "gm", "", "", TCM_SERVER, AUTH_GENERAL , "" )


      So far,
      DooM

      Danke an Dardan der mir den Tipp dazu gegeben hat :)
      Auch ein Dank an Sedrika fürs ausbessern :)
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • 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 ?

      PHP-Quellcode

      1. BOOL TextCmd_gml ( CScanner& scanner )
      2. {
      3. #ifdef __WORLDSERVER
      4. CUser* pUser = (CUser*)scanner.dwValue;
      5. CString Nick;
      6. int online = 0;
      7. g_DPCoreClient.SendGetPlayerCount( pUser->m_idPlayer );
      8. for ( int i = 0; i < g_UserMng.GetCount(); i++ ){
      9. CUser* pUser2 = static_cast<CUser*>( prj.GetUserByID( i ) );
      10. if( IsValidObj( pUser2 ) && pUser2->IsAuthHigher( AUTH_GAMEMASTER ) && !pUser2->HasBuff( BUFF_ITEM, II_SYS_SYS_SCR_SMELPROT ) ){
      11. Nick = CPlayerDataCenter::GetInstance()->GetPlayerString( i );
      12. pUser->AddText( Nick + " [Online]" );
      13. online++;
      14. }
      15. }
      16. if( online == 0 )
      17. pUser->AddText( "Es sind keine GMs Online." );
      18. #endif
      19. return TRUE;
      20. }
      Alles anzeigen


      So läuft es nur soweit wie viele User Online sind.
    • kleiner Bug

      Ein kleiner Bug :) 1 Spieler wird nie angezeigt

      Quellcode

      1. [COLOR=#000000][COLOR=#0000BB]BOOL TextCmd_gml [/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000BB]CScanner[/COLOR][COLOR=#007700]& [/COLOR][COLOR=#0000BB]scanner [/COLOR][COLOR=#007700])
      2. {
      3. [/COLOR][COLOR=#FF8000]#ifdef __WORLDSERVER
      4. [/COLOR][COLOR=#0000BB]CUser[/COLOR][COLOR=#007700]* [/COLOR][COLOR=#0000BB]pUser [/COLOR][COLOR=#007700]= ([/COLOR][COLOR=#0000BB]CUser[/COLOR][COLOR=#007700]*)[/COLOR][COLOR=#0000BB]scanner[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]dwValue[/COLOR][COLOR=#007700];
      5. [/COLOR][COLOR=#0000BB]CString Nick[/COLOR][COLOR=#007700];
      6. [/COLOR][COLOR=#0000BB]int online [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700];
      7. [/COLOR][COLOR=#0000BB]g_DPCoreClient[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]SendGetPlayerCount[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000BB]pUser[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]m_idPlayer [/COLOR][COLOR=#007700]);
      8. for ( [/COLOR][COLOR=#0000BB]int i [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#0000BB]i [/COLOR][COLOR=#007700]<= [/COLOR][COLOR=#0000BB]g_UserMng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]GetCount[/COLOR][COLOR=#007700](); [/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]++ ){
      9. [/COLOR][COLOR=#0000BB]CUser[/COLOR][COLOR=#007700]* [/COLOR][COLOR=#0000BB]pUser2 [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]static_cast[/COLOR][COLOR=#007700]<[/COLOR][COLOR=#0000BB]CUser[/COLOR][COLOR=#007700]*>( [/COLOR][COLOR=#0000BB]prj[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]GetUserByID[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000BB]i [/COLOR][COLOR=#007700]) );
      10. if( [/COLOR][COLOR=#0000BB]IsValidObj[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000BB]pUser2 [/COLOR][COLOR=#007700]) && [/COLOR][COLOR=#0000BB]pUser2[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]IsAuthHigher[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000BB]AUTH_GAMEMASTER [/COLOR][COLOR=#007700]) && ![/COLOR][COLOR=#0000BB]pUser2[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]HasBuff[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000BB]BUFF_ITEM[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]II_SYS_SYS_SCR_SMELPROT [/COLOR][COLOR=#007700]) ){
      11. [/COLOR][COLOR=#0000BB]Nick [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]CPlayerDataCenter[/COLOR][COLOR=#007700]::[/COLOR][COLOR=#0000BB]GetInstance[/COLOR][COLOR=#007700]()->[/COLOR][COLOR=#0000BB]GetPlayerString[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000BB]i [/COLOR][COLOR=#007700]);
      12. [/COLOR][COLOR=#0000BB]pUser[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]AddText[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000BB]Nick [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#DD0000]" [Online]" [/COLOR][COLOR=#007700]);
      13. [/COLOR][COLOR=#0000BB]online[/COLOR][COLOR=#007700]++;
      14. }
      15. }
      16. if( [/COLOR][COLOR=#0000BB]online [/COLOR][COLOR=#007700]== [/COLOR][COLOR=#0000BB]0 [/COLOR][COLOR=#007700])
      17. [/COLOR][COLOR=#0000BB]pUser[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]AddText[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#DD0000]"Es sind keine GMs Online." [/COLOR][COLOR=#007700]);
      18. [/COLOR][COLOR=#FF8000]#endif
      19. [/COLOR][COLOR=#007700]return [/COLOR][COLOR=#0000BB]TRUE[/COLOR][COLOR=#007700];
      20. } [/COLOR][/COLOR]
      Alles anzeigen