Çözüldü src taraflı başlangıçta özellik verme

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

Shooter

Üye
Üye
Mesaj
74
Çözümler
3
Beğeni
21
Puan
479
Ticaret Puanı
0
başlangıçta şebnemleri ejderha tanrılarını kritik ve deliciyi başlangıçta karaktere işli bir şekilde perma vermek istiyorum quest taraflı yapmak istemiyorum yardımcı olur musunuz şöylede olabilir başlangıçta yüzük gibi birşey veririz tıkladıklarında perma etkileri verir ama yine src taraflı istiyorum direk karaktere işli olursa öyle tarif ederseniz çok mutlu olurum
 
Çözüm
Bunun en için en mantıklı yöntem tek tık özellik veren itemler yapman, ki bu en hızlısı olur. Ama aç kapat sistemlerle de bu olayı çözebilirsin.
Tek tık için izliyeceğin yol: Vereceğin her özellik için yeni bir affect oluşturmalısın, sonra bunları char_affect.cpp deki IS_NO_CLEAR_ON_DEATH_AFFECT bu defineye dahil etmelisin ki öldüğünde affectler silinmesin, daha sonra char_item.cpp den ITEM_RAMADAN_CANDY i örnek alarak itemin kullandığında vereceği affecti ekleyebilirsin. char_item.cpp yi kısaca aşğıdaki gibi yapabilirsin.
Ben gerekli yerler için örnek gösterdim. 50183 ü kopyalayıp kullana bilirsin. Örnek kodda gördüğün gibi bir affect ile bir çok etki verebiliyorsun.


C++:
Genişlet Daralt Kopyala
                            case 99999://İtem kodun...
src tarafında yapacagın ıslemler :) patlama yapabılır bılgın olsun quest tarafında deneme yap bunu bır zat test deneme yaptım yaptıgımız zaman buglar olusuyor kod acıgını kapatmama rahmen 65-250 için konusuyorum ama dıgerlerıde olabılır ama boyle bısey yapabılırsın cırak sandıgını ıtem_gourp.txt uzerınde butun eklerı eklıyebılırsın ve gıren oyuncu tıklayarak acar baslangıc ıtemlerını alır ben o sekılde kullanıyorum banabug acıklı geldı yınede yanlıs yonlendırmek ıstemıyorum onuda test edıp bakacan
 

Dosya Eklentileri

  • 1111.webp
    1111.webp
    81,5 KB · Gösterim: 25
  • 2222.webp
    2222.webp
    118 KB · Gösterim: 25
Son düzenleme:
Bunun en için en mantıklı yöntem tek tık özellik veren itemler yapman, ki bu en hızlısı olur. Ama aç kapat sistemlerle de bu olayı çözebilirsin.
Tek tık için izliyeceğin yol: Vereceğin her özellik için yeni bir affect oluşturmalısın, sonra bunları char_affect.cpp deki IS_NO_CLEAR_ON_DEATH_AFFECT bu defineye dahil etmelisin ki öldüğünde affectler silinmesin, daha sonra char_item.cpp den ITEM_RAMADAN_CANDY i örnek alarak itemin kullandığında vereceği affecti ekleyebilirsin. char_item.cpp yi kısaca aşğıdaki gibi yapabilirsin.
Ben gerekli yerler için örnek gösterdim. 50183 ü kopyalayıp kullana bilirsin. Örnek kodda gördüğün gibi bir affect ile bir çok etki verebiliyorsun.


C++:
Genişlet Daralt Kopyala
                            case 99999://İtem kodun
                                {
                                    // @fixme147 BEGIN
                                    if (FindAffect(AFFECT_YENI_AFFECT_999))//yeni oluşturduğun affect // burada zaten varsa üstüne bindirmesin diye engel atılıyor
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이미 효과가 걸려 있습니다."));
                                        return false;
                                    }
                                    // @fixme147 END
                                    AddAffect(AFFECT_RAMADAN_ABILITY, POINT_MOV_SPEED, 10, AFF_MOV_SPEED_POTION, 60*60*24*500, 0, true, true);
                                    AddAffect(AFFECT_RAMADAN_ABILITY, POINT_MALL_ATTBONUS, 5, AFF_NONE, 60*60*24*500, 0, true, true);
                                    AddAffect(AFFECT_RAMADAN_ABILITY, POINT_MALL_EXPBONUS, 10, AFF_NONE, 60*60*24*500, 0, true, true);
                                    item->SetCount(item->GetCount() - 1);
                                }
                                break;
 
Çözüm
Bunun en için en mantıklı yöntem tek tık özellik veren itemler yapman, ki bu en hızlısı olur. Ama aç kapat sistemlerle de bu olayı çözebilirsin.
Tek tık için izliyeceğin yol: Vereceğin her özellik için yeni bir affect oluşturmalısın, sonra bunları char_affect.cpp deki IS_NO_CLEAR_ON_DEATH_AFFECT bu defineye dahil etmelisin ki öldüğünde affectler silinmesin, daha sonra char_item.cpp den ITEM_RAMADAN_CANDY i örnek alarak itemin kullandığında vereceği affecti ekleyebilirsin. char_item.cpp yi kısaca aşğıdaki gibi yapabilirsin.
Ben gerekli yerler için örnek gösterdim. 50183 ü kopyalayıp kullana bilirsin. Örnek kodda gördüğün gibi bir affect ile bir çok etki verebiliyorsun.


C++:
Genişlet Daralt Kopyala
                            case 99999://İtem kodun
                                {
                                    // @fixme147 BEGIN
                                    if (FindAffect(AFFECT_YENI_AFFECT_999))//yeni oluşturduğun affect // burada zaten varsa üstüne bindirmesin diye engel atılıyor
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이미 효과가 걸려 있습니다."));
                                        return false;
                                    }
                                    // @fixme147 END
                                    AddAffect(AFFECT_RAMADAN_ABILITY, POINT_MOV_SPEED, 10, AFF_MOV_SPEED_POTION, 60*60*24*500, 0, true, true);
                                    AddAffect(AFFECT_RAMADAN_ABILITY, POINT_MALL_ATTBONUS, 5, AFF_NONE, 60*60*24*500, 0, true, true);
                                    AddAffect(AFFECT_RAMADAN_ABILITY, POINT_MALL_EXPBONUS, 10, AFF_NONE, 60*60*24*500, 0, true, true);
                                    item->SetCount(item->GetCount() - 1);
                                }
                                break;
teşekkürler
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst