noisiv 1
noisiv
Manwe Work 1
Manwe Work
Agora Metin2 1
Agora Metin2
Bvural41 1
Bvural41
Mt2Hizmet 1
Mt2Hizmet
SLyFeLLowTR 1
SLyFeLLowTR
DEVLOPER 1
DEVLOPER
Hikaye Ekle

Cevaplanmadı ServerSide Efsun Botu HighLight Hatası

  • Konuyu başlatan Konuyu başlatan !Mavi
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 12
  • Görüntüleme Görüntüleme 1K

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

Merhabalar, konudaki efsun botunu sorunsuz kurdum. Her fonksiyonuyla çalışıyor. Sadece Highlight konusunda sorun yaşıyorum. Highlight sanırım tekrar tekrar ekleniyor ve efekten dolayı yavaşlama yaşıyorum. Bu konuda önerisi olan var mı? Yardımcı olursanız çok sevinirim. İnternetten bulduğum ve benim sorunumun aynısı olan içeriği de ekliyorum.

Efsun Botu: https://forum.turkmmo.com/konu/3751321-server-tarafli-efsun-botu/
Hata: https://gyazo.com/89358e852cc15d2f09c03d5d3fe2f772

İyi forumlar.
 
Kod:
#ifdef ENABLE_ACCE_SYSTEM
    memset(Slot.pActiveSlotEffect, 0, sizeof(Slot.pActiveSlotEffect));
#endif
    ClearSlot(&Slot);
    Slot.dwSlotNumber = dwIndex;

//////////////////////////////

    if (pSlot->pFinishCoolTimeEffect)
    {
        pSlot->pFinishCoolTimeEffect->Hide();
    }

#ifdef ENABLE_ACCE_SYSTEM
    for (auto& pEff : pSlot->pActiveSlotEffect)
        if(pEff)
            pEff->Hide();
#endif
}

void CSlotWindow::ClearAllSlot()
{
    Destroy();
}

////////////////////////////////////////////////

        __DestroyFinishCoolTimeEffect(pSlot);

#ifdef ENABLE_ACCE_SYSTEM
        for (auto& pEff : pSlot->pActiveSlotEffect)
        {
            if (pEff)
            {
                delete pEff;
                pEff = NULL;
            }
        }
#endif
    }
    m_ReserveDestroyEffectDeque.clear();

    if (m_pSlotActiveEffect)
        m_pSlotActiveEffect->Update();
       
       
 /////////////////////////////////////////////////      
       
       
        #ifdef ENABLE_ACCE_SYSTEM
        {
            int iX = m_rect.left + rSlot.ixPosition, iY = m_rect.top + rSlot.iyPosition, iItemYSize = rSlot.byyPlacedItemSize;
            for (int i = 0; i < 3; ++i)
            {
                auto& pEff = rSlot.pActiveSlotEffect[i];
                if ((pEff) && (iItemYSize == i + 1))
                {
                    pEff->Show();
                    pEff->SetPosition(iX, iY);
                    pEff->Update();
                    pEff->Render();
                }
            }
        }
#endif

////////////////////////////////////////////////////////////

#ifdef ENABLE_ACCE_SYSTEM
void CSlotWindow::ActivateEffect(DWORD dwSlotIndex, float r, float g, float b, float a)
{
    TSlot * pSlot;
    if (!GetSlotPointer(dwSlotIndex, &pSlot))
        return;

    for (int i = 0; i < 3; ++i)
    {
        auto& pActiveEff = pSlot->pActiveSlotEffect[i];

        if (pActiveEff)
        {
            delete pActiveEff;
            pActiveEff = NULL;
        }

        const int ciImageCount = 12;

        pActiveEff = new CAniImageBox(NULL);
        for (int j = 0; j <= ciImageCount ; ++j)
        {
            char cBuf[72];
            snprintf(cBuf, sizeof(cBuf), "d:/ymir work/ui/public/slotactiveeffect/slot%d/%02d.sub", (i + 1), j);
            pActiveEff->AppendImage(cBuf, 0, 0, r, g, b, a);
        }

        pActiveEff->SetRenderingMode(CGraphicExpandedImageInstance::RENDERING_MODE_SCREEN);
    }
    pSlot->bActive = TRUE;
}

void CSlotWindow::DeactivateEffect(DWORD dwSlotIndex)
{
    TSlot * pSlot;
    if (!GetSlotPointer(dwSlotIndex, &pSlot))
        return;

    for (auto& pActiveEff : pSlot->pActiveSlotEffect)
    {
        if (pActiveEff)
        {
            delete pActiveEff;
            pActiveEff = NULL;
        }
    }
}
#endif

///////////////////////////////////////////////////////

        if (rSlot.pFinishCoolTimeEffect)
        {
            CWindowManager::Instance().DestroyWindow(rSlot.pFinishCoolTimeEffect);
        }

#ifdef ENABLE_ACCE_SYSTEM
        for (auto& pEff: rSlot.pActiveSlotEffect )
            if (pEff)
                CWindowManager::Instance().DestroyWindow(pEff);
#endif
    }

    m_SlotList.clear();

    __DestroyToggleSlotImage();
    __DestroySlotEnableEffect();
    __DestroyBaseImage();



PhytonSlotWindow.cpp ,EterPhytonLib içinde bu ifdef ACCE olan kısımları kendine göre düzenle
 

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

Benzer konular

Geri
Üst