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

Whistle

Ruhsuz Filozof
Kurucu
Kurumsal Üye
Geliştirici
Yardımsever Üye
Mesaj
11.494
Çözümler
546
Beğeni
12.049
Puan
5.864
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++:
    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++:
    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++:
    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:
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++:
bool    g_bDisablePrismNeed = false;

kodunu

C++:
bool    g_bDisablePrismNeed = true;

ile değiştirdim. Bu şekilde çalıştı.
 
Konunun alt kısmında novaline için anlatım mevcut
 
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 :)
 
Geri
Üst