Metin2 İtem Yansıtırken İç Görü Küresini Kapatma

Whistle

Ruhsuz :/
Kurucu
Geliştirici
Yardımsever Üye
Mesaj
11.919
Çözümler
564
Beğeni
13.411
Puan
5.915
Ticaret Puanı
2
Merhaba arkadaşlar,
Bu konumuzda sohbet satırında ve fısıltı penceresinde item yansıtırken içgörü küresini istemesini kapatacağız.
İşlemlere başlamadan önce hangi altyapı kullandığınızı öğrenininiz.
Bu işlemleri yapabilmek için kaynak kodlarını derlemeniz gerekmektedir. Eğer nasıl yapılacağını bilmiyorsanız Metin2 Sıfırdan Altyapı Server Files Hazırlama Rehberi 'ne göz atabilirsiniz.

Mainline kullanıyorsanız şunları uygulayınız
Sohbet satırına ve fısıltı penceresine item yansıtmak istediğiniz zaman içgörü küresi istiyorsa kapatmak için şu adımları uygulayınız.

game/src/input_main.cpp dosyasını açın ve ProcessTextTag fonksiyonu içerisinde şu kodu aratınız.
C++:
Genişlet Daralt Kopyala
    int nPrismCount = ch->CountSpecifyItem(ITEM_PRISM);

    if (nPrismCount < hyperlinks)
        return 1;

Ve bu kodları temizleyin ya da yorum satırına çeviriniz.

Aynı dosya ve fonksiyon içerisinde şu kodu aratın
C++:
Genişlet Daralt Kopyala
    if (!ch->GetMyShop())
    {
        ch->RemoveSpecifyItem(ITEM_PRISM, hyperlinks);
        return 0;
    } else
    {
        int sellingNumber = ch->GetMyShop()->GetNumberByVnum(ITEM_PRISM);
        if(nPrismCount - sellingNumber < hyperlinks)
        {
            return 2;
        } else
        {
            ch->RemoveSpecifyItem(ITEM_PRISM, hyperlinks);
            return 0;
        }
    }


Şu şekilde düzenleyiniz;
C++:
Genişlet Daralt Kopyala
    if (!ch->GetMyShop())
    {
        return 0;
    }

Bu şekilde düzenlemeleri yaptıktan sonra envanterde içgörü küresi olsa bile silinmeyecektir.


Novaline altyapı kullanıyorsanız;
Novaline source dosyalarında zaten bu özelliği açıp kapatabilmek için config eklenmiş durumda. CONFIG dosyanıza şunu ekleyin;
Kod:
Genişlet Daralt Kopyala
disable_prism_item = 1
 
Son düzenleme:
Hocam novaline altyapıdayım ancak bahsettiğiniz yöntemle çalışmadı bende. Onun yerine;

game\src\config.cpp içindeki

C++:
Genişlet Daralt Kopyala
bool    g_bDisablePrismNeed = false;

kodunu

C++:
Genişlet Daralt Kopyala
bool    g_bDisablePrismNeed = true;

ile değiştirdim. Bu şekilde çalıştı.
 
Konunun alt kısmında novaline için anlatım mevcut
Hocam zaten o kısımı uyguladım ve çalışmadı. Kraizy.tgz içindeki novaline altyapıyı kullanıyorum. Benim yorumda belirttiğim şekilde çalıştı. Konunun eski oluşuna dayanarak belki de eski bir novaline sürümüne göre yazılmış olabilir diye düşünüyorum. Benzer şekilde global_shout da cores/CH1/CONFIG dosyasındayken çalışmıyor ancak game\src\config.cpp içindeki bool değerini true yapınca çalışıyor.
 
Ben de kraizy.tgz içerisindeki mainline ve novaline göre anlattım. Hatta sıfırdan altyapı serisinde bu ayarlamaları yaptığım bir video var. Çalışması gerekiyordu.

Konuya sunduğunuz katkılar için teşekkür ederim. Ek bilgi iyidir :)
 
Üst