Çözüldü Balık Yemleri Sınırsız

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ı.

LethalStrikeR

Yardımsever Üye
Yardımsever Üye
Üye
Mesaj
700
Çözümler
41
Beğeni
165
Puan
609
Ticaret Puanı
0
Herkese merhaba;
Filesımda balık yemleri sınırsız ayarlanmış bunu nasıl normale çevirebilirim ?
 
Çözüm
Burda bir problem göremedim char_item.cpp burayı kontrol eder misin? Büyük ihtimal burada bir düzenleme yapmışlar. Orjinal halini seninle paylaşıyorum.

C++:
        case USE_BAIT:
        {
            if (m_pkFishingEvent)
            {
                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("낚시 중에 미끼를 갈아끼울 수 없습니다."));
                return false;
            }

            LPITEM weapon = GetWear(WEAR_WEAPON);

            if (!weapon || weapon->GetType() != ITEM_ROD)
                return false;

            if (weapon->GetSocket(2))
            {
                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이미 꽂혀있던 미끼를 빼고 %s를 끼웁니다."), item->GetName());
            }
            else
            {
                ChatPacket(CHAT_TYPE_INFO...
Burdan item->SetCount kısmını inceleyebilirsin veya aşağıdaki kodlar ile kendi dosyanı kıyasla

Linkleri görebilmek için giriş yap veya kayıt ol.
 
bu kısmı kontrol eder misin? 12. satır.

fishing.cpp:
void UseFish(LPCHARACTER ch, LPITEM item)
{
    int idx = item->GetVnum() - fish_info[2].vnum+2;

    // 피라미 사용불가, 살아있는게 아닌건 사용불가

    if (idx<=1 || idx >= MAX_FISH)
        return;

    int r = number(1, 10000);

    item->SetCount(item->GetCount()-1);
 
bu kısmı kontrol eder misin? 12. satır.

fishing.cpp:
void UseFish(LPCHARACTER ch, LPITEM item)
{
    int idx = item->GetVnum() - fish_info[2].vnum+2;

    // 피라미 사용불가, 살아있는게 아닌건 사용불가

    if (idx<=1 || idx >= MAX_FISH)
        return;

    int r = number(1, 10000);

    item->SetCount(item->GetCount()-1);
Bendeki kod bloğu bu şekilde.
C++:
void UseFish(LPCHARACTER ch, LPITEM item)
{
    int idx = item->GetVnum() - fish_info[2].vnum+2;

    // 피라미 사용불가, 살아있는게 아닌건 사용불가

    if (idx<=1 || idx >= MAX_FISH)
        return;

    int r = number(1, 10000);

    item->SetCount(item->GetCount()-1);

    if (r >= 4001)
    {
        // 죽은 물고기
        ch->AutoGiveItem(fish_info[idx].dead_vnum);
    }
    else if (r >= 2001)
    {
        // 생선뼈
        ch->AutoGiveItem(FISH_BONE_VNUM);
    }
    else
    {
        // 1000 500 300 100 50 30 10 5 4 1
        static int s_acc_prob[NUM_USE_RESULT_COUNT] = { 1000, 1500, 1800, 1900, 1950, 1980, 1990, 1995, 1999, 2000 };
        int u_index = std::lower_bound(s_acc_prob, s_acc_prob + NUM_USE_RESULT_COUNT, r) - s_acc_prob;

        switch (fish_info[idx].used_table[u_index])
        {
            case USED_TREASURE_MAP:    // 3
            case USED_NONE:        // 0
            case USED_WATER_STONE:    // 2
                ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("고기가 흔적도 없이 사라집니다."));
                break;

            case USED_SHELLFISH:    // 1
                if ( LC_IsCanada() == true )
                {
                    if ( number(0, 2) != 2 ) return;
                }

                ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("배 속에서 조개가 나왔습니다."));
                ch->AutoGiveItem(SHELLFISH_VNUM);
                break;

            case USED_EARTHWARM:    // 4
                ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("배 속에서 지렁이가 나왔습니다."));
                ch->AutoGiveItem(EARTHWORM_VNUM);
                break;

            default:
                ch->AutoGiveItem(fish_info[idx].used_table[u_index]);
                break;
        }
    }
}
 
Burada bir problem yok fishing.cpp dosyanı ekler misin?
 
Burda bir problem göremedim char_item.cpp burayı kontrol eder misin? Büyük ihtimal burada bir düzenleme yapmışlar. Orjinal halini seninle paylaşıyorum.

C++:
        case USE_BAIT:
        {
            if (m_pkFishingEvent)
            {
                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("낚시 중에 미끼를 갈아끼울 수 없습니다."));
                return false;
            }

            LPITEM weapon = GetWear(WEAR_WEAPON);

            if (!weapon || weapon->GetType() != ITEM_ROD)
                return false;

            if (weapon->GetSocket(2))
            {
                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이미 꽂혀있던 미끼를 빼고 %s를 끼웁니다."), item->GetName());
            }
            else
            {
                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("낚시대에 %s를 미끼로 끼웁니다."), item->GetName());
            }

            weapon->SetSocket(2, item->GetValue(0));
            item->SetCount(item->GetCount() - 1);
        }
        break;
 
Çözüm
Bu kod devre dışı bırakılmış sorun çözüldü.
C++:
item->SetCount(item->GetCount() - 1);
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst