mannaxxx 1
mannaxxx
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Best Studio 1
Best Studio
TuZaKK 1
TuZaKK
Mt2Hizmet 1
Mt2Hizmet
Agora Metin2 1
Agora Metin2
Bvural41 1
Bvural41
kaptanmikro1 1
kaptanmikro1
R 1
Roksam
[DEV]AB 1
[DEV]AB
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

Türkiye'de ilk Mobil & PC Aynı Anda Metin2 Oyna. Triarchonline kalıcı ve uzun ömürlü yapısı ile 24 Temmuz'da açılıyor. | 1-99 Mobil Metin2 Triarch 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