[Guide] GM Online

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

    • [Guide] GM Online

      Credits keine Ahnung, ist eh schon lange Source mäßig Releast, aber für die, die es gebrauchen können. Ich bitte geflame zu unterlassen.




      FuncTextCmd.cpp


      Unter


      Quellcode

      1. BOOL TextCmd_RemoveGuildMember( CScanner & scanner )
      2. {
      3. #ifdef __CLIENT
      4. scanner.GetToken();
      5. char lpszPlayer[MAX_PLAYER] = { 0, };
      6. lstrcpy( lpszPlayer, scanner.Token );
      7. #if __VER >= 11 // __SYS_PLAYER_DATA
      8. u_long idPlayer = CPlayerDataCenter::GetInstance()->GetPlayerId( lpszPlayer );
      9. #else // __SYS_PLAYER_DATA
      10. u_long idPlayer = prj.GetPlayerID( lpszPlayer );
      11. #endif // __SYS_PLAYER_DATA
      12. if( idPlayer != 0 )
      13. g_DPlay.SendRemoveGuildMember( g_pPlayer->m_idPlayer, idPlayer );
      14. return TRUE;
      15. #endif // __CLIENT
      16. return FALSE;
      17. }
      Alles anzeigen



      Das


      Quellcode

      1. #ifdef __GM_LIST
      2. BOOL TextCmd_GMList( CScanner& scanner )
      3. {
      4. #ifdef __WORLDSERVER
      5. CUser* pUser = (CUser*)scanner.dwValue;
      6. vector<char*> GMList = g_UserMng.GetGMList();
      7. if( (int)GMList.size() > 0 )
      8. pUser->AddDefinedText( TID_GMLIST_STAFF_ONLINE );
      9. else
      10. {
      11. pUser->AddDefinedText( TID_GMLIST_NO_GM_ONLINE );
      12. return FALSE;
      13. }
      14. for(int i = 0; i < (int)GMList.size(); ++i)
      15. {
      16. pUser->AddText((LPCSTR)GMList[i]);
      17. }
      18. #endif
      19. return TRUE;
      20. }
      21. #endif // __GM_LIST
      Alles anzeigen



      Unter


      Quellcode

      1. ON_TEXTCMDFUNC( TextCmd_Time, "Time", "ti", "½Ã°£", "½Ã", TCM_CLIENT, AUTH_GENERAL , "½Ã°£ º¸±â [/½Ã°£]" )



      Das


      Quellcode

      1. #ifdef __GM_LIST
      2. ON_TEXTCMDFUNC( TextCmd_GMList, "gmlist", "gml", "±æµå¸»", "±æ¸»", TCM_BOTH, AUTH_GENERAL , "±æµå¸»" )
      3. #endif // __GM_LIST



      __________________________


      User.cpp


      Unter


      Quellcode

      1. void CUserMng::RemoveAllUsers()
      2. {
      3. map<DWORD, CUser*>::iterator it;
      4. for( it = m_users.begin(); it != m_users.end(); ++it )
      5. {
      6. DestroyPlayer( it->second );
      7. }
      8. m_users.clear();
      9. m_lCount = 0;
      10. }
      Alles anzeigen



      Das


      Quellcode

      1. #ifdef __GM_LIST
      2. vector<char*> CUserMng::GetGMList()
      3. {
      4. vector<char*> tmpName;
      5. map<DWORD, CUser*>::iterator it;
      6. for( it = m_users.begin(); it != m_users.end(); ++it )
      7. if(it->second->m_dwAuthorization > 'F')
      8. tmpName.push_back((char*)it->second->GetName());
      9. return tmpName;
      10. }
      11. #endif // __GM_LIST
      Alles anzeigen



      __________________________________


      User.h


      Unter


      Quellcode

      1. void RemoveAllUsers();



      das


      Quellcode

      1. #ifdef __GM_LIST
      2. vector<char*> GetGMList(void);
      3. #endif // __GM_LIST



      ___________________________________


      VersionCommon.h von neuz und World


      Quellcode

      1. #define __GM_LIST





      Fertig, have Fun




      Edit von Andrej-Delany:


      Ich würde das hier:


      Quellcode

      1. if(it->second->m_dwAuthorization > 'F')



      so ändern:


      Quellcode

      1. if(it->second->m_dwAuthorization > AUTH_GENERAL)



      Da ich zum Beuspiel die Chars geändert habe währe es so weniger Fehler anfällig sonst muss man bei einer änderung der Chars von hand über all im souce nach dem Char suchen
      Bilder
      • flyff00007.jpg

        12,34 kB, 271×108, 192 mal angesehen
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • Auf gut deutsch man kann in der Chat Leiste /gmlist oder /gml eingeben und es wird im Display angezeigt welcher GM online ist da es sonst zu verwirrungen kommt, da (fast) keiner weist wie man die Funktion ingame verwendet.

      Ein Screenshot zu zeigen wie es aussieht wäre nicht schlecht gewesen.