sermin 1
sermin
berkmenoo 1
berkmenoo
mannaxxx 1
mannaxxx
Agora Metin2 1
Agora Metin2
[DEV]AB 1
[DEV]AB
kaptanmikro1 1
kaptanmikro1
Hikaye Ekle

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

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

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!

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:
if (item2->IsBind()) // kilitli item fix
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("This item is already binded."));
return false;
}

Bu Kısımı



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

bununla değiştirip deneyebilirmisin
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

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

Geri
Üst