Çözüldü Chat Nick Yanında Çıkan Ülke Bayrakları

  • Konuyu açan Konuyu açan sharap
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 3
  • Gösterim Gösterim 93
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

sharap

MT Üye
MT Üye
Mesaj
402
Çözümler
20
Beğeni
175
Puan
529
Ticaret Puanı
0
Arkadaşlar MultiLanguage Sistemi Ekledim Ve revize etmeye çalışıyorum. Nedense bir türlü genel chat bağırma gibi durumlarda nick yanında gösterilen client diline göre ülke bayraklarını kaldıramıyorum. Anlayan varsa yorumlarda yardımcı olursa çok sevinirim. Şimdiden çok teşekkür ederim.



Ekran Alıntısı.webp
 
Çözüm
İmput_Main.cpp:
Genişlet Daralt Kopyala
#ifdef ENABLE_CHAT_COLOR_SYSTEM
    static const char* colorbuf[] = {"|cFFffa200|H|h[Admin]|h|r", "|cFFff0000|H|h[Shinsoo]|h|r", "|cFFffc700|H|h[Chunjo]|h|r", "|cFF000bff|H|h[Jinno]|h|r"};
    int len = snprintf(chatbuf, sizeof(chatbuf), "%s %s : %s", (ch->IsGM()?colorbuf[0]:colorbuf[MINMAX(0, ch->GetEmpire(), 3)]), ch->GetName(), buf);
#else
    int len = snprintf(chatbuf, sizeof(chatbuf), "%s : %s", ch->GetName(), buf);
#endif
#if defined(__BL_CLIENT_LOCALE_STRING__)
    int hyperlinks;
    bool colored;
    GetTextTagInfo(chatbuf, len, hyperlinks, colored);
    if (hyperlinks)
    {
        const std::string formatStr = __FormatHyperLinkItemString(chatbuf);
        strlcpy(chatbuf, formatStr.c_str(), sizeof(chatbuf));
        len = strlen(chatbuf)...
input_main.cpp de şöyle bir şey var sende definesi muhtemelen ENABLE_CHAT_COLOR_SYSTEM ;

şunu arat
Kod:
Genişlet Daralt Kopyala
int len = snprintf(chatbuf, sizeof(chatbuf), "%s : %s", ch->GetName(), buf);

oradaki defineyi sil else kısmı kalsın sadece düzelir o zaman
 
input_main.cpp de şöyle bir şey var sende definesi muhtemelen ENABLE_CHAT_COLOR_SYSTEM ;

şunu arat
Kod:
Genişlet Daralt Kopyala
int len = snprintf(chatbuf, sizeof(chatbuf), "%s : %s", ch->GetName(), buf);

oradaki defineyi sil else kısmı kalsın sadece düzelir o zaman
Yeni Geldim Eve Hemen Deneyip Geri Dönüş Sağlayacağım. Yorumunuz ve ilginiz için teşekkür ederim.
 
İmput_Main.cpp:
Genişlet Daralt Kopyala
#ifdef ENABLE_CHAT_COLOR_SYSTEM
    static const char* colorbuf[] = {"|cFFffa200|H|h[Admin]|h|r", "|cFFff0000|H|h[Shinsoo]|h|r", "|cFFffc700|H|h[Chunjo]|h|r", "|cFF000bff|H|h[Jinno]|h|r"};
    int len = snprintf(chatbuf, sizeof(chatbuf), "%s %s : %s", (ch->IsGM()?colorbuf[0]:colorbuf[MINMAX(0, ch->GetEmpire(), 3)]), ch->GetName(), buf);
#else
    int len = snprintf(chatbuf, sizeof(chatbuf), "%s : %s", ch->GetName(), buf);
#endif
#if defined(__BL_CLIENT_LOCALE_STRING__)
    int hyperlinks;
    bool colored;
    GetTextTagInfo(chatbuf, len, hyperlinks, colored);
    if (hyperlinks)
    {
        const std::string formatStr = __FormatHyperLinkItemString(chatbuf);
        strlcpy(chatbuf, formatStr.c_str(), sizeof(chatbuf));
        len = strlen(chatbuf);
    }
#endif
    if (CHAT_TYPE_SHOUT == pinfo->type)
    {
        LogManager::instance().ShoutLog(g_bChannel, ch->GetEmpire(), chatbuf);
    }

    if (len < 0 || len >= (int) sizeof(chatbuf))
        len = sizeof(chatbuf) - 1;

    if (pinfo->type == CHAT_TYPE_SHOUT)
    {
        if (ch->GetLevel() < g_iShoutLimitLevel)
        {
            ch->ChatPacket(CHAT_TYPE_INFO, "[LS;654;%d]", g_iShoutLimitLevel);
            return (iExtraLen);
        }

        if (thecore_heart->pulse - (int) ch->GetLastShoutPulse() < passes_per_sec * 15)
            return (iExtraLen);

        ch->SetLastShoutPulse(thecore_heart->pulse);

        TPacketGGShout p;

        p.bHeader = HEADER_GG_SHOUT;
        p.bEmpire = ch->GetEmpire();
        strlcpy(p.szText, chatbuf, sizeof(p.szText));
#if defined(__BL_MULTI_LANGUAGE_PREMIUM__)
        strlcpy(p.szCountry, ch->GetDesc()->GetCountryName().c_str(), sizeof(p.szCountry));
        p.hyperlinks = hyperlinks;
#endif

        P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGShout));

#if defined(__BL_MULTI_LANGUAGE_PREMIUM__)
        SendShout(chatbuf, ch->GetEmpire(), p.szCountry, p.hyperlinks);
#else
        SendShout(chatbuf, ch->GetEmpire());
#endif

        return (iExtraLen);
    }

    TPacketGCChat pack_chat;

    pack_chat.header = HEADER_GC_CHAT;
    pack_chat.size = sizeof(TPacketGCChat) + len;
    pack_chat.type = pinfo->type;
    pack_chat.id = ch->GetVID();
#if defined(__BL_CLIENT_LOCALE_STRING__)
    pack_chat.bCanFormat = (hyperlinks > 0);
#endif
//#if defined(__BL_MULTI_LANGUAGE_PREMIUM__)
//    strlcpy(pack_chat.szCountry, ch->GetDesc()->GetCountryName().c_str(), sizeof(pack_chat.szCountry));
//    pack_chat.bEmpire = ch->GetEmpire();
//#endif

Verdiğim Satırda #if defined(__BL_MULTI_LANGUAGE_PREMIUM__) yorum satırına aldığım kısım ile bayrakların Nick yanında görünme olayı kalktı ama sadece bu kısmı kaldırmam sistemlerin kodların düzgün çalışmasına bir etki edermi bilmiyorum. @texas1343 'nin söylediği bölüm ise admin veya diğer kullanıcıların yanında yazacak Admin Gm Staff kelimelerini kaldırma veya değiştirme gibi bir olay diye anladım. Yani zaten Bu bayrakların çıkması da MultiLanguage sistemini ekledikten sonra gelmişti.

Bunun yanında anlayan arkadaşlar Sadece Yorum satırına aldığım bölüm bayrakların gözükmemesi için görünürde yetiyor Ama herhangi farklı bir işlem yapmama gerek var mı? Yada farklı bir bloğu kaldırırsam daha iyi olur çünki artık kullanmıyorsun dediğiniz bir bölüm var mı?


@texas1343 Sayesinde bu kısmı keşfettim tekrardan teşekkür ederim.

NOT: Bu düzenlemeden Sonra Herhangi bir seysr oluşmuyor şuanlık.


Ekran Alıntısı.webp


Son Hali.
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst