Yardım Battlepass Affect Hakkında Sorun

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

cptridvann

Üye
Üye
Mesaj
51
Çözümler
2
Beğeni
11
Puan
424
Ticaret Puanı
0
Merhaba arkadaşlar,

Files'imde Alpar2 Battlepass'ın affect verecek şekilde düzenlenmiş hali var, fakat iki tane sorun var. Şöyle ki, affect'leri üst üste vermiyor, bir affect'i verince diğerini siliyor. battlepass_config.txt dosyamı aşağıda paylaştım, şimdi diyelim ki 8003'ü kestiğinde +%2 canavarlara karşı güç bonusu vermesini istiyorum, bunda sorun yok veriyor, fakat 2.görevi de yaptığında +%2 daha vermesi gerekirken, + şeklinde vermek yerine eskisini silerek veriyor yani yine %2 sabit kalıyor. Yani görevi bitirdikçe mevcutta vermiş olduğu Canavarlara karşı güç bonusunun üzerine eklemesi lazımken, sistemin şu anki hali sadece geçmiş bonusları siliyor ve ilgili satırda bonus % kaç olarak ayarlandıysa direkt ona çeviriyor.

İkinci sorunum da, ilgili görev için affect vermek istemezsem, ilgili satırdaki "545 63 2" kısımlarını siliyorum mesela, ama o zaman görev bug'a girmiş gözüküyor ve direkt bitti olarak gözüküyor, her görevde affect vermek istemiyorum, sadece item ödülü vermek istersem o zaman ne yapmalıyım? ilgili satırları silmek yerine 0 0 0 şeklinde ayarlarsam affect kısımlarını, bu gereksiz bir yük olmaz mı sunucuda ve herhangi bir hataya sebep olmaz mı? Bir de bu affect kodlarını nereden bulabiliriz arkadaşlar? yani 545 ve 63 ne anlama geliyor mesela, 545 mi Canavarlara karşı güç 63 mü? bunları da öğrenmeyi çok isterim.

Şimdiden yardımcı olacak üstadlarıma teşekkür ederim.

Group Mission 1
{
DO_MISSION 2 8003 1
REWARDS_AND_NAME 71085 5 71044 2 71045 2 545 63 2 Canavarlara#Karsi#Guc#+%2 Savas#Metini#(KES)
}

Group Mission 2
{
DO_MISSION 2 8004 1
REWARDS_AND_NAME 71085 5 71044 2 71045 2 545 63 2 Canavarlara#Karsi#Guc#+%2 Hirs#Metini#(KES)
}

Group Mission 3
{
DO_MISSION 2 8005 1
REWARDS_AND_NAME 71085 5 71044 2 71045 2 545 63 2 Canavarlara#Karsi#Guc#+%2 Siyah#Metini#(KES)
}
 
Çözüm
Arkadaşlar sorunu çözdüm, eğer Battlepass'ınız mevcut bonusu silip yeni bonusu replace ederek veriyorsa, + şeklinde vermesi için aşağıdaki battlepass sisteminizdeki ilgili satırları bulup, aşağıdaki şekilde değiştirmelisiniz.

Bu değişiklik yapmadan önceki kod yapımdı

if (missions_bp[index].count == v_counts[index].count)
{
v_counts[index].status = v_counts[index].status + 1;
ChatPacket(CHAT_TYPE_INFO, "Tebrikler, basariyla savas bileti gorevini tamamladiniz!");
AutoGiveItem(rewards_bp[index].vnum1,rewards_bp[index].count1);
AutoGiveItem(rewards_bp[index].vnum2,rewards_bp[index].count2);
AutoGiveItem(rewards_bp[index].vnum3,rewards_bp[index].count3);

int apply_type = aApplyInfo[rewards_bp[index].efsuntype].bPointType;
int apply_value = rewards_bp[index].efsunvalue;
int...
silerek yüklemesi daha güzel aslında 2+2 vereceğinize ikincide 4 yazın
Öncelikle teşekkürler, o aklıma geldi fakat bu sefer de şöyle bir sorun/bug oluşuyor: Diyelim 5.görevde 30 bonus verdirdim, oyuncu ilk görevleri yapmaz ve direkt 5.görevi yapıp 30 bonusu alırsa ve sonra gidip ilk görevi yaparsa bu sefer 30 bonus silinir ve ilk görevin verdiği 5 bonusu alır, 5.görevin bonusu gitmiş olur silindiği için, yani o şekilde olduğu zaman mantıken bug oluşuyor.
 
Son düzenleme:
Öncelikle teşekkürler, o aklıma geldi fakat bu sefer de şöyle bir sorun/bug oluşuyor: Diyelim 5.görevde 30 bonus verdirdim, oyuncu ilk görevleri yapmaz ve direkt 5.görevi yapıp 30 bonusu alırsa ve sonra gidip ilk görevi yaparsa bu sefer 30 bonus silinir ve ilk görevin verdiği 5 bonusu alır, 5.görevin bonusu gitmiş olur silindiği için, yani o şekilde olduğu zaman mantıken bug oluşuyor.
böyle bir engelleme koyup istenilen görev yapılmaması lazım tuhaf kodlanmış
 
Arkadaşlar sorunu çözdüm, eğer Battlepass'ınız mevcut bonusu silip yeni bonusu replace ederek veriyorsa, + şeklinde vermesi için aşağıdaki battlepass sisteminizdeki ilgili satırları bulup, aşağıdaki şekilde değiştirmelisiniz.

Bu değişiklik yapmadan önceki kod yapımdı

if (missions_bp[index].count == v_counts[index].count)
{
v_counts[index].status = v_counts[index].status + 1;
ChatPacket(CHAT_TYPE_INFO, "Tebrikler, basariyla savas bileti gorevini tamamladiniz!");
AutoGiveItem(rewards_bp[index].vnum1,rewards_bp[index].count1);
AutoGiveItem(rewards_bp[index].vnum2,rewards_bp[index].count2);
AutoGiveItem(rewards_bp[index].vnum3,rewards_bp[index].count3);

int apply_type = aApplyInfo[rewards_bp[index].efsuntype].bPointType;
int apply_value = rewards_bp[index].efsunvalue;
int affect_type = rewards_bp[index].affect;

AddAffect(affect_type, apply_type, apply_value, 0, 60*60*24*365, 0, true, true);
}

Bu da benim yaptığım değişiklik.

if (missions_bp[index].count == v_counts[index].count)
{
v_counts[index].status = v_counts[index].status + 1;
ChatPacket(CHAT_TYPE_INFO, "Tebrikler, basariyla savas bileti gorevini tamamladiniz!");
AutoGiveItem(rewards_bp[index].vnum1,rewards_bp[index].count1);
AutoGiveItem(rewards_bp[index].vnum2,rewards_bp[index].count2);
AutoGiveItem(rewards_bp[index].vnum3,rewards_bp[index].count3);

int apply_type = aApplyInfo[rewards_bp[index].efsuntype].bPointType;
int apply_value = rewards_bp[index].efsunvalue;
int affect_type = rewards_bp[index].affect;

CAffect* currentAffect = FindAffect(affect_type, apply_type); // Mevcut affect'i bul

if (currentAffect)
{
apply_value += currentAffect->lApplyValue; // Mevcut değere yeni değeri ekle
}
AddAffect(affect_type, apply_type, apply_value, 0, 60*60*24*365, 0, true, true);
}
 
Çözüm
Geri
Üst