Hikayeler

Reklam vermek için turkmmo@gmail.com

[C++] Src, char_item.cpp fix işlememesi.

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

FKT

Level 4
Telefon Numarası Onaylanmış Üye
TM Üye
Katılım
14 Haz 2014
Konular
16
Mesajlar
424
Online süresi
55244s
Reaksiyon Skoru
115
Altın Konu
0
Başarım Puanı
136
TM Yaşı
11 Yıl 10 Ay 12 Gün
MmoLira
1,044
DevLira
0

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

Oyunda ekli olan kadim efsun nesnesini, ruha bağlı itemlere ve oklara sürükleyince efsun penceresi açılıyor. Oklara efsun atmıyor sadece efsun nesnesi kayboluyor ama kilitli iteme efsun atıyor. Aynı fixleri kadim efsun küresine yapınca fixler çalışıyor ve oyunda efsun penceresi açılmadan "Kullanilamaz" şeklinde bir hata alıyorum. Aynı hatayı efsun nesnesinin de vermesini nasıl sağlayabilirim? Game den olmuyor ise Clientten engellemek mümkün mü?

Not: c++ bilgim fazla yok
Kod:
                            case 71051 : // kadim efsun nesnesi
                                {
                                    // 유럽, 싱가폴, 베트남 진재가 사용금지
                                    LPITEM item2;

                                    if (!IsValidItemPosition(DestCell) || !(item2 = GetInventoryItem(wDestCell)))
                                        return false;

                                    if (item2->IsBind()) // kilitli item fix
                                    {
                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("This item is already binded."));
                                    return false;
                                    }
                                    if (item2->GetVnum() == 79501 || item2->GetVnum() == 79502 || item2->GetVnum() == 79503 || item2->GetVnum() == 79504) //ok çantası fix
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, "Kullanilamaz");
                                        return false;
                                    }
                                    if (ITEM_COSTUME == item2->GetType()) // @fixme4
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("KOSTUMLERDE_KULLANILAMAZ"));
                                        return false;
                                    }

                                    if (item2->IsExchanging() || item2->IsEquipped()) // @fixme114
                                        return false;

                                    if (item2->GetAttributeSetIndex() == -1)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성을 변경할 수 없는 아이템입니다."));
                                        return false;
                                    }

                                    if (item2->AddRareAttribute() == true)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("성공적으로 속성이 추가 되었습니다"));

                                        int iAddedIdx = item2->GetRareAttrCount() + 4;
                                        char buf[21];
                                        snprintf(buf, sizeof(buf), "%u", item2->GetID());

                                        LogManager::instance().ItemLog(
                                                GetPlayerID(),
                                                item2->GetAttributeType(iAddedIdx),
                                                item2->GetAttributeValue(iAddedIdx),
                                                item->GetID(),
                                                "ADD_RARE_ATTR",
                                                buf,
                                                GetDesc()->GetHostName(),
                                                item->GetOriginalVnum());

                                        item->SetCount(item->GetCount() - 1);
                                    }
                                    else
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("더 이상 이 아이템으로 속성을 추가할 수 없습니다"));
                                    }
                                }
                                break;

                            case 71052: // kadim efsun küresi
                                {
                                    LPITEM item2;

                                    if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
                                        return false;

                                    if (ITEM_COSTUME == item2->GetType()) // @fixme4
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("KOSTUMLERDE_KULLANILAMAZ"));
                                        return false;
                                    }

                                    if (item2->GetVnum() == 79501 || item2->GetVnum() == 79502 || item2->GetVnum() == 79503 || item2->GetVnum() == 79504)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, "Kullanilamaz");
                                        return false;
                                    }

                                    if (item2->IsExchanging() == true)
                                        return false;
                                
                                    if (item2->IsExchanging() || item2->IsEquipped()) // @fixme3
                                        return false;

                                    if (item2->IsBind())
                                    {
                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("This item is already binded."));
                                    return false;
                                    }

                                    if (item2->GetAttributeSetIndex() == -1)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성을 변경할 수 없는 아이템입니다."));
                                        return false;
                                    }
                                
                                    if (item2->GetAttributeCount() == 5)
                                    {
                                        item2->RemoveAttributeAt(4);
                                        item2->AddAttribute();
                                        item->SetCount(item->GetCount()-1);
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NEW_ATTRIBUTE_SUCCESS_MARBLE"));
                                    }
                                    else if (item2->GetAttributeCount() == 4)
                                    {
                                        item2->AddAttribute();
                                        item->SetCount(item->GetCount()-1);
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NEW_ATTRIBUTE_SUCCESS_MARBLE"));                                   
                                    }
                                    else
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NEW_ATTRIBUTE_MARBLE_ENOUGH_ATTR_COUNT"));
                                    }
                                }
                                break;

Konuyla ilgili gifler
giphy.gif

giphy.gif
 
Son düzenleme:
Kod:
                                    if (WEAPON_UNLIMITED_ARROW == item2->GetSubType())
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("OKCANTALARINDA_KULLANILAMAZ"));
                                        return false;
                                    }

bir zahmet 71051 case bloğunda müsait biyere ekleyip denermisiniz. olup olmadı şeklinde yazarsanız sevinirim.

Kod:
                                    if (item2->IsBind() && item->GetSubType() != WEAPON_UNLIMITED_ARROW)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can't do this because this item is binded."));
                                        return false;
                                    }

Birincisinin olmama ihtimaline karşılık bir kod daha veriyorum. lütfen bilgilendirin olup olmadı şeklinde

Maalesef hocam, 71051 bloğuna yapılan hiç bir fix işlemiyor. Aynı fixler 71052 (küre)de sıkıntısız oluyor.
 
Maalesef hocam, 71051 bloğuna yapılan hiç bir fix işlemiyor. Aynı fixler 71052 (küre)de sıkıntısız oluyor.
Phyton'dan engellemek gerekiyor o vakit. filesin diğer sorunlarından dolayı bu soruna ayıracak vakit bulamamıştım fixini bulursam paylaşacagım
 
  • Beğeni
Reactions: FKT
Kod:
    case 71051 : // kadim efsun nesnesi
                                {
                                    LPITEM item2;

                                    if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
                                        return false;

                                    if (ITEM_COSTUME == item2->GetType()) // @fixme4
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("KOSTUMLERDE_KULLANILAMAZ"));
                                        return false;
                                    }

                                    if (item2->GetVnum() == 79501 || item2->GetVnum() == 79502 || item2->GetVnum() == 79503 || item2->GetVnum() == 79504)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, "Kullanilamaz");
                                        return false;
                                    }

                                    if (item2->IsExchanging() == true)
                                        return false;
                                
                                    if (item2->IsExchanging() || item2->IsEquipped()) // @fixme3
                                        return false;

                                    if (item2->IsBind())
                                    {
                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("This item is already binded."));
                                    return false;
                                    }

                                    if (item2->GetAttributeSetIndex() == -1)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성을 변경할 수 없는 아이템입니다."));
                                        return false;
                                    }
                                
                                    if (item2->GetAttributeCount() == 5)
                                    {
                                        item2->RemoveAttributeAt(4);
                                        item2->AddAttribute();
                                        item->SetCount(item->GetCount()-1);
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NEW_ATTRIBUTE_SUCCESS_MARBLE"));
                                    }
                                    else if (item2->GetAttributeCount() == 4)
                                    {
                                        item2->AddAttribute();
                                        item->SetCount(item->GetCount()-1);
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NEW_ATTRIBUTE_SUCCESS_MARBLE"));                                   
                                    }
                                    else
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NEW_ATTRIBUTE_MARBLE_ENOUGH_ATTR_COUNT"));
                                    }
                                }
                                break;

Şu şekilde dener misin
 
Kod:
    case 71051 : // kadim efsun nesnesi
                                {
                                    LPITEM item2;

                                    if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
                                        return false;

                                    if (ITEM_COSTUME == item2->GetType()) // @fixme4
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("KOSTUMLERDE_KULLANILAMAZ"));
                                        return false;
                                    }

                                    if (item2->GetVnum() == 79501 || item2->GetVnum() == 79502 || item2->GetVnum() == 79503 || item2->GetVnum() == 79504)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, "Kullanilamaz");
                                        return false;
                                    }

                                    if (item2->IsExchanging() == true)
                                        return false;
                               
                                    if (item2->IsExchanging() || item2->IsEquipped()) // @fixme3
                                        return false;

                                    if (item2->IsBind())
                                    {
                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("This item is already binded."));
                                    return false;
                                    }

                                    if (item2->GetAttributeSetIndex() == -1)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성을 변경할 수 없는 아이템입니다."));
                                        return false;
                                    }
                               
                                    if (item2->GetAttributeCount() == 5)
                                    {
                                        item2->RemoveAttributeAt(4);
                                        item2->AddAttribute();
                                        item->SetCount(item->GetCount()-1);
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NEW_ATTRIBUTE_SUCCESS_MARBLE"));
                                    }
                                    else if (item2->GetAttributeCount() == 4)
                                    {
                                        item2->AddAttribute();
                                        item->SetCount(item->GetCount()-1);
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NEW_ATTRIBUTE_SUCCESS_MARBLE"));                                  
                                    }
                                    else
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NEW_ATTRIBUTE_MARBLE_ENOUGH_ATTR_COUNT"));
                                    }
                                }
                                break;

Şu şekilde dener misin
Maalesef, engellemeyi clientten yapabilirmiyiz?
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

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

Geri
Üst