Krutzo 1
Krutzo
shrpnl 1
shrpnl
Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Cevaplandı Battlepass Affect Hakkında Soru

  • Konuyu başlatan Konuyu başlatan rido1997
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 7
  • Görüntüleme Görüntüleme 189

rido1997

Level 3
TM Üye
Katılım
7 Kas 2008
Konular
31
Mesajlar
169
Çözüm
4
Online süresi
22d 1h
Reaksiyon Skoru
102
Altın Konu
0
Başarım Puanı
129
Yaş
29
MmoLira
3,068
DevLira
6
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

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)
}
 
Son düzenleme:

En Çok Reaksiyon Alan Mesajlar

2 olarak ilerlemesin +2 kazanmasını istiyorsan bir sonraki ödül için +4 diyebilirsin matematiksel olarak mantık +2 üzerinde ilerlemiş olur. ama bi yandan düşününcede oyuncular + olarak eklendiğini biliyor olacak kafam karıştı :D
Çözüm
Ticaret - 0%
0   0   0
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 AutoGiveItem fonksiyonlarının bulunduğu yerde, int apply_type ile başlayan satırı aşağıdaki şekilde değiştirmelisiniz. @Tolstoy admin'ime yol gösterdiği için teşekkür ediyorum.

Bu değişiklik yapmadan önceki kod yapımdı, files'inizde kolay bulun diye mantığı anlatıyorum.
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)...
Kesinlikle öyle, bilgisi ve önerisi olan arkadaşlarımın yardımlarını rica ederim
sorunsuz sistem hangi filesta kuruluysa onla kodlarını karşılaştırmayı denedinmi bazen atladığın noktalar olabiliyor.
 
sorunsuz sistem hangi filesta kuruluysa onla kodlarını karşılaştırmayı denedinmi bazen atladığın noktalar olabiliyor.
Şöyle ki onlarda da sorunlu aslında, yani affect konusunda bir fix yapılması gerekiyor ama onlar da yapmamış, paylaşılan battlepass sistemleri genellikle bonus vermeyen türden sadece item veriyor, affect verdiği zaman bu şekilde bir sorun var çözülmesi lazı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 AutoGiveItem fonksiyonlarının bulunduğu yerde, int apply_type ile başlayan satırı aşağıdaki şekilde değiştirmelisiniz. @Tolstoy admin'ime yol gösterdiği için teşekkür ediyorum.

Bu değişiklik yapmadan önceki kod yapımdı, files'inizde kolay bulun diye mantığı anlatıyorum.
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);
}
 
Son düzenleme:
Çözüm

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst