Çözüldü Arttırma kağıdı direk 5 efsun atsın?

  • Konuyu açan Konuyu açan bqofficial
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 12
  • Gösterim Gösterim 957
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ı.

bqofficial

Üye
Üye
Mesaj
103
Çözümler
2
Beğeni
23
Puan
39
Ticaret Puanı
0
Selamun aleyküm,

Linkleri görebilmek için giriş yap veya kayıt ol.


Bu konudaki işleme ihtiyacım var ancak konu 40 seviye ve altına eklenen yeşil efsun için paylaşılmış.

Konunun sonunda arkadaş şu şekilde bir video paylaşmış:

Linkleri görebilmek için giriş yap veya kayıt ol.


Normal efsun için bunu uyarlamış.

Şu an kullandığım sunucu da normal efsun ile 5. efsun basılmıyor ve efsunlar tek tek atılıyor, ben bunun tek efsun ile direk 5 efsun eklemesini ve eklenmeme şansını kaldırmak istiyorum.

Diğer efsunu kullanmayacağım için bir önemi yok.

Linkleri görebilmek için giriş yap veya kayıt ol.


Yukarıda benim char_item.cpp'nin efsun kodları bulunuyor.

Bu konuda da bana yardımcı olabilir misiniz?
 
C++:
Genişlet Daralt Kopyala
case USE_ADD_ATTRIBUTE :

                                    if (item2->GetAttributeSetIndex() == -1)

                                    {

                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));

                                        return false;

                                    }



                                        while (item2->GetAttributeCount() < 5)

                                            item2->AddAttribute();

                                    break;

böyle değiştir
 
En son bir moderatör tarafından düzenlenmiş:
Ek olarak şunu da deneyebilirsiniz;

char_item.cpp içinde bulun:
C++:
Genişlet Daralt Kopyala
                                        if (number(1, 100) <= aiItemAttributeAddPercent[item2->GetAttributeCount()])
                                        {
                                            item2->AddAttribute();

item2->AddAttribute(); kısmını şununla değiştirin:
C++:
Genişlet Daralt Kopyala
                                            short AttributeCount = abs(5 - item->GetAttributeCount());
                                            for (int i = 0; i < AttributeCount; i++)
                                                item2->AddAttribute();
 
C++:
Genişlet Daralt Kopyala
case USE_ADD_ATTRIBUTE :

                                    if (item2->GetAttributeSetIndex() == -1)

                                    {

                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));

                                        return false;

                                    }



                                        while (item2->GetAttributeCount() < 5)

                                            item2->AddAttribute();

                                    break;

böyle değiştir
Tam olarak hangi kısmı?

Ek olarak şunu da deneyebilirsiniz;

char_item.cpp içinde bulun:
C++:
Genişlet Daralt Kopyala
                                        if (number(1, 100) <= aiItemAttributeAddPercent[item2->GetAttributeCount()])
                                        {
                                            item2->AddAttribute();

item2->AddAttribute(); kısmını şununla değiştirin:
C++:
Genişlet Daralt Kopyala
                                            short AttributeCount = abs(5 - item->GetAttributeCount());
                                            for (int i = 0; i < AttributeCount; i++)
                                                item2->AddAttribute();
Deniyorum.
 
En son bir moderatör tarafından düzenlenmiş:
Ek olarak şunu da deneyebilirsiniz;

char_item.cpp içinde bulun:
C++:
Genişlet Daralt Kopyala
                                        if (number(1, 100) <= aiItemAttributeAddPercent[item2->GetAttributeCount()])
                                        {
                                            item2->AddAttribute();

item2->AddAttribute(); kısmını şununla değiştirin:
C++:
Genişlet Daralt Kopyala
                                            short AttributeCount = abs(5 - item->GetAttributeCount());
                                            for (int i = 0; i < AttributeCount; i++)
                                                item2->AddAttribute();
Bu şekilde bir değişiklik sağladığım zaman build ederken warning verdiğini gördüm ve oyun içerisinde bir durum değişikliği olmadı ne yazık ki.
 
Evet direk 5 efsun atıyor şu anda ancak efsun nesnesi kayıp olmuyor, bunu nasıl çözebiliriz?

C++:
Genişlet Daralt Kopyala
 case USE_ADD_ATTRIBUTE:
                if (item2->GetAttributeSetIndex() == -1)
                {
                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
                    return false;
                }

                if (LEGENDY_EFSUN_ENGEL(item2->GetVnum()))
                {
                    ChatPacket(CHAT_TYPE_INFO, "Smokin, gelinlik ve bukete efsun ekleyemezsin.");
                    return false;
                }

                while (item2->GetAttributeCount() < 5)
                item2->AddAttribute();
            break;

@H4ZEJ @Yeniceri

if (item2->GetAttributeSetIndex() == -1) bu kod mevcut ancak yinede kaybolmuyor, bir nevi sınırsız oldu denilebilir.
 
En son bir moderatör tarafından düzenlenmiş:
bunu dene

Kod:
Genişlet Daralt Kopyala
                                case USE_ADD_ATTRIBUTE :

                                    if (item2->GetAttributeSetIndex() == -1)

                                    {

                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));

                                        return false;

                                    }



                                        while (item2->GetAttributeCount() < 5)

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

                                    break;
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst