Reklam
tşkBotmoveattack.cpp içerisinde
void CBot::RegionFindAttackProcess()
{
if (m_sMoveRegionAttackTime > UNIXTIME2)
return;
bu satırın hemen altına ekliyoruz
*** Gizli metin: alıntı yapılamaz. ***
teşekkürlerBotmoveattack.cpp içerisinde
void CBot::RegionFindAttackProcess()
{
if (m_sMoveRegionAttackTime > UNIXTIME2)
return;
bu satırın hemen altına ekliyoruz
*** Gizli metin: alıntı yapılamaz. ***
+pkbotspawn 1 50 80 1 1pk botunu aktif etme gm komutu nedir tam olarak ?
// KAÇIŞ REFLEKSİ BAŞLANGICI
const float CRITICAL_HP_PERCENTAGE = 30.0f;
if (GetHPRatio() * 100.0f < CRITICAL_HP_PERCENTAGE)
{
// Can kritik seviyenin altında, kaçış mantığı devreye girer.
// Saldırmayı bırakmadan önce hedefi alalım.
Unit* pLastTarget = g_pMain->GetUnitPtr(m_sTargetID, GetZoneID());
m_sTargetID = -1; // Saldırmayı bırak
__Vector3 vBot(GetX(), GetY(), GetZ());
__Vector3 vEscapeDirection;
if (pLastTarget != nullptr)
{
__Vector3 vTarget(pLastTarget->GetX(), pLastTarget->GetY(), pLastTarget->GetZ());
// Saldıran düşmandan uzaklaşma yönü
vEscapeDirection = vBot - vTarget;
}
else
{
// Hedef yoksa rastgele bir yöne kaç
vEscapeDirection.Set((float)(myrand(0, 2000) - 1000.0f), 0.0f, (float)(myrand(0, 2000) - 1000.0f));
}
vEscapeDirection.Normalize();
// Hız ayarı: Normal hızının %10 fazlası
float fEscapeSpeed = m_sSpeed * 1.1f;
const float MIN_ESCAPE_SPEED = 10.0f;
if (fEscapeSpeed < MIN_ESCAPE_SPEED) {
fEscapeSpeed = MIN_ESCAPE_SPEED;
}
// *** HAREKET MANTIK DEĞİŞİKLİĞİ BAŞLANGICI ***
// Kaçış Mesafesi: Botun yürümesini istediğimiz mesafe (Örn: 10 birim ileri)
// 10.0f yerine daha uzun bir mesafe deneyelim, örneğin 50 birim.
// Bu değer, botun tek bir döngüde ne kadar uzağa yürümeye çalışacağını belirler.
const float ESCAPE_DISTANCE = 50.0f;
// Yeni hedef koordinatlarını hesapla
__Vector3 vMove = vEscapeDirection * ESCAPE_DISTANCE;
__Vector3 vNewPosition = vBot + vMove;
// Botu anında ışınlamak yerine, yeni noktaya doğru YÜRÜT!
// WalkCordinat(float x, float y, float z, uint16 Delay = 0, bool isAttack = false);
// Delay=0 ve isAttack=false kullanıyoruz. Bot koşarak uzaklaşsın.
WalkCordinat(vNewPosition.x, vNewPosition.y, vNewPosition.z, 0, false);
// Bu hareketin tamamlanması için gereken süreyi tahmin edelim.
// Zaman = Mesafe / Hız. Basitçe sabit bir süre belirleyebiliriz.
const uint16 ESCAPE_DURATION_MS = 1500; // 1.5 saniye boyunca kaçmasını bekle
m_sMoveRegionAttackTime = ULONGLONG(UNIXTIME2 + ESCAPE_DURATION_MS);
// *** HAREKET MANTIK DEĞİŞİKLİĞİ SONU ***
return;
}
// KAÇIŞ REFLEKSİ SONU
hsacsx bot sistemine uymuyor kodlar cbot.h yok bizdeBotmoveattack.cpp içerisinde
void CBot::RegionFindAttackProcess()
{
if (m_sMoveRegionAttackTime > UNIXTIME2)
return;
bu satırın hemen altına ekliyoruz
*** Gizli metin: alıntı yapılamaz. ***
fonksiyon olarak tanımlanması gerekiyor CBOT.h yok ise farklı şekilde yazılmış olabilir kontrol edinhsacsx bot sistemine uymuyor kodlar cbot.h yok bizde
INLINE int16 GetSlaveGetID() { return m_bSlaveUserID; } kodu yok bizde ilk kodun GetHPRatio tanımlı değil hatası veriyor
hocam INLINE ler bothandler.h içinde yazılı ama öyle satır yok bendeki ınlineler şu şekildefonksiyon olarak tanımlanması gerekiyor CBOT.h yok ise farklı şekilde yazılmış olabilir kontrol edin
INLINE bool isInGame() { return GetState() == GameState::GAME_STATE_INGAME; }
INLINE içeren satırların olduğu bir bot.h sayfası olması gerek. HSXACS kendi adını yazmışta olabilir
Botmoveattack.cpp içerisinde
void CBot::RegionFindAttackProcess()
{
if (m_sMoveRegionAttackTime > UNIXTIME2)
return;
bu satırın hemen altına ekliyoruz
*** Gizli metin: alıntı yapılamaz. ***
yok hocam bir ikisine denedim olmadı yarın bakarım artıkhsacx çözüm buldunmu @delitay
çok tşk ederim işe yaradı peki maradonda pazar için nasıl bir kod lazım ?+pkbotspawn 1 50 80 1 1
yanındaki rakamların açılımı şu şekilde
1 - adet
50 dakika
80 minimum level
1 karus 2 olursa human olur
1 warrior 2 olursa asas olur 3 olursa mage olur 4 olursa priest