[Tutorial] Assault Cube Simple External Cheat | (ESP & Aimbot &God Mode%Infinate Ammo)

Onaylı Üye
Katılım
30 May 2026
Mesajlar
75
Tepki puanı
2
Yaş
19
Sosyal
Herkese selamlar,

Bugün, tersine mühendisliğe ilgi duyan, bu alanda kendini geliştirmek isteyen topluluk üyeleri için kapsamlı bir eğitim içeriği hazırladım.

Tersine mühendisliğin temel mantığı kavramak adına adeta bir simülatör görevi gören Assault Cube oyunu üzerinde, geliştirdiğim External Projeyi ve çalışma mantığını sizlerle paylaşıyorum. Projenin asıl amacı, popüler hile mekaniklerinin arka planında dönen yazılımsal ve matematiksel süreçlerin mantığını göstermektir.

NOT: Eğitimin faydalı olması için paylaşacağım kodu copy paste yapmak yerine mantığını anlayıp kendiniz sıfırdan yapmaya çalışın.

İlk olarak Cheat engine üzerinden offsetleri bulmalısınız.
Konunun teknik kalitesini ve eğitici değerini zirveye çıkaracak kısım tam olarak burası. Cheat Engine kullanarak bu offsetlerin nasıl bulunacağını adım adım ve foruma yakışır bir kılavuz (rehber) formatında metne ekledim.
Metnin "İlk olarak Cheat Engine üzerinden offsetleri bulmalısınız." dediğin cümlesinden sonrasını şu şekilde devam ettirebilirsin:
Cheat Engine üzerinden bu verileri bulabilmek için temel arama mantıklarını bilmemiz gerekiyor. Adım adım gidelim:

1. Can (Health) ve Mermi (Ammo) Offsetlerini Bulmak​

Bu değerler ekranda direkt göründüğü için bulması en kolay olanlardır:
  1. Cheat Engine'i açın ve sol üstteki bilgisayar simgesine tıklayarak oyun prosesini (ac_client.exe) seçin.
  2. Oyundaki mevcut can değerinizi (örneğin 100) Cheat Engine'de Value kısmına yazıp First Scan yapın.
  3. Oyuna dönün, canınızın azalmasını sağlayın (örneğin bir robota vurdurun veya bombayla kendinizi hafifçe hasarlayın).
  4. Yeni can değerinizi (örneğin 82) yazıp Next Scan deyin. Sol tarafta tek veya birkaç adres kalana kadar bu işlemi tekrarlayın.
  5. Kalan adresi aşağıya indirin ve sağ tıklayıp "Find out what writes to this address" seçeneğini seçin. Oyunda tekrar hasar aldığınızda pencereye bir kod satırı düşecektir (Örn: mov [eax+0xF8], ecx). Burada köşeli parantez içindeki 0xF8 sizin Health Offset değerinizdir. eax ise o anki oyuncu adresinizdir.

2. Yerel Oyuncu (Local Player Base) Adresini Bulmak​

Yukarıdaki adımda can adresinizi bulduktan sonra, bu adresin kalıcı (yeşil) olan ana pointer'ını bulmamız gerekir:
  1. Bulduğunuz can adresine sağ tıklayıp "Find out what accesses this address" deyin.
  2. Oyunda hareket edin veya ateş edin. Listelenen kod satırlarından birine çift tıklayarak detayını açın.
  3. Detay penceresinde "The registers contains the pointer to the pointer you are looking for" yazar. Oradaki adresi (Örn: 0050F4F4 gibi bir hex değeri) kopyalayın.
  4. Cheat Engine ana ekranına dönüp Hex kutucuğunu işaretleyin ve kopyaladığınız adresi yapıştırıp New Scan -> First Scan yapın.
  5. Sol tarafta yeşil renkli bir adres göreceksiniz (Örn: ac_client.exe+0x10F4F4). İşte bu yeşil adres sizin Local Player Base Pointer'ınızdır. Bunu koda 0x10F4F4 olarak ekleyeceğiz.

3. Düşman Listesi (Entity List) ve Koordinatları Bulmak​

Burada mantık, oyuncu sayısı değiştikçe bellekte neyin değiştiğini izlemektir:
  1. Oyunda tek başınıza boş bir harita açın. Oyuncu koordinatları sürekli değiştiği için X, Y, Z aramasını "Unknown initial value" ve Value Type: Float olarak başlatın.
  2. İleri yürüdükçe "Increased value" (artan değer), geri yürüdükçe "Decreased value" aramaları yaparak kendi koordinat offsetlerinizi bulun.
  3. Kendi koordinat adresinizi bulduğunuzda, bu adresin "neleri etkilediğini" (Find out what accesses...) inceleyin.
  4. Assault Cube'da düşmanlar bir dizi (array) halinde tutulur. Kendi oyuncu yapınız ile botların yapıları aynıdır. Bellek haritasını (Memory View -> Tools -> Dissect Data/Structures) açıp yerel oyuncu adresinizi ve bir botun adresini yan yana koyduğunuzda, aralarındaki mesafenin (genellikle 0x4 veya 0x10 katları) size Entity List yapısını ve bot sayısını tutan pointer'ı verecektir.

🛠️ Projenin Çalışma Mimarisi ve Mantığı​

1. Proses Bağlantısı ve Bellek Yönetimi (Memory Management)
Projemiz External (Dışarıdan) çalıştığı için öncelikle FindWindow veya CreateToolhelp32Snapshot ile Assault Cube prosesini (ac_client.exe) buluyoruz. Ardından OpenProcess fonksiyonuna PROCESS_ALL_ACCESS yetkisi vererek oyunun hafıza odalarına giriş biletimizi alıyoruz. Bellekten veri okurken ReadProcessMemory (RPM), veri yazarken ise WriteProcessMemory (WPM) fonksiyonlarını kullanıyoruz.
2. Sınırsız Can (God Mode) & Sınırsız Mermi (Infinite Ammo)
Bu iki özelliğin mantığı tamamen "yazma" (Write) işlemine dayanır. Local Player adresimizin üzerine can ve mermi offsetlerini ekleyerek ulaştığımız bellek adreslerine, bir sonsuz döngü (veya thread) içerisinde sürekli olarak maksimum değerleri (örneğin can için 100) yazıyoruz. Oyun bu değerleri düşürmeye çalışsa da bizim programımız saliseler içinde değeri tekrar yükselttiği için ölümsüzlük ve sınırsız mermi sağlanmış oluyor.
3. WorldToScreen (W2S) ve ESP Mantığı
Düşmanların etrafına kutu çizebilmek için oyunun 3 boyutlu dünyasındaki koordinatları (Vector3), kendi monitörümüzdeki 2 boyutlu piksel koordinatlarına (Vector2) çevirmemiz gerekir. İşte bu noktada devreye View Matrix giriyor. Oyundan çektiğimiz matrix verisi ile düşmanın X, Y, Z koordinatlarını belirli matris çarpımlarına sokarak oyuncunun ekranımızda hangi pikselde durduğunu hesaplıyoruz. Eğer oyuncu görüş açımızın içerisindeyse, GDI (Graphics Device Interface) kullanarak o piksellere şeffaf bir kare (ESP Box) çizdiriyoruz.
4. Vektörel Aimbot Matematiği
Aimbot ise ESP'nin tam tersi bir mantıkla çalışır. Kendi koordinatlarımız ile hedef seçtiğimiz düşmanın koordinatları arasındaki farkı alarak 3 boyutlu bir mesafe vektörü elde ederiz. Ardından temel Trigonometri (Ark tanjant - atan2) fonksiyonlarını kullanarak, aramızdaki bu mesafeyi kapatacak olan yatay (Yaw) ve dikey (Pitch) bakış açılarını hesaplarız. Bulduğumuz bu yeni açıları Local Player + View Angles adresine WPM ile yazdığımızda, faremiz anında düşmanın kafasına kilitlenir.

💻 Kaynak Kodları (Source Code)​

Aşağıda paylaştığım kodları dikkatlice inceleyin. Projeyi derlemeden önce Cheat Engine ile doğruladığınız güncel offsetleri kodun ilgili kısımlara girmeyi unutmayın.
C++:
#include <Windows.h>
#include <iostream>
#include <tlhelp32.h>
#include <cmath>
#include <cfloat>

using namespace std;

// Yapılar
struct Vector3 { float x, y, z; };
struct Vector2 { float x, y; };

// Genel Değişkenler
HDC hdc;
HPEN hBoxPen, hLinePen, hHealthPen;
float fov = 150.0f;

// Yardımcı Fonksiyonlar
void renkli_yaz(std::string metin, std::string renk_kodu) {
    std::cout << "\033[" << renk_kodu << "m" << metin << "\033[0m" << std::endl;
}

uintptr_t GetModuleBaseAddress(DWORD procId, const char* modName) {
    uintptr_t modBaseAddr = 0;
    HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, procId);
    if (hSnap != INVALID_HANDLE_VALUE) {
        MODULEENTRY32 modEntry;
        modEntry.dwSize = sizeof(modEntry);
        if (Module32First(hSnap, &modEntry)) {
            do {
                if (lstrcmpiA(modEntry.szModule, modName) == 0) {
                    modBaseAddr = (uintptr_t)modEntry.modBaseAddr;
                    break;
                }
            } while (Module32Next(hSnap, &modEntry));
        }
    }
    CloseHandle(hSnap);
    return modBaseAddr;
}

bool WorldToScreen(Vector3 pos, Vector2& screen, float matrix[], int width, int height) {
    float w = pos.x * matrix[3] + pos.y * matrix[7] + pos.z * matrix[11] + matrix[15];
    if (w < 0.1f) return false;
    float x = (pos.x * matrix[0] + pos.y * matrix[4] + pos.z * matrix[8] + matrix[12]) / w;
    float y = (pos.x * matrix[1] + pos.y * matrix[5] + pos.z * matrix[9] + matrix[13]) / w;
    screen.x = (width / 2.0f * x) + (x + width / 2.0f);
    screen.y = -(height / 2.0f * y) + (y + height / 2.0f);
    return true;
}

void AimAt(HANDLE hProcess, uintptr_t localPlayer, Vector3 localPos, Vector3 enemyPos) {
    float dX = enemyPos.x - localPos.x;
    float dY = enemyPos.y - localPos.y;
    float dZ = enemyPos.z - localPos.z;
    float dist = sqrt(dX * dX + dY * dY + dZ * dZ);
    float yaw = atan2(dY, dX) * (180.0f / 3.14159265f) + 90.0f;
    float pitch = asin(dZ / dist) * (180.0f / 3.14159265f);
    WriteProcessMemory(hProcess, (LPVOID)(localPlayer + 0x34), &yaw, sizeof(float), NULL);
    WriteProcessMemory(hProcess, (LPVOID)(localPlayer + 0x38), &pitch, sizeof(float), NULL);
}

void DrawLine(int x1, int y1, int x2, int y2, HPEN pen) {
    SelectObject(hdc, pen);
    MoveToEx(hdc, x1, y1, NULL);
    LineTo(hdc, x2, y2);
}

int main() {
    HWND hwnd = FindWindowA(NULL, "AssaultCube");
    if (hwnd == NULL) {
        renkli_yaz("GAME NOT FOUND! PLEASE OPEN THE GAME...", "31");
        Sleep(2500);
        return 0;
    }

    DWORD procId;
    GetWindowThreadProcessId(hwnd, &procId);
    HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, procId);

    if (hProcess == NULL) {
        renkli_yaz("Run the Cheat as administrator.", "31");
        Sleep(2500);
        return 0;
    }

    uintptr_t baseAddress = GetModuleBaseAddress(procId, "ac_client.exe");
    if (baseAddress == 0) {
        CloseHandle(hProcess);
        return 0;
    }

    // Ofsetler
    uintptr_t localPlayerPtr = baseAddress + 0x17E0A8;
    uintptr_t entityListPtr = baseAddress + 0x18AC04;
    uintptr_t viewMatrixPtr = baseAddress + 0x17DFD0;
    uintptr_t playerCountPtr = baseAddress + 0x18AC0C;

    // GDI Kurulum
    hdc = GetDC(hwnd);
    hBoxPen = CreatePen(PS_SOLID, 2, RGB(255, 0, 0));
    hLinePen = CreatePen(PS_SOLID, 1, RGB(255, 255, 255));
    hHealthPen = CreatePen(PS_SOLID, 3, RGB(0, 255, 0));

    // Trainer Hazırlığı
    DWORD oldProtect;
    uintptr_t ammoDecreaseAddress = baseAddress + 0xC73EF;
    BYTE ammoNop[2] = { 0x90, 0x90 };
    VirtualProtectEx(hProcess, (LPVOID)ammoDecreaseAddress, sizeof(ammoNop), PAGE_EXECUTE_READWRITE, &oldProtect);
    WriteProcessMemory(hProcess, (LPVOID)ammoDecreaseAddress, &ammoNop, sizeof(ammoNop), nullptr);
    VirtualProtectEx(hProcess, (LPVOID)ammoDecreaseAddress, sizeof(ammoNop), oldProtect, &oldProtect);

    renkli_yaz("[SUCCESESFULLY] CHEAT ENABLE!", "32");
    std::cout << "Press [END] to close" << std::endl;

    while (true) {
        if (GetAsyncKeyState(VK_END) & 0x8000) break;

        if (GetAsyncKeyState(0x46)) { // 'F' tuşu FOV değiştirme
            std::cout << "New FOV: ";
            std::cin >> fov;
        }

        RECT rect;
        GetClientRect(hwnd, &rect);
        int centerX = rect.right / 2;
        int centerY = rect.bottom / 2;

        // Çizimler
        Arc(hdc, centerX - (int)fov, centerY - (int)fov, centerX + (int)fov, centerY + (int)fov, 0, 0, 0, 0);
        DrawLine(centerX - 8, centerY, centerX + 8, centerY, hLinePen);
        DrawLine(centerX, centerY - 8, centerX, centerY + 8, hLinePen);

        uintptr_t lp = 0;
        ReadProcessMemory(hProcess, (LPCVOID)localPlayerPtr, &lp, sizeof(lp), NULL);

        if (lp != 0) {
            // TRAINER: Can Güncelleme
            int yeniCan = 1000;
            WriteProcessMemory(hProcess, (LPVOID)(lp + 0xEC), &yeniCan, sizeof(yeniCan), NULL);

            int myTeam = 0, count = 0;
            ReadProcessMemory(hProcess, (LPCVOID)(lp + 0x30C), &myTeam, sizeof(int), NULL);
            ReadProcessMemory(hProcess, (LPCVOID)playerCountPtr, &count, sizeof(count), NULL);

            uintptr_t entList = 0;
            ReadProcessMemory(hProcess, (LPCVOID)entityListPtr, &entList, sizeof(entList), NULL);

            float matrix[16];
            ReadProcessMemory(hProcess, (LPCVOID)viewMatrixPtr, &matrix, sizeof(matrix), NULL);

            float closestDist = FLT_MAX;
            Vector3 bestTarget{};
            bool targetFound = false;

            for (int i = 1; i < count; i++) {
                uintptr_t ent = 0;
                ReadProcessMemory(hProcess, (LPCVOID)(entList + (i * 4)), &ent, sizeof(ent), NULL);
                if (!ent) continue;

                int eTeam = 0, health = 0;
                ReadProcessMemory(hProcess, (LPCVOID)(ent + 0x30C), &eTeam, sizeof(int), NULL);
                ReadProcessMemory(hProcess, (LPCVOID)(ent + 0xEC), &health, sizeof(int), NULL);

                if (eTeam == myTeam || health <= 0) continue;

                Vector3 head, foot;
                ReadProcessMemory(hProcess, (LPCVOID)(ent + 0x4), &head, sizeof(Vector3), NULL);
                ReadProcessMemory(hProcess, (LPCVOID)(ent + 0x28), &foot, sizeof(Vector3), NULL);

                Vector2 sH, sF;
                if (WorldToScreen(head, sH, matrix, rect.right, rect.bottom) && WorldToScreen(foot, sF, matrix, rect.right, rect.bottom)) {
                    // Aimbot Logic
                    if (GetAsyncKeyState(VK_SHIFT)) {
                        float distToCrosshair = sqrt(pow(sH.x - centerX, 2) + pow(sH.y - centerY, 2));
                        if (distToCrosshair < fov && distToCrosshair < closestDist) {
                            closestDist = distToCrosshair;
                            bestTarget = head;
                            targetFound = true;
                        }
                    }

                    // ESP Çizimleri
                    int h = abs((int)(sF.y - sH.y));
                    int w = (int)(h / 1.3f);
                    int x = (int)sH.x - (w / 2);
                    int y = (int)sH.y;

                    DrawLine(x, y, x + w, y, hBoxPen);
                    DrawLine(x + w, y, x + w, y + h, hBoxPen);
                    DrawLine(x + w, y + h, x, y + h, hBoxPen);
                    DrawLine(x, y + h, x, y, hBoxPen);
                    DrawLine(centerX, rect.bottom, (int)sF.x, (int)sF.y, hLinePen);
                    int healthPixels = (h * min(health, 100)) / 100;
                    DrawLine(x - 6, y + h, x - 6, y + h - healthPixels, hHealthPen);
                }
            }

            if (GetAsyncKeyState(VK_SHIFT) && targetFound) {
                Vector3 lPos;
                ReadProcessMemory(hProcess, (LPCVOID)(lp + 0x4), &lPos, sizeof(Vector3), NULL);
                AimAt(hProcess, lp, lPos, bestTarget);
            }
        }
        GdiFlush();
        Sleep(0);


    }

    // Temizlik
    BYTE originalAmmo[2] = { 0xFF, 0x08 };
    VirtualProtectEx(hProcess, (LPVOID)ammoDecreaseAddress, sizeof(originalAmmo), PAGE_EXECUTE_READWRITE, &oldProtect);
    WriteProcessMemory(hProcess, (LPVOID)ammoDecreaseAddress, &originalAmmo, sizeof(originalAmmo), nullptr);
    VirtualProtectEx(hProcess, (LPVOID)ammoDecreaseAddress, sizeof(originalAmmo), oldProtect, &oldProtect);

    DeleteObject(hBoxPen);
    DeleteObject(hLinePen);
    DeleteObject(hHealthPen);
    ReleaseDC(hwnd, hdc);
    CloseHandle(hProcess);
    return 0;
}

🌐 Sorular ve İletişim​

Her türlü sorunuzu ve merak ettiklerinizi konunun altından veya discord üzerinden sorabilirsiniz elimden geldiğince tamamını yanıtlamaya çalışacağım.
📌 Discord: lyr1ca.x4n
 
Uzman Üye
Katılım
8 Eyl 2022
Mesajlar
198
Çözümler
2
Tepki puanı
25
Ödüller
4
3 HİZMET YILI
seni bu sonuca iten şey ne oldu güzel kardeşim?
kodun genel yapısı, tek depoda birleşim ve normal yazım kuralları hakkında en ufak bilginin olmaması dışında.
ilk 3 satırda gördüğüğmüz structhları direk oalrak // Yapılar diye çeviri yorum satırı ile ai ın eklemesi oldu. Paylaşımına bir şey demem ama burada çocuk kandırmıyorsunuz, veya yapmadığınız birş ey için övünüyorsunuz

HWND hwnd = FindWindowA(NULL, "AssaultCube"); if (hwnd == NULL) { renkli_yaz("GAME NOT FOUND! PLEASE OPEN THE GAME...", "31"); Sleep(2500); return 0; } DWORD procId; GetWindowThreadProcessId(hwnd, &procId); HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, procId); if (hProcess == NULL) { renkli_yaz("Run the Cheat as administrator.", "31"); Sleep(2500); return 0; } uintptr_t baseAddress = GetModuleBaseAddress(procId, "ac_client.exe"); if (baseAddress == 0) { CloseHandle(hProcess); return 0; }

ayrıca dünyadaki her hangi bir yazılımcı bu kadar checkeklemez, ki böyle check de eklenmez :)

ağır hardcode yapmış ai, ve bazı değerler yanlış, kendin yapsan floata bölmek yerine vector yapardın

Ayrıca kardeşini alır *****e sokarım senin
 
Onaylı Üye
Katılım
30 May 2026
Mesajlar
75
Tepki puanı
2
Yaş
19
Sosyal
kodun genel yapısı, tek depoda birleşim ve normal yazım kuralları hakkında en ufak bilginin olmaması dışında.
ilk 3 satırda gördüğüğmüz structhları direk oalrak // Yapılar diye çeviri yorum satırı ile ai ın eklemesi oldu. Paylaşımına bir şey demem ama burada çocuk kandırmıyorsunuz, veya yapmadığınız birş ey için övünüyorsunuz

HWND hwnd = FindWindowA(NULL, "AssaultCube"); if (hwnd == NULL) { renkli_yaz("GAME NOT FOUND! PLEASE OPEN THE GAME...", "31"); Sleep(2500); return 0; } DWORD procId; GetWindowThreadProcessId(hwnd, &procId); HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, procId); if (hProcess == NULL) { renkli_yaz("Run the Cheat as administrator.", "31"); Sleep(2500); return 0; } uintptr_t baseAddress = GetModuleBaseAddress(procId, "ac_client.exe"); if (baseAddress == 0) { CloseHandle(hProcess); return 0; }

ayrıca dünyadaki her hangi bir yazılımcı bu kadar checkeklemez, ki böyle check de eklenmez :)

ağır hardcode yapmış ai, ve bazı değerler yanlış, kendin yapsan floata bölmek yerine vector yapardın

Ayrıca kardeşini alır *****e sokarım senin
öncelikle birşey için övündüğüm yok bu sadece yeni başlayanları bilgilendirmek adına bir tutorial. checklere gelince. o senin tamamen öznel düşüncen ben bir yazılım geliştiriken özellikle geliştirme aşamasında debug mesajları bolca eklerim program da bir sorun oluştuğunda anında tespit edebilmek için ki zaten bunun normali budur.
 
Uzman Üye
Katılım
8 Eyl 2022
Mesajlar
198
Çözümler
2
Tepki puanı
25
Ödüller
4
3 HİZMET YILI
öncelikle birşey için övündüğüm yok bu sadece yeni başlayanları bilgilendirmek adına bir tutorial. checklere gelince. o senin tamamen öznel düşüncen ben bir yazılım geliştiriken özellikle geliştirme aşamasında debug mesajları bolca eklerim program da bir sorun oluştuğunda anında tespit edebilmek için ki zaten bunun normali budur.
debug edeceksen debugger kullan akrdeşim, dünayda kimse böyle kod yazmaz, elinle yazmaya başla kodu ne demek istediğimi anlarsın. Normal olan bu değil böyle bir normalde yok. Klassik hiç bir cpp tutorialında sana böyle syntax öğretmez ai alrın syntaxları böyle yazmasının sebebi kütüphanelerde kullanılan syntax biçimini öğrenmeleri.
Ai bakıyor insan yapımı kodlar çok hata var ve execption handlererlar az, liblere bakıyor dolu dolu exception var neden acaba diyor temizi bu diyor ve böyle yazıyor. Eminim hayatında bir gün açıp cpp ile ilgili bir şey öğrenmeye kalkarsan anlarsın ne demek istediğimi

Galilionun kilise adamlarına dünyanın yuvarlak olmasını anlatmak gibi bir şey bu, şuan ai dan promt alıp yazan senin gibi biri ile normal olanı anlatmak
 
Onaylı Üye
Katılım
30 May 2026
Mesajlar
75
Tepki puanı
2
Yaş
19
Sosyal
debug edeceksen debugger kullan akrdeşim, dünayda kimse böyle kod yazmak elinle yazmaya başla kodu ne demek istediğimi anlarsın. Normal olan bu değil böyle bir normalde yok. Klassik hiç bir cpp tutorialında sana böyle syntax öğretmez ai alrın syntaxları böyle yazmasının sebeb ikütüphanelerde kullanılan syntax biçim ni öğrenmleri.
Ai bakıyor insan yapımı kodlar çok hata var ve execption handlererlar az, liblere bakıyor dolu dolu exception var neden acaba diyor temizi bu diyor ve böyle yazıyor. Eminim hayarında bir gün açıp cpp ikle ilgili bir şey öğrenmeye kalkarsan anlarsın ne demek istediğimi

Galilionun kilise adamlarına dünyanın yuvarlak olmasını anlatmak gibi bir şey bu, şuan ai dan promt alıp yazan senin gibi biri ile normal olanı anlatmak
nasıl debug ettiğim seni ilgilendirmez ve bu kadar öznel kafada olduğun sürece sana burada sabaha kadar da yazsam ai dersin. Takıl kafana göre
- Artficial intellegince Lyr1ca : )
 
Uzman Üye
Katılım
8 Eyl 2022
Mesajlar
198
Çözümler
2
Tepki puanı
25
Ödüller
4
3 HİZMET YILI
nasıl debug ettiğim seni ilgilendirmez ve bu kadar öznel kafada olduğun sürece sana burada sabaha kadar da yazsam ai dersin. Takıl kafana göre
- Artficial intellegince Lyr1ca : )
peki Artficial intellegince Lyr1ca : ) bey, bir dahaki sefere kodunda dil değiştirip durma değişkenlerde ve commentde. İnsanların kafası karışır :)
 
Uzman Üye
Katılım
8 Eyl 2022
Mesajlar
198
Çözümler
2
Tepki puanı
25
Ödüller
4
3 HİZMET YILI
doğru söylüyorsun birdahakine aimbot yerine hedefbotu yazarım
"Komut satırını biraz renklendirir misin renkli yazdırsın, şu cmd deki yazıları modern yap"

hemen! işte kodun:

void renkli_yaz(std::string metin, std::string renk_kodu) {
std::cout << "\033[" << renk_kodu << "m" << metin << "\033[0m" << std::endl;
}
 
Onaylı Üye
Katılım
30 May 2026
Mesajlar
75
Tepki puanı
2
Yaş
19
Sosyal
"Komut satırını biraz renklendirir misin renkli yazdırsın, şu cmd deki yazıları modern yap"

hemen! işte kodun:

void renkli_yaz(std::string metin, std::string renk_kodu) {
std::cout << "\033[" << renk_kodu << "m" << metin << "\033[0m" << std::endl;
}
biz insanlar olarak kesinlikle ANSI kullanarak renkli_yaz diye bir fonksiyon oluşturup onu kod içerisinde kullanamayız onun yerine çoğunluğun kullandığı system color ı kullanmak zorundayız. Neden mi ? diğer türlü @yezeksoyagac ın gazabına uğrarız ve mahalle karısı gibi bize iftira atmaya başlar.
 
Uzman Üye
Katılım
16 May 2018
Mesajlar
211
Çözümler
1
Tepki puanı
33
Ödüller
10
Yaş
30
8 HİZMET YILI
debug edeceksen debugger kullan akrdeşim, dünayda kimse böyle kod yazmaz, elinle yazmaya başla kodu ne demek istediğimi anlarsın. Normal olan bu değil böyle bir normalde yok. Klassik hiç bir cpp tutorialında sana böyle syntax öğretmez ai alrın syntaxları böyle yazmasının sebebi kütüphanelerde kullanılan syntax biçimini öğrenmeleri.
Ai bakıyor insan yapımı kodlar çok hata var ve execption handlererlar az, liblere bakıyor dolu dolu exception var neden acaba diyor temizi bu diyor ve böyle yazıyor. Eminim hayatında bir gün açıp cpp ile ilgili bir şey öğrenmeye kalkarsan anlarsın ne demek istediğimi

Galilionun kilise adamlarına dünyanın yuvarlak olmasını anlatmak gibi bir şey bu, şuan ai dan promt alıp yazan senin gibi biri ile normal olanı anlatmak
sakin ol reis adam paylaşmak istemiş simple zaten sen en modernini en optimizasyonlusunu yaparsın
 
Üst