Fethi Polat 1
Fethi Polat
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Scarlet 1
Scarlet
xranzei 1
xranzei
Hikaye Ekle
Kaynak ikonu

Metin2-Admin-Prefix-With-Image 1

indirmek için izniniz yok
  • Konuyu başlatan Konuyu başlatan Valiant™
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 33
  • Görüntüleme Görüntüleme 4K

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

One question , for player normal dont have?

"VIP" icon for vip?:D

Solo change this ?

BYTE iPrefixRank = pCharacterInstance->IsGameMaster();

Example:

Kod:
    if (pCharacterInstance->IsPC())
    {
        string toFinder = pCharacterInstance->GetNameString();
        BYTE iPrefixRank = pCharacterInstance->IsGameMaster();
        BYTE iPrefixRankPlayer = pCharacterInstance->IsPlayer();

        string prefixList[] = {"ST","TM","DEV"/*,"SGA","SGM","GA","GM","TGA","TGM"*/};
        string prefixPlayerList[] = {"VIP","KING","QUEEN"};

        if (iPrefixRank)
        {
            for (int i = 0; i < sizeof(prefixList) / sizeof(prefixList[0]); i++)
            {
                int toPosition = toFinder.find("[" + prefixList[i] + "]");
                if (toPosition != std::string::npos)
                {
                    char c_pszPrefix[256];
                    pTextTail->pPrefixInstance = CGraphicImageInstance::New();
                    sprintf(c_pszPrefix, "d:/ymir work/ui/prefix/prefix_rank.tga", iPrefixRank);
                    pTextTail->pPrefixInstance->SetImagePointer((CGraphicImage*)CResourceManager::Instance().GetResourcePointer(c_pszPrefix));
                }
            }
        }
        else if (iPrefixRankPlayer)
        {
            for (int i = 0; i < sizeof(prefixPlayerList) / sizeof(prefixPlayerList[0]); i++)
            {
                int toPosition = toFinder.find("[" + prefixPlayerList[i] + "]");
                if (toPosition != std::string::npos)
                {
                    char c_pszPrefix[256];
                    pTextTail->pPrefixInstance = CGraphicImageInstance::New();
                    sprintf(c_pszPrefix, "d:/ymir work/ui/prefix/prefix_player_rank.tga", iPrefixRankPlayer);
                    pTextTail->pPrefixInstance->SetImagePointer((CGraphicImage*)CResourceManager::Instance().GetResourcePointer(c_pszPrefix));
                }
            }
        }
    }
 
bazı ufak şeylere değinmek istiyorum;
bunların int değil float olması lazım:
C++:
            int prefixWidth = 3.0f;
            int prefixHeight = 15.0f;
sprintf o amaçla kullanılmıyor ki zaten indexe göre resim almıyorsun
yGrAgN.png

Ayrıca resmin olup olmadığını da kontrol etmelisin.

Burayı:
C++:
    #ifdef ENABLE_PREFIX_IMAGE
    if (pCharacterInstance->IsPC())
    {
        string toFinder = pCharacterInstance->GetNameString();
        BYTE iPrefixRank = pCharacterInstance->IsGameMaster();
        string prefixList[] = {"ST","TM","DEV"/*,"SGA","SGM","GA","GM","TGA","TGM"*/};
        if (iPrefixRank)
        {
            for (int i = 0; i < sizeof(prefixList) / sizeof(prefixList[0]); i++)
            {
                int toPosition = toFinder.find("[" + prefixList[i] + "]");
                if (toPosition != std::string::npos)
                {
                    char c_pszPrefix[256];
                    pTextTail->pPrefixInstance = CGraphicImageInstance::New();
                    sprintf(c_pszPrefix, "d:/ymir work/ui/prefix/prefix_rank.tga", iPrefixRank);
                    pTextTail->pPrefixInstance->SetImagePointer((CGraphicImage*)CResourceManager::Instance().GetResourcePointer(c_pszPrefix));
                }
            }
        }
    }
#endif
Böyle yapabilirsin:


C++:
#ifdef ENABLE_PREFIX_IMAGE
    if (pCharacterInstance->IsPC() && pCharacterInstance->IsGameMaster()) {
        for (const std::string& str : {"[ST]", "[TM]", "[DEV]"}) {
            if (std::string(pCharacterInstance->GetNameString()).find(str) != std::string::npos) {
                pTextTail->pPrefixInstance = CGraphicImageInstance::New();
                const auto image = CResourceManager::Instance().GetResourcePointer("d:/ymir work/ui/prefix/prefix_rank.tga");
                if (image && pTextTail->pPrefixInstance) { // check image and instance
                    pTextTail->pPrefixInstance->SetImagePointer(dynamic_cast<CGraphicImage*>(image));
                    break; //done
                }
            }
        }
    }
#endif
 
Son düzenleme:
bazı ufak şeylere değinmek istiyorum;
bunların int değil float olması lazım:
C++:
            int prefixWidth = 3.0f;
            int prefixHeight = 15.0f;
sprintf o amaçla kullanılmıyor ki zaten indexe göre resim almıyorsun
yGrAgN.png

Ayrıca resmin olup olmadığını da kontrol etmelisin.

Burayı:
C++:
    #ifdef ENABLE_PREFIX_IMAGE
    if (pCharacterInstance->IsPC())
    {
        string toFinder = pCharacterInstance->GetNameString();
        BYTE iPrefixRank = pCharacterInstance->IsGameMaster();
        string prefixList[] = {"ST","TM","DEV"/*,"SGA","SGM","GA","GM","TGA","TGM"*/};
        if (iPrefixRank)
        {
            for (int i = 0; i < sizeof(prefixList) / sizeof(prefixList[0]); i++)
            {
                int toPosition = toFinder.find("[" + prefixList[i] + "]");
                if (toPosition != std::string::npos)
                {
                    char c_pszPrefix[256];
                    pTextTail->pPrefixInstance = CGraphicImageInstance::New();
                    sprintf(c_pszPrefix, "d:/ymir work/ui/prefix/prefix_rank.tga", iPrefixRank);
                    pTextTail->pPrefixInstance->SetImagePointer((CGraphicImage*)CResourceManager::Instance().GetResourcePointer(c_pszPrefix));
                }
            }
        }
    }
#endif
Böyle yapabilirsin:


C++:
#ifdef ENABLE_PREFIX_IMAGE
    if (pCharacterInstance->IsPC() && pCharacterInstance->IsGameMaster()) {
        for (const std::string& str : {"[ST]", "[TM]", "[DEV]"}) {
            if (std::string(pCharacterInstance->GetNameString()).find(str) != std::string::npos) {
                pTextTail->pPrefixInstance = CGraphicImageInstance::New();
                const auto image = CResourceManager::Instance().GetResourcePointer("d:/ymir work/ui/prefix/prefix_rank.tga");
                if (image && pTextTail->pPrefixInstance) { // check image and instance
                    pTextTail->pPrefixInstance->SetImagePointer(dynamic_cast<CGraphicImage*>(image));
                    break; //done
                }
            }
        }
    }
#endif
Thanks
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst