Çözüldü sistem için engelleme ekleme

  • Konuyu açan Konuyu açan enes turan
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 4
  • Gösterim Gösterim 61
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ı.

enes turan

Yardımsever Üye
Yardımsever Üye
MT Üye
Mesaj
665
Çözümler
43
Beğeni
400
Puan
909
Ticaret Puanı
0
merhabalar

kullandığım filese Official Additional Equipment Page sistemi ekledim. daha sonra costume_weapon sistemi ekledim.

Adsız.webp


2. envantere tıkladığımda geçiş yapıyor problem yok. fakat diyelimki 2. envanterde kılıç değilde çiftel bir silah takılı ve geçiş yaptığım da şöyle bir şey oluyor
1Adsız.webp


çift el silaha tek el kostüm takılı kalıyor görüntü olarak bir sorun yok

fakat ben ya bunun için bir sorgu yada basitçe silah kostümü takılı iken envanter değiştiremezsin gibi bir engel koymak istiyorum
ama hangi dosyada ne yapacağımda dair bir fikrim yok. kod bilgisi olan aradaşlar bir örnek verebilirse cok memnun olurum.
 
Çözüm
char.cpp:
Genişlet Daralt Kopyala
// BUL;

void CHARACTER::ChangeEquip(int index, bool bIgnore)

// KOMPLE DEGISTIR;
    
void CHARACTER::ChangeEquip(int index, bool bIgnore)
{
    if (GetSkillLevel (SKILL_ADDITIONAL_PAGE) == 0)
    {
        return;
    }

    // Silah kostumu icin gerekli kontrol.
    if (GetWear (WEAR_COSTUME_WEAPON) != 0)
    {
        ChatPacket (CHAT_TYPE_INFO, "You can't change equipment page while wearing costumes.");
        return;
    }

    if (GetExchange() || GetMyShop() || GetShopOwner() || IsOpenSafebox() || IsCubeOpen())
    {
        ChatPacket(CHAT_TYPE_INFO, "You can't change equipment page while you're doing something else.");
        return;
    }

    if (!bIgnore)
    {
        if (index == GetEquipIndex())
        {...
char.cpp:
Genişlet Daralt Kopyala
// BUL;

void CHARACTER::ChangeEquip(int index, bool bIgnore)

// KOMPLE DEGISTIR;
    
void CHARACTER::ChangeEquip(int index, bool bIgnore)
{
    if (GetSkillLevel (SKILL_ADDITIONAL_PAGE) == 0)
    {
        return;
    }

    // Silah kostumu icin gerekli kontrol.
    if (GetWear (WEAR_COSTUME_WEAPON) != 0)
    {
        ChatPacket (CHAT_TYPE_INFO, "You can't change equipment page while wearing costumes.");
        return;
    }

    if (GetExchange() || GetMyShop() || GetShopOwner() || IsOpenSafebox() || IsCubeOpen())
    {
        ChatPacket(CHAT_TYPE_INFO, "You can't change equipment page while you're doing something else.");
        return;
    }

    if (!bIgnore)
    {
        if (index == GetEquipIndex())
        {
            return;
        }
    }

    int iPulse = thecore_pulse();
    if (iPulse - GetEquipLoadTime() < PASSES_PER_SEC (5))
    {
        ChatPacket (CHAT_TYPE_INFO, "You'll need to wait 5 seconds in order to do that again.");
        return;
    }

    SetEquipIndex (index);

    switch (index)
    {
        case FIRST_TYPE_EQUIPMENT:
        {
            if (secondEquip.size())
            {
                for (auto secondIndex = secondEquip.begin(); secondIndex != secondEquip.end(); ++secondIndex)
                    secondIndex->second->StopEquipEvent();
            }

            if (firstEquip.size())
            {
                for (auto firstIndex = firstEquip.begin(); firstIndex != firstEquip.end(); ++firstIndex)
                    firstIndex->second->StartEquipEvent();
            }
        }
        break;

        case SECOND_TYPE_EQUIPMENT:
        {
            if (firstEquip.size())
            {
                for (auto firstIndex = firstEquip.begin(); firstIndex != firstEquip.end(); ++firstIndex)
                    firstIndex->second->StopEquipEvent();
            }

            if (secondEquip.size())
            {
                for (auto secondIndex = secondEquip.begin(); secondIndex != secondEquip.end(); ++secondIndex)
                    secondIndex->second->StartEquipEvent();
            }
        }
        break;
    }

    
    SetEquipLoadTime();
    CheckMaximumPoints();
    ComputeBattlePoints();
    UpdatePacket();

    if (IsAffectFlag(AFF_GWIGUM))
        RemoveAffect(SKILL_GWIGEOM);

    if (IsAffectFlag(AFF_GEOMGYEONG))
        RemoveAffect(SKILL_GEOMKYUNG);

    ChatPacket(CHAT_TYPE_COMMAND, "SetEquipmentPage %d", index);

    if (!bIgnore)
        ChatPacket(CHAT_TYPE_INFO, "The equipment page was changed.");
}
 
Çözüm
char.cpp:
Genişlet Daralt Kopyala
// BUL;

void CHARACTER::ChangeEquip(int index, bool bIgnore)

// KOMPLE DEGISTIR;
    
void CHARACTER::ChangeEquip(int index, bool bIgnore)
{
    if (GetSkillLevel (SKILL_ADDITIONAL_PAGE) == 0)
    {
        return;
    }

    // Silah kostumu icin gerekli kontrol.
    if (GetWear (WEAR_COSTUME_WEAPON) != 0)
    {
        ChatPacket (CHAT_TYPE_INFO, "You can't change equipment page while wearing costumes.");
        return;
    }

    if (GetExchange() || GetMyShop() || GetShopOwner() || IsOpenSafebox() || IsCubeOpen())
    {
        ChatPacket(CHAT_TYPE_INFO, "You can't change equipment page while you're doing something else.");
        return;
    }

    if (!bIgnore)
    {
        if (index == GetEquipIndex())
        {
            return;
        }
    }

    int iPulse = thecore_pulse();
    if (iPulse - GetEquipLoadTime() < PASSES_PER_SEC (5))
    {
        ChatPacket (CHAT_TYPE_INFO, "You'll need to wait 5 seconds in order to do that again.");
        return;
    }

    SetEquipIndex (index);

    switch (index)
    {
        case FIRST_TYPE_EQUIPMENT:
        {
            if (secondEquip.size())
            {
                for (auto secondIndex = secondEquip.begin(); secondIndex != secondEquip.end(); ++secondIndex)
                    secondIndex->second->StopEquipEvent();
            }

            if (firstEquip.size())
            {
                for (auto firstIndex = firstEquip.begin(); firstIndex != firstEquip.end(); ++firstIndex)
                    firstIndex->second->StartEquipEvent();
            }
        }
        break;

        case SECOND_TYPE_EQUIPMENT:
        {
            if (firstEquip.size())
            {
                for (auto firstIndex = firstEquip.begin(); firstIndex != firstEquip.end(); ++firstIndex)
                    firstIndex->second->StopEquipEvent();
            }

            if (secondEquip.size())
            {
                for (auto secondIndex = secondEquip.begin(); secondIndex != secondEquip.end(); ++secondIndex)
                    secondIndex->second->StartEquipEvent();
            }
        }
        break;
    }

    
    SetEquipLoadTime();
    CheckMaximumPoints();
    ComputeBattlePoints();
    UpdatePacket();

    if (IsAffectFlag(AFF_GWIGUM))
        RemoveAffect(SKILL_GWIGEOM);

    if (IsAffectFlag(AFF_GEOMGYEONG))
        RemoveAffect(SKILL_GEOMKYUNG);

    ChatPacket(CHAT_TYPE_COMMAND, "SetEquipmentPage %d", index);

    if (!bIgnore)
        ChatPacket(CHAT_TYPE_INFO, "The equipment page was changed.");
}
bu sistem getwear yerine getadditonalwear kullanıyordu sanırım onu dikkate aldın mı engeli koyarken
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst