Yardım Kadim efsun küresi

  • Konuyu açan Konuyu açan password
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 5
  • Gösterim Gösterim 31
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

password

Çaylak Üye
Üye
Mesaj
34
Çözümler
3
Beğeni
4
Puan
19
Ticaret Puanı
0
merhaba arkadaşlar şuan 5.efsunu değiştiriyor 3. 4. efsunu değiştirmesini nasıl yapabilirz
Kod:
Genişlet Daralt Kopyala
                            case 71052:
                                {
                                    LPITEM item2;
                                    if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
                                        return false;
                                    if (ITEM_COSTUME == item2->GetType()){ // @fixme15
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
                                        return false;
                                    }
                                    if (item2->IsExchanging() || item2->IsEquipped()) // @fixme14
                                        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;
 
Aşağıdaki kodla 4. efsunu değiştirebilirsin.
Buradan çalışma mantığı anlayabilirsin.
ilgili yer:
Genişlet Daralt Kopyala
(item2->GetAttributeCount() >= 4){ // 4. efsunu değiştirmek için en az 4 efsun olmalı

        item2->RemoveAttributeAt(3); // 4. efsunu kaldır

        item2->AddAttribute();       // Yeni 4. efsunu ekle
Kod:
Genişlet Daralt Kopyala

4. efsunu değiştirecek kod.
kadim efsun:
Genişlet Daralt Kopyala
case 71052:
{
    LPITEM item2;
    if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
        return false;
    if (ITEM_COSTUME == item2->GetType()){ // @fixme15
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
        return false;
    }
    if (item2->IsExchanging() || item2->IsEquipped()) // @fixme14
        return false;
    if (item2->GetAttributeSetIndex() == -1){
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
        return false;
    }
    if (item2->GetAttributeCount() >= 4){ // 4. efsunu değiştirmek için en az 4 efsun olmalı
        item2->RemoveAttributeAt(3); // 4. efsunu kaldır
        item2->AddAttribute();       // Yeni 4. efsunu ekle
        item->SetCount(item->GetCount()-1);
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NEW_ATTRIBUTE_SUCCESS_MARBLE_4TH"));
    }
    else
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NEW_ATTRIBUTE_MARBLE_NOT_ENOUGH_ATTR_COUNT")); // Yeterli efsun yoksa hata mesajı
}
break;
 
Aşağıdaki kodla 4. efsunu değiştirebilirsin.
Buradan çalışma mantığı anlayabilirsin.
ilgili yer:
Genişlet Daralt Kopyala
(item2->GetAttributeCount() >= 4){ // 4. efsunu değiştirmek için en az 4 efsun olmalı

        item2->RemoveAttributeAt(3); // 4. efsunu kaldır

        item2->AddAttribute();       // Yeni 4. efsunu ekle
Kod:
Genişlet Daralt Kopyala

4. efsunu değiştirecek kod.
kadim efsun:
Genişlet Daralt Kopyala
case 71052:
{
    LPITEM item2;
    if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
        return false;
    if (ITEM_COSTUME == item2->GetType()){ // @fixme15
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
        return false;
    }
    if (item2->IsExchanging() || item2->IsEquipped()) // @fixme14
        return false;
    if (item2->GetAttributeSetIndex() == -1){
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
        return false;
    }
    if (item2->GetAttributeCount() >= 4){ // 4. efsunu değiştirmek için en az 4 efsun olmalı
        item2->RemoveAttributeAt(3); // 4. efsunu kaldır
        item2->AddAttribute();       // Yeni 4. efsunu ekle
        item->SetCount(item->GetCount()-1);
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NEW_ATTRIBUTE_SUCCESS_MARBLE_4TH"));
    }
    else
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NEW_ATTRIBUTE_MARBLE_NOT_ENOUGH_ATTR_COUNT")); // Yeterli efsun yoksa hata mesajı
}
break;
teşekkürler deniyorum
 
Aşağıdaki kodla 4. efsunu değiştirebilirsin.
Buradan çalışma mantığı anlayabilirsin.
ilgili yer:
Genişlet Daralt Kopyala
(item2->GetAttributeCount() >= 4){ // 4. efsunu değiştirmek için en az 4 efsun olmalı

        item2->RemoveAttributeAt(3); // 4. efsunu kaldır

        item2->AddAttribute();       // Yeni 4. efsunu ekle
Kod:
Genişlet Daralt Kopyala

4. efsunu değiştirecek kod.
kadim efsun:
Genişlet Daralt Kopyala
case 71052:
{
    LPITEM item2;
    if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
        return false;
    if (ITEM_COSTUME == item2->GetType()){ // @fixme15
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
        return false;
    }
    if (item2->IsExchanging() || item2->IsEquipped()) // @fixme14
        return false;
    if (item2->GetAttributeSetIndex() == -1){
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
        return false;
    }
    if (item2->GetAttributeCount() >= 4){ // 4. efsunu değiştirmek için en az 4 efsun olmalı
        item2->RemoveAttributeAt(3); // 4. efsunu kaldır
        item2->AddAttribute();       // Yeni 4. efsunu ekle
        item->SetCount(item->GetCount()-1);
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NEW_ATTRIBUTE_SUCCESS_MARBLE_4TH"));
    }
    else
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NEW_ATTRIBUTE_MARBLE_NOT_ENOUGH_ATTR_COUNT")); // Yeterli efsun yoksa hata mesajı
}
break;
sadece 5. efsun için çalışıyor
3 4 denedigimde hata mesajı cıkıyor itemde 4 efsun olması gerekiyor sanırım 5 efsun iken değiştirmiyor
Kod:
Genişlet Daralt Kopyala
NEW_ATTRIBUTE_MARBLE_NOT_ENOUGH_ATTR_COUNT

item2->GetAttributeCount() == 3
Kod:
Genişlet Daralt Kopyala
item2->GetAttributeCount() == 3 burayı 5 yapınca 3.efsunu değiştirmek istiyorsan onun üstündeki 4 üde değiştiriyor
 
sadece 5. efsun için çalışıyor
3 4 denedigimde hata mesajı cıkıyor itemde 4 efsun olması gerekiyor sanırım 5 efsun iken değiştirmiyor
Kod:
Genişlet Daralt Kopyala
NEW_ATTRIBUTE_MARBLE_NOT_ENOUGH_ATTR_COUNT

item2->GetAttributeCount() == 3
Kod:
Genişlet Daralt Kopyala
item2->GetAttributeCount() == 3 burayı 5 yapınca 3.efsunu değiştirmek istiyorsan onun üstündeki 4 üde değiştiriyor

Vurguladığım satırı 5 yap.
Senin kadim efsun küresi çalışma mantığı nasıl? 5. efsun kadim küresi - 4. efsun kadim küresi olarak mı? Seçmeli mi?
Eğer ayrı ayrı ise;

case 71052
case 71053
case 71054 yapmalısın.

kadim:
Genişlet Daralt Kopyala
case 71052:
{
    LPITEM item2;
    if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
        return false;
    if (ITEM_COSTUME == item2->GetType()){ // @fixme15
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
        return false;
    }
    if (item2->IsExchanging() || item2->IsEquipped()) // @fixme14
        return false;
    if (item2->GetAttributeSetIndex() == -1){
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
        return false;
    }
    if (item2->GetAttributeCount() >= 5){ // 4. efsunu değiştirmek için en az 4 efsun olmalı
        item2->RemoveAttributeAt(3); // 4. efsunu kaldır
        item2->AddAttribute();       // Yeni 4. efsunu ekle
        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_NOT_ENOUGH_ATTR_COUNT")); // Yeterli efsun yoksa hata mesajı
}
break;
 
Vurguladığım satırı 5 yap.
Senin kadim efsun küresi çalışma mantığı nasıl? 5. efsun kadim küresi - 4. efsun kadim küresi olarak mı? Seçmeli mi?
Eğer ayrı ayrı ise;

case 71052
case 71053
case 71054 yapmalısın.

kadim:
Genişlet Daralt Kopyala
case 71052:
{
    LPITEM item2;
    if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
        return false;
    if (ITEM_COSTUME == item2->GetType()){ // @fixme15
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
        return false;
    }
    if (item2->IsExchanging() || item2->IsEquipped()) // @fixme14
        return false;
    if (item2->GetAttributeSetIndex() == -1){
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));
        return false;
    }
    if (item2->GetAttributeCount() >= 5){ // 4. efsunu değiştirmek için en az 4 efsun olmalı
        item2->RemoveAttributeAt(3); // 4. efsunu kaldır
        item2->AddAttribute();       // Yeni 4. efsunu ekle
        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_NOT_ENOUGH_ATTR_COUNT")); // Yeterli efsun yoksa hata mesajı
}
break;
Linkleri görebilmek için giriş yap veya kayıt ol.

bu konudaki sistemi 3 4 5 efsun için kurdum
Kod:
Genişlet Daralt Kopyala
#ifdef WJ_ELDER_ATTRIBUTE_SYSTEM
                            case 71052:
                                {
                                    LPITEM item2;
                                    if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
                                        return false;
                                    if (ITEM_COSTUME == item2->GetType()){ // @fixme15
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼O¼ºA≫ º?°æCO ¼o ¾ø´A ¾ÆAIAUAO´I´U."));
                                        return false;
                                    }
                                    if (item2->IsExchanging() || item2->IsEquipped()) // @fixme14
                                        return false;
                                    if (item2->GetAttributeSetIndex() == -1){
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼O¼ºA≫ º?°æCO ¼o ¾ø´A ¾ÆAIAUAO´I´U."));
                                        return false;
                                    }
                                    if (item2->GetAttributeCount() == 3){
                                        item2->RemoveAttributeAt(2);
                                        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;
                            case 71053:
                                {
                                    LPITEM item2;
                                    if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
                                        return false;
                                    if (ITEM_COSTUME == item2->GetType()){ // @fixme15
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼O¼ºA≫ º?°æCO ¼o ¾ø´A ¾ÆAIAUAO´I´U."));
                                        return false;
                                    }
                                    if (item2->IsExchanging() || item2->IsEquipped()) // @fixme14
                                        return false;
                                    if (item2->GetAttributeSetIndex() == -1){
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼O¼ºA≫ º?°æCO ¼o ¾ø´A ¾ÆAIAUAO´I´U."));
                                        return false;
                                    }
                                    if (item2->GetAttributeCount() == 4){
                                        item2->RemoveAttributeAt(3);
                                        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;
                            case 71054:
                                {
                                    LPITEM item2;
                                    if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
                                        return false;
                                    if (ITEM_COSTUME == item2->GetType()){ // @fixme15
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼O¼ºA≫ º?°æCO ¼o ¾ø´A ¾ÆAIAUAO´I´U."));
                                        return false;
                                    }
                                    if (item2->IsExchanging() || item2->IsEquipped()) // @fixme14
                                        return false;
                                    if (item2->GetAttributeSetIndex() == -1){
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼O¼ºA≫ º?°æCO ¼o ¾ø´A ¾ÆAIAUAO´I´U."));
                                        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
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("NEW_ATTRIBUTE_MARBLE_ENOUGH_ATTR_COUNT"));
                                }
                                break;
#else
                            case 71052 :
                                {
                                    LPITEM item2;

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

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

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

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

#ifdef ENABLE_ITEM_RARE_ATTR_LEVEL_PCT
                                    if (item2->ChangeRareAttribute2())
#else
                                    if (item2->ChangeRareAttribute())
#endif
                                    {
                                        char buf[21];
                                        snprintf(buf, sizeof(buf), "%u", item2->GetID());
                                        LogManager::instance().ItemLog(this, item, "CHANGE_RARE_ATTR", buf);

                                        item->SetCount(item->GetCount() - 1);
                                    }
                                    else
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("변경 시킬 속성이 없습니다"));
                                    }
                                }
                                break;
#endif

eklediğim kısım 5 yapıp bir deneyim tekrar
 
Üst