[DEV]AB 1
[DEV]AB
metin2008 1
metin2008
kaptanmikro1 1
kaptanmikro1
Scarlet 1
Scarlet
emirhanHCL 1
emirhanHCL
R 1
Roksam
farkmt2official 1
farkmt2official
TuZaKK 1
TuZaKK
sermin 1
sermin
berkmenoo 1
berkmenoo
mannaxxx 1
mannaxxx
Agora Metin2 1
Agora Metin2
Hikaye Ekle

yeşil gücün sadece ilk efsunu getirmesi.

  • Konuyu başlatan Konuyu başlatan CsFraNq
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 272

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 yeşil güç ile efsun ekleyince efsun oranlarından sadece ilk efsunun gelmesini nasıl sağlayabilirim.
Mesela kalkana yeşil efsun artırma ile efsun ekledik ve güç geldi.
Bu güç şansa bağlı olarak 2 4 6 8 12 gelebiliyor, ben bunun sadece 2 gelmesini istiyorum, bunu nasıl ayarlayabilirim.
char_item.cpp deki kod bu şekilde.
Kod:
case USE_ADD_ATTRIBUTE:
                if (item2->GetAttributeSetIndex() == -1)
                {
                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성을 변경할 수 없는 아이템입니다."));
                    return false;
                }

                if (item2->GetAttributeCount() < 5)
                {
                    // 연재가 특수처리
                    // 절대로 연재가 추가 안될거라 하여 하드 코딩함.
                    if (item->GetVnum() == 71152 || item->GetVnum() == 76024)
                    {
                        if ((item2->GetType() == ITEM_WEAPON)
                            || (item2->GetType() == ITEM_ARMOR && item2->GetSubType() == ARMOR_BODY))
                        {
                            bool bCanUse = true;
                            for (int i = 0; i < ITEM_LIMIT_MAX_NUM; ++i)
                            {
                                if (item2->GetLimitType(i) == LIMIT_LEVEL && item2->GetLimitValue(i) > 40)
                                {
                                    bCanUse = false;
                                    break;
                                }
                            }
                            if (false == bCanUse)
                            {
                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("적용 레벨보다 높아 사용이 불가능합니다."));
                                break;
                            }
                        }
                        else
                        {
                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("무기와 갑옷에만 사용 가능합니다."));
                            break;
                        }
                    }
                    char buf[21];
                    snprintf(buf, sizeof(buf), "%u", item2->GetID());

                    if (number(1, 100) <= aiItemAttributeAddPercent[item2->GetAttributeCount()])
                    {
                        item2->AddAttribute();
                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성 추가에 성공하였습니다."));

                        int iAddedIdx = item2->GetAttributeCount() - 1;
                        LogManager::instance().ItemLog(
                            GetPlayerID(),
                            item2->GetAttributeType(iAddedIdx),
                            item2->GetAttributeValue(iAddedIdx),
                            item->GetID(),
                            "ADD_ATTRIBUTE_SUCCESS",
                            buf,
                            GetDesc()->GetHostName(),
                            item->GetOriginalVnum());
                    }
                    else
                    {
                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성 추가에 실패하였습니다."));
                        LogManager::instance().ItemLog(this, item, "ADD_ATTRIBUTE_FAIL", buf);
                    }

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

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

Geri
Üst