• Chat'ten [PM AT] Eklentisi ( Oto Bağırma Uyarlı )

    Paylaşım tarihi : 2025-05-15

    Python & Source Kod Geliştirme

    Görüntüleme : 487

  • User image
    Dolunay

    Yönetici

    Administrator

    Genel Bakış
    Metin2 sunucularında oyuncular arası etkileşimi artırmak ve iletişimi kolaylaştırmak amacıyla geliştirilen "PM At Eklentisi + Oto Bağırma Uyarılı" sistemi, otomatik bağırma mesajlarına özel bir [PM AT] butonu ekleyerek, kullanıcıların doğrudan özel mesaj göndermesini sağlar.

    Özellikler

    • Otomatik Bağırma Mesajlarına PM Butonu Ekleme: Otomatik bağırma mesajlarına entegre edilen [PM AT] butonu sayesinde, kullanıcılar doğrudan özel mesaj gönderebilir.
    • Kullanıcı Dostu Arayüz: Bağırma mesajlarında kullanıcı adının yanında yer alan [PM AT] butonu, kullanıcıların hızlı ve kolay bir şekilde özel mesaj başlatmasına olanak tanır.
    • Geliştirici Dostu Yapı: Eklenti, mevcut sistemlere kolayca entegre edilebilir ve özelleştirilebilir.
    Kurulum ve Entegrasyon
    Eklentinin kurulumu için aşağıdaki adımları takip edebilirsiniz:

    Not : game.py bölümündeki düzenleme, yalnızca otomatik bağırma (auto shout) sistemi bulunan sunucular içindir.
    Eğer sunucunuzda otomatik bağırma özelliği yoksa, bu adımı uygulamanız gerekmez. Aksi takdirde sistemsel uyumsuzluklar yaşanabilir.


    constinfo.py dosyasına aşağıdaki satırı ekleyin:
    importların altına ekle

    BagirmaPm = ""

    game.py dosyasında, otomatik bağırma mesajını gönderen satırı bulun ve aşağıdaki şekilde değiştirin:
    arat :

    net.SendChatPacket(str(constInfo.auto_shout_text),chat.CHAT_TYPE_SHOUT)

    değiştir :

    net.SendChatPacket(constInfo.BagirmaPm + '|cff00ff00|Hchattanpmyolla:' + str(player.GetName()) + '|h - |h|r' +'|cff00ff00|Hchattanpmyolla:' + str(player.GetName()) + '|h[PM AT]|h|r' + " : " + str(constInfo.auto_shout_text), chat.CHAT_TYPE_SHOUT)

    input_main.cpp dosyasında, bağırma mesajını işleyen kısmı aşağıdaki şekilde güncelleyin:
    arat :

        if (CHAT_TYPE_SHOUT == pinfo->type)
        {
            LogManager::instance().ShoutLog(g_bChannel, ch->GetEmpire(), chatbuf);
        }
    değiştir :

        if (CHAT_TYPE_SHOUT == pinfo->type)
        {
            len = snprintf(chatbuf, sizeof(chatbuf), "|cFF98FF33|h[Lv %d] |Hchattanpmyolla:%s|h%s|h|r : %s", ch->GetLevel(), ch->GetName(), ch->GetName(), buf);
        }
        else
        {
            len = snprintf(chatbuf, sizeof(chatbuf), "%s : %s", ch->GetName(), buf);
        }
    interfacemodule.py dosyasında, hiperlink tıklama olayını aşağıdaki şekilde yönetin:
    bu kodun altına :

        def MakeHyperlinkTooltip(self, hyperlink):
            tokens = hyperlink.split(":")
            if tokens and len(tokens):
                type = tokens[0]
                if "item" == type:
                    self.hyperlinkItemTooltip.SetHyperlinkItem(tokens)

    bunu ekle :

                elif "chattanpmyolla" == type:
                    self.OpenWhisperDialog(str(tokens[1]))

    uichat.py
    arat : def __SendChatPacket

    değiştir :

        def __SendChatPacket(self, text, type):
            if net.IsChatInsultIn(text):
                chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.CHAT_INSULT_STRING)
            else:
                if type == chat.CHAT_TYPE_SHOUT and not text.startswith("!"):
                    net.SendChatPacket(constInfo.BagirmaPm + '|cff00ff00|Hchattanpmyolla:' + str(player.GetName()) + '|h - |h|r' +'|cff00ff00|Hchattanpmyolla:' + str(player.GetName()) + '|h[PM AT]|h|r' + " : " + text, chat.CHAT_TYPE_SHOUT)
                elif text.startswith("!"):
                    net.SendChatPacket(constInfo.BagirmaPm + '|cff00ff00|Hchattanpmyolla:' + str(player.GetName()) + '|h - |h|r' +'|cff00ff00|Hchattanpmyolla:' + str(player.GetName()) + '|h[PM AT]|h|r' + " : " + text[1:], chat.CHAT_TYPE_SHOUT)
                else:
                    net.SendChatPacket(text, type)

    ⚠️ Dikkat Edilmesi Gerekenler
    • Buton Görünürlüğü: Bazı durumlarda, [PM AT] butonu bağırma mesajlarında görünmeyebilir. Bu durumda, yukarıdaki adımları doğru şekilde uyguladığınızdan emin olun.
    • Hata Ayıklama: Eğer eklenti düzgün çalışmıyorsa, hata ayıklama için
      syserr
    • dosyasını kontrol edin ve ilgili hataları giderin.
    Kanıtlar,
    [Resim: 241202_ee4a32ebce8aaba55402cc8f942814c4.png]
    [Resim: 241204_59ffbd7d735a81f208e69393b768f361.png]
    Anahtar Kelimeler
    • Metin2 PM at eklentisi
    • Metin2 otomatik bağırma sistemi
    • Metin2 özel mesaj butonu
    • Metin2 iletişim eklentisi
    • Metin2 bağırma mesajı özelleştirme



    Cevapla

    Tema Ayarları
    • Tema Modu

      Açık veya koyu modu veya Otomatik'i seçin

    • Tema Renk

      Ana tema renginizi seçin

    • Tema düzeni

      Düzeninizi seçin

    • Kenar Çubuğu Başlığı

      Kenar Çubuğu Başlığı Gizle/Göster