Sosyal açıldı! Bir göz at → Hemen gir →

KAYNAK KOD PK BOTLARIN CANI AZALDIĞINDA KACIŞ REFLEKSI ICIN GEREKEN KOD YAPISI

KY Uzman Üye
KAYIT
2 Eki 2025
Mesajlar
143
Çözümler
1
Tepki puanı
105
Konum
Macedonia
Botmoveattack.cpp içerisinde

void CBot::RegionFindAttackProcess()
{
if (m_sMoveRegionAttackTime > UNIXTIME2)
return;

bu satırın hemen altına ekliyoruz

 
Moderatör tarafında düzenlendi:
KY Uzman Üye
Yardımsever
KAYIT
6 Ocak 2021
Mesajlar
334
Çözümler
3
Tepki puanı
166
Yaş
33
Web
ko-yardim.com
Teşekkürler
 
KY Uzman Üye
KAYIT
2 Eki 2025
Mesajlar
143
Çözümler
1
Tepki puanı
105
Konum
Macedonia
### DÜZELTME ###
float fEscapeSpeed = m_sSpeed * 2.0f; değerini 1.2 veya 1.5 yapın wallhack gibi koşmasın ortalıkta botlar :)
 
KY Üye
KAYIT
17 Eki 2025
Mesajlar
65
Tepki puanı
38
pk botunu aktif etme gm komutu nedir tam olarak ?
 
KY Uzman Üye
Yardımsever
KAYIT
24 Ağu 2022
Mesajlar
414
Çözümler
15
Tepki puanı
125
Eline sağlık. Teşekkürler.
 
KY Uzman Üye
KAYIT
2 Eki 2025
Mesajlar
143
Çözümler
1
Tepki puanı
105
Konum
Macedonia
pk botunu aktif etme gm komutu nedir tam olarak ?
+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
 
KY Uzman Üye
KAYIT
2 Eki 2025
Mesajlar
143
Çözümler
1
Tepki puanı
105
Konum
Macedonia
daha realistik bir kaçış hareketi için testler sonucunda düzenlenmiş hali bu şekildedir.

Kod:
// 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
 
KY Saygın Üye
Yardımsever
KAYIT
24 Ağu 2023
Mesajlar
1,298
Çözümler
16
Tepki puanı
432
Konum
Kayseri
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. ***
hsacsx 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
 
KY Uzman Üye
KAYIT
2 Eki 2025
Mesajlar
143
Çözümler
1
Tepki puanı
105
Konum
Macedonia
hsacsx 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
fonksiyon 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
 
KY Saygın Üye
Yardımsever
KAYIT
24 Ağu 2023
Mesajlar
1,298
Çözümler
16
Tepki puanı
432
Konum
Kayseri
fonksiyon 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
hocam INLINE ler bothandler.h içinde yazılı ama öyle satır yok bendeki ınlineler şu şekilde

INLINE bool isInPKZone()
{
return GetZoneID() == ZONE_ARDREAM
|| GetZoneID() == ZONE_RONARK_LAND
|| GetZoneID() == ZONE_RONARK_LAND_BASE;
}

INLINE uint8 GetStat(StatType type)
{
if (type >= StatType::STAT_COUNT)
return 0;

return m_bStats[(uint8)type];
}

INLINE _ITEM_DATA* GetKnightRoyaleItem(uint8 pos)
{
if (pos > INVENTORY_TOTAL)
return false;

ASSERT(pos < INVENTORY_TOTAL);
return &m_sItemKnightRoyalArray[pos];
}

INLINE int16 GetStatBonusTotal(StatType type)
{
return GetStatBuff(type)
+ GetRebStatBuff(type)
+ GetStatItemBonus(type)
+ GetStatAchieveBonus((UserAchieveStatTypes)type);
}

INLINE int8 GetStatBuff(StatType type)
{
ASSERT(type < STAT_COUNT);
return m_bStatBuffs[type];
}

INLINE uint8 GetRebStatBuff(StatType type)
{
ASSERT(type < STAT_COUNT);
return m_bRebStats[type];
}

INLINE int16 GetStatItemBonus(StatType type)
{
ASSERT(type < STAT_COUNT);
return m_sStatItemBonuses[type];
}

INLINE int16 GetStatAchieveBonus(UserAchieveStatTypes type)
{
ASSERT(type < ACHIEVE_STAT_COUNT);
return m_sStatAchieveBonuses[type];
}

INLINE int16 GetStatWithItemBonus(StatType type)
{
return GetStat(type) + GetStatItemBonus(type);
}

INLINE int16 GetStatTotal(StatType type)
{
return GetStat(type) + GetStatBonusTotal(type);
}

INLINE bool isMastered()
{
uint16 sClass = GetClassType();
return (sClass == ClassWarriorMaster
|| sClass == ClassRogueMaster
|| sClass == ClassMageMaster
|| sClass == ClassPriestMaster
|| sClass == ClassPortuKurianMaster);
}

INLINE bool isLockableScroll(uint8 buffType)
{
return (buffType == BUFF_TYPE_HP_MP
|| buffType == BUFF_TYPE_AC
|| buffType == BUFF_TYPE_FISHING
|| buffType == BUFF_TYPE_DAMAGE
|| buffType == BUFF_TYPE_SPEED
|| buffType == BUFF_TYPE_STATS
|| buffType == BUFF_TYPE_BATTLE_CRY);
}

INLINE void isReset(bool isOndeath)
{
if (isOndeath == false)
{
s_MoveProcess = myrand(1, 10);
m_MoveState = 1;
}

m_TargetChanged = /*m_sRegionAttack = */false;
m_sTargetID = -1;
m_oldx = m_oldz = m_oldy = float(0.0f);
};

_ITEM_TABLE GetItemPrototype(uint8 pos, _ITEM_DATA*& pItem);

INLINE _ITEM_TABLE GetItemPrototype(uint8 pos)
{
if (pos > INVENTORY_TOTAL)
return _ITEM_TABLE();

_ITEM_DATA* pItem;
if (pos < INVENTORY_TOTAL)
return GetItemPrototype(pos, pItem);

return _ITEM_TABLE();
}
 
KY Uzman Üye
KAYIT
2 Eki 2025
Mesajlar
143
Çözümler
1
Tepki puanı
105
Konum
Macedonia
RegionFindAttackProcess files içerisinde bunu arayıp hemen yanında cbot mu yazıyor ne yazıyor onu görebilirsek yönlendirebilirim
 
KY Üye
KAYIT
17 Eki 2025
Mesajlar
65
Tepki puanı
38
+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
çok tşk ederim işe yaradı peki maradonda pazar için nasıl bir kod lazım ?
 
Üst Alt