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

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++:
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++:
                                        if (number(1, 100) <= aiItemAttributeAddPercent[item2->GetAttributeCount()])
                                        {
                                            item2->AddAttribute();

item2->AddAttribute(); kısmını şununla değiştirin:
C++:
                                            short AttributeCount = abs(5 - item->GetAttributeCount());
                                            for (int i = 0; i < AttributeCount; i++)
                                                item2->AddAttribute();
 
C++:
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++:
                                        if (number(1, 100) <= aiItemAttributeAddPercent[item2->GetAttributeCount()])
                                        {
                                            item2->AddAttribute();

item2->AddAttribute(); kısmını şununla değiştirin:
C++:
                                            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++:
                                        if (number(1, 100) <= aiItemAttributeAddPercent[item2->GetAttributeCount()])
                                        {
                                            item2->AddAttribute();

item2->AddAttribute(); kısmını şununla değiştirin:
C++:
                                            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++:
 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:
                                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;
 
Sorun çözüldüğüne göre konu kapatılmıştır, iyi çalışmalar.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst