Çözüldü Skill slot yerine eşya koyma engeli

  • Konuyu açan Konuyu açan adv1453
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 7
  • Gösterim Gösterim 1K
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ı.

adv1453

Yardımsever Üye
Yardımsever Üye
MT Üye
Mesaj
442
Çözümler
42
Beğeni
221
Puan
869
Ticaret Puanı
0
Herkese selam, bu kısıma eşya koymayı nasıl engelleyebilirim? ejderha tanrılarını oraya koyunca bug yapılabiliyor.

Screenshot_4.jpg
 
Çözüm
Ne tür bug oluşuyor? Oyuncular oralara potlarını vs koydukları için tüm itemleri engellemek ne kadar mantıklı bilmiyorum

Client/UserInterface/PytonItemModule.cpp dosyasına giriniz ve şu kodları aratın;
C++:
Genişlet Daralt Kopyala
PyObject * itemCanAddToQuickSlotItem(PyObject * poSelf, PyObject * poArgs)
{
    int iItemIndex;
    if (!PyTuple_GetInteger(poArgs, 0, &iItemIndex))
        return Py_BadArgument();

    CItemManager::Instance().SelectItemData(iItemIndex);
    CItemData * pItemData = CItemManager::Instance().GetSelectedItemDataPointer();
    if (!pItemData)
        return Py_BuildException("Can't find select item data");

    if (CItemData::ITEM_TYPE_USE == pItemData->GetType() || CItemData::ITEM_TYPE_QUEST == pItemData->GetType())
    {...
Ne tür bug oluşuyor? Oyuncular oralara potlarını vs koydukları için tüm itemleri engellemek ne kadar mantıklı bilmiyorum

Client/UserInterface/PytonItemModule.cpp dosyasına giriniz ve şu kodları aratın;
C++:
Genişlet Daralt Kopyala
PyObject * itemCanAddToQuickSlotItem(PyObject * poSelf, PyObject * poArgs)
{
    int iItemIndex;
    if (!PyTuple_GetInteger(poArgs, 0, &iItemIndex))
        return Py_BadArgument();

    CItemManager::Instance().SelectItemData(iItemIndex);
    CItemData * pItemData = CItemManager::Instance().GetSelectedItemDataPointer();
    if (!pItemData)
        return Py_BuildException("Can't find select item data");

    if (CItemData::ITEM_TYPE_USE == pItemData->GetType() || CItemData::ITEM_TYPE_QUEST == pItemData->GetType())
    {
        return Py_BuildValue("i", TRUE);
    }

    return Py_BuildValue("i", FALSE);
}

Eğer tüm itemleri engellemek istiyorsanız kodları şu şekilde değiştirin;
C++:
Genişlet Daralt Kopyala
PyObject * itemCanAddToQuickSlotItem(PyObject * poSelf, PyObject * poArgs)
{
    int iItemIndex;
    if (!PyTuple_GetInteger(poArgs, 0, &iItemIndex))
        return Py_BadArgument();

    CItemManager::Instance().SelectItemData(iItemIndex);
    CItemData * pItemData = CItemManager::Instance().GetSelectedItemDataPointer();
    if (!pItemData)
        return Py_BuildException("Can't find select item data");

    /*if (CItemData::ITEM_TYPE_USE == pItemData->GetType() || CItemData::ITEM_TYPE_QUEST == pItemData->GetType())
    {
        return Py_BuildValue("i", TRUE);
    }*/

    return Py_BuildValue("i", FALSE);
}


Sadece belli başlı itemleri engellemek içinse switch kullanarak engelleyebilirsiniz.
Örnek;
C++:
Genişlet Daralt Kopyala
PyObject * itemCanAddToQuickSlotItem(PyObject * poSelf, PyObject * poArgs)
{
    int iItemIndex;
    if (!PyTuple_GetInteger(poArgs, 0, &iItemIndex))
        return Py_BadArgument();

    CItemManager::Instance().SelectItemData(iItemIndex);
    CItemData * pItemData = CItemManager::Instance().GetSelectedItemDataPointer();
    if (!pItemData)
        return Py_BuildException("Can't find select item data");

 
    switch (iItemIndex)
    {
        case 39017:
        case 39018:
        case 39019:
            return Py_BuildValue("i", FALSE);
    }

    if (CItemData::ITEM_TYPE_USE == pItemData->GetType() || CItemData::ITEM_TYPE_QUEST == pItemData->GetType())
    {
        return Py_BuildValue("i", TRUE);
    }

    return Py_BuildValue("i", FALSE);
}
 
Son düzenleme:
Çözüm
Ejderha tanrıları varya mesela hp vereni 1. slota koyuyorsun karakter atıyorsun, oyuna giriş yaparken sürekli 1 e basıyorsun can artıyor yani tekrar kullanıyor
 
İlginç bir hataymış. Mesajımda da belirli itemleri taskbar’a koymayı engellemeyi anlattım. Uyguladıktan sonra çalışıp çalışmadığını teyit ederseniz sevinirim. :)
 
Genelde vakit olmadığı için kodları test etmeden ekliyorum. Bu yüzden de çalışıp çalışmadığını bilmem gerekli :D
Hangisini uyguladınız? :D Komple engelleye mi yoksa belirli eşyaları mı?
 
Genelde vakit olmadığı için kodları test etmeden ekliyorum. Bu yüzden de çalışıp çalışmadığını bilmem gerekli :D
Hangisini uyguladınız? :D Komple engelleye mi yoksa belirli eşyaları mı?

Komple engelledim :D yeşil pot falan koyulmasın pot'a gerek yok zaten oto pot var :D
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst