noisiv 1
noisiv
Manwe Work 1
Manwe Work
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Cannn6161 1
Cannn6161
onur akbaş 1
onur akbaş
PrimeAC 1
PrimeAC
Mt2Hizmet 1
Mt2Hizmet
romegames 1
romegames
Fethi Polat 1
Fethi Polat
xranzei 1
xranzei
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

[C++ & Py] Chronobreak Item

  • Konuyu başlatan Konuyu başlatan Ferumbras
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 8
  • Görüntüleme Görüntüleme 1K

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Yorumun için teşekkür ederim, sadece işlevselliğe odaklanıp bu şekilde yaptım, eşya basımında efsunlu veya socketli malzemeler için örnek verebilir misin? Bu konuyu açıkcası hiç düşünmedim eğer örnek verebilirsen belki bir güncellemeyle bu sorunu çözebilirim.
Örnek olarak süreli itemlerin kalan süresi socket0 üzerinde tutuluyor, süresi bitmeye yakın bir item + basmada kullanılıyorsa yakıp kolayca default süresine sıfırlayabilir oyuncular, efsunlu bir itemle artı basma aklıma gelen yok yarın efsunlu bir itemı artı basma nesnesi olarak özelleştirip eklersek sorun olur tahminimce burası.
 
Örnek olarak süreli itemlerin kalan süresi socket0 üzerinde tutuluyor, süresi bitmeye yakın bir item + basmada kullanılıyorsa yakıp kolayca default süresine sıfırlayabilir oyuncular, efsunlu bir itemle artı basma aklıma gelen yok yarın efsunlu bir itemı artı basma nesnesi olarak özelleştirip eklersek sorun olur tahminimce burası.
Dediklerin büyük ihtimal yapılabilir hatta bunu kendime challenge olarak belirleyip bunu da sisteme entegre edicem, yorumların için tekrar teşekkür ederim :)
 
Level sınırı değişikliği için char_item.cpp içerisindeki fonksiyonları şu şekilde değiştirin:

C++:
//Arat     
      
        LPITEM pkNewItem = ITEM_MANAGER::instance().CreateItem(result_fail_vnum, 1, 0, false);

        if (pkNewItem)
        {
      
//Önceki dosyalardan eklediğiniz fonksiyonu bununla değiştir:

LPITEM myring = FindSpecifyItem(40002);

if (myring && myring->GetCount() > 0)
{
    if (pkNewItem->GetLimitType(0) == LIMIT_LEVEL && pkNewItem->GetLimitValue(0) <= 60)
    {
        int socket_count = myring->GetSocketCount();
        for (int j = 0; j <= socket_count; ++j)
        {
            myring->SetSocket(j, 0);
        }
        for (int i = 0; i < prt->material_count; ++i)
        {
            int combined = combineVnumAndCount(prt->materials[i].vnum, prt->materials[i].count);
            myring->SetSocket(i, combined);
        }
    }
}

C++:
// Arat

NotifyRefineFail(this, item, szRefineType);

// Üstündeki fonksiyonu şu şekilde değiştir:

LPITEM myring = FindSpecifyItem(40002);

if (myring && myring->GetCount() > 0)
{
    if (item->GetLimitType(0) == LIMIT_LEVEL && item->GetLimitValue(0) <= 60)
    {
        int socket_count = myring->GetSocketCount();
        for (int j = 0; j <= socket_count; ++j)
        {
            myring->SetSocket(j, 0);
        }
        for (int i = 0; i < prt->material_count; ++i)
        {
            int combined = combineVnumAndCount(prt->materials[i].vnum, prt->materials[i].count);
            myring->SetSocket(i, combined);
        }
    }
}

Item level sınırını fonksiyonların içindeki GetLimitValue(0) <= 60 60 level'i değiştirin.
 
mantıklı hoş olmuş eline sağlık
 

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

Geri
Üst