YARDIM ISDIRAP SRC Bot Atak Sorunu

byfantastiq

KY Kıdemli Üye
Katılım
3 Şub 2024
Mesajlar
187
Çözümler
1
Tepkime puanı
11
Puanları
18
Merhabalar, ISDIRAP Sourceye CZ Bot eklemeye çalışıyorum da, Botları Ekledim. Cz de atıp geziyorlar ancak atak yapmıyorlar ne ben atak yapabiliyorum ne de birbirlerine atak yapıyorlar sadece geziyorlar kendi kendine. Atak bölümünü nereden kontrol ediyoruz yol gösterecek var mı acaba ?
 

Aakinci

Co-Admin
Premium Üye
KY Saygın Üye
KY YardımSever
KY Kod Editörü
Katılım
5 Tem 2021
Mesajlar
524
Çözümler
84
Tepkime puanı
250
Puanları
93
Yaş
32
Hocam bot timer ya da timer_bot mu bir fonksiyon var, botlar ile ilgili hareket atak, skill vs gibi şeyleri zamanlayip çalıştıran. Serverstartstophandler.cpp içinde sürekli çalışmakta olan fonksiyon. Adını tam olarak hatırlamıyorum şuan. O fonksiyonun başına breakpoint koyup dosyaları debug olarak çalıştırın. Sonrasinda cz ye 1 pk bot atın. Bu sekilde bot atak bölümüne dosyalar gidip region kontrolü yapıyor mu, etrafı kontrol ediyor mu vs diye bir bakın. Burada sorun yok ise sonrasinda siz bu bota r damage atmaya çalışıp CUser::Attack( fonksiyonunu kontrol edin. Sonra düz skill atmaya çalışın getdamage fonksiyonu na geliyor mu sistem bir bakın, sonra magic skill atip getmagicdamage fonksiyonuna geliyor mu sistem bir bakin vs. Gibi birçok yeri kontrol etmeniz gerekiyor.
 

byfantastiq

KY Kıdemli Üye
Katılım
3 Şub 2024
Mesajlar
187
Çözümler
1
Tepkime puanı
11
Puanları
18
Hocam bot timer ya da timer_bot mu bir fonksiyon var, botlar ile ilgili hareket atak, skill vs gibi şeyleri zamanlayip çalıştıran. Serverstartstophandler.cpp içinde sürekli çalışmakta olan fonksiyon. Adını tam olarak hatırlamıyorum şuan. O fonksiyonun başına breakpoint koyup dosyaları debug olarak çalıştırın. Sonrasinda cz ye 1 pk bot atın. Bu sekilde bot atak bölümüne dosyalar gidip region kontrolü yapıyor mu, etrafı kontrol ediyor mu vs diye bir bakın. Burada sorun yok ise sonrasinda siz bu bota r damage atmaya çalışıp CUser::Attack( fonksiyonunu kontrol edin. Sonra düz skill atmaya çalışın getdamage fonksiyonu na geliyor mu sistem bir bakın, sonra magic skill atip getmagicdamage fonksiyonuna geliyor mu sistem bir bakin vs. Gibi birçok yeri kontrol etmeniz gerekiyor.
hemen deniyorum. breakpoint olarak printf("Timer_botmoving öncesi\n"); gibi kullansam sonrası daha sonra diğer fonksiyonlar gelene kadar bunları hep deneyerek ilerleyeceğim gibi uygunmu sence patron ?
 

Aakinci

Co-Admin
Premium Üye
KY Saygın Üye
KY YardımSever
KY Kod Editörü
Katılım
5 Tem 2021
Mesajlar
524
Çözümler
84
Tepkime puanı
250
Puanları
93
Yaş
32
hemen deniyorum. breakpoint olarak printf("Timer_botmoving öncesi\n"); gibi kullansam sonrası daha sonra diğer fonksiyonlar gelene kadar bunları hep deneyerek ilerleyeceğim gibi uygunmu sence patron ?
Hocam bunu koyarsanız sürekli olarak ekrana bu yazı gelir, kodun nerelere ulaştığını, nerede true false döndürdüğünü vs bulamazsınız. Youtubeye visual stüdyo breakpoint kullanimi yazın, detaylı videolar çıkacaktır.
 

byfantastiq

KY Kıdemli Üye
Katılım
3 Şub 2024
Mesajlar
187
Çözümler
1
Tepkime puanı
11
Puanları
18
Hocam bunu koyarsanız sürekli olarak ekrana bu yazı gelir, kodun nerelere ulaştığını, nerede true false döndürdüğünü vs bulamazsınız. Youtubeye visual stüdyo breakpoint kullanimi yazın, detaylı videolar çıkacaktır.
patron sayende breakpoint öğrendim ilk yorumundan beri derslerini aldım şu an deneme yanılma yaparak deniyorum. botlara tıklayınca hangi alan çalışıyor oraya kadar geldim ancak atak bölümünü bulamadım CUser::GetDamage içerisinde bot ile ilgili bir bölüm yok bu bölüm sadece user monsterlara vurunca devreye giriyor. forumda bulunan bot gameserver ile kıyaslama yapmaya çalışıyorum ancak malesef bi arpa boyu ilerleyemedim :D sayende ama daha kolay hata bulma yolu öğrendim teşekkür ederim. CBot içinde atak bölümünde ise oraya kadar hiçbir şekilde gitmiyor botlar peşime takılıyor benim yanıma kadar gelip dolanıyor ancak bana atak yapmıyor. yani etrafı kontrol ediyor ancak atak yok bende vuramıyorum onlarda bana vuramıyor
 

byfantastiq

KY Kıdemli Üye
Katılım
3 Şub 2024
Mesajlar
187
Çözümler
1
Tepkime puanı
11
Puanları
18
aasadasad.png

Son olarak buraya kadar gelebildim. bu konuda bi fikri olan var mı acaba ? Debug modunda deneme yapıyorum. oyuna girince direk bu hatayı verip kesme uyguluyor.İşlem sırasını kontrol ediyorum ancak bi sonuca ulaşamadım. konu hakkında desteğinizi rica ederim.
 

Aakinci

Co-Admin
Premium Üye
KY Saygın Üye
KY YardımSever
KY Kod Editörü
Katılım
5 Tem 2021
Mesajlar
524
Çözümler
84
Tepkime puanı
250
Puanları
93
Yaş
32
Hocam attack fonksiyonunun içine id değeri 5000 den büyük 1000 den küçükse damage = 500; diye bir bölüm ekleyip dener misiniz botlara r atinca 500 vuracak mı diye. Pc de olmadığım için tam kod yazamıyorum. Siz dediğim koşulu uygun bir yere ekleyip deneyin.
 

lulu0147

KY Kıdemli Üye
Katılım
4 Ağu 2023
Mesajlar
147
Tepkime puanı
7
Puanları
18

byfantastiq

KY Kıdemli Üye
Katılım
3 Şub 2024
Mesajlar
187
Çözümler
1
Tepkime puanı
11
Puanları
18
Hocam attack fonksiyonunun içine id değeri 5000 den büyük 1000 den küçükse damage = 500; diye bir bölüm ekleyip dener misiniz botlara r atinca 500 vuracak mı diye. Pc de olmadığım için tam kod yazamıyorum. Siz dediğim koşulu uygun bir yere ekleyip deneyin.
usta bunu deneyemiyorum şu an çünkü bu alanlara bot komutlarını tanımlamama rağmen yukarıdaki fotoğrafta görüldüğü gibi return GetProto()->m_tNpcType; bu bölüm type değerini okuyamıyor düzgün hata veriyor direk orda takılı kaldım bütün gün
 

Aakinci

Co-Admin
Premium Üye
KY Saygın Üye
KY YardımSever
KY Kod Editörü
Katılım
5 Tem 2021
Mesajlar
524
Çözümler
84
Tepkime puanı
250
Puanları
93
Yaş
32
usta bunu deneyemiyorum şu an çünkü bu alanlara bot komutlarını tanımlamama rağmen yukarıdaki fotoğrafta görüldüğü gibi return GetProto()->m_tNpcType; bu bölüm type değerini okuyamıyor düzgün hata veriyor direk orda takılı kaldım bütün gün
Bu bölümün başına da id değeri> Npc_band kontrolünü koyun. Bu sayede npc olmayanlarda buraya takılmaz hocam.
 

byfantastiq

KY Kıdemli Üye
Katılım
3 Şub 2024
Mesajlar
187
Çözümler
1
Tepkime puanı
11
Puanları
18
Bu bölümün başına da id değeri> Npc_band kontrolünü koyun. Bu sayede npc olmayanlarda buraya takılmaz hocam.
bunu bi örnek ile gösterebilirmisin hocam rica etsem örneğin: şu kod benim hata aldığım alan

INLINE CNpcTable* GetProto() { return m_proto; }
INLINE uint8 GetType()
{
if (GetProto() == nullptr)
return 0;

return GetProto()->m_tNpcType;
}

INLINE int8 GetByGruop()
{
if (GetProto() == nullptr)
return -1;

return GetProto()->m_byGroup;
};

ben burada m_tNpcType; kısmında özel durum oluşuyor.
 
Reklam