Çözülemedi Oyuna Kasıtlı Crash Verdirtme

  • Konuyu açan Konuyu açan Baldwin
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 6
  • Gösterim Gösterim 105
Ne yazık ki bu konuda sorulara çözüm bulunmuyor. Eğer konuda yorumlar varsa hepsini inceleyebilirsiniz. Belki sizlerin sorununuzu çözmek için için ipuçları bulabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

Baldwin

MT Üye
MT Üye
Mesaj
177
Çözümler
3
Beğeni
142
Puan
744
Ticaret Puanı
0
https://www.mmotutkunlari.com/konu/oyun-Çökmesi-sonrası-otomatik-giriş-dracarys.15779/

pp:
Genişlet Daralt Kopyala
# Search

    std::fill(m_apoPhaseWnd, m_apoPhaseWnd + PHASE_WINDOW_NUM, (PyObject*)NULL);

#Add before

#ifdef RENEWAL_CRASH_HANDLER
#include "PythonApplication.h"
#include "../EterBase/error.h"
LPCSTR GetExceptionName(DWORD code)
{
    switch (code)
    {
        case EXCEPTION_ACCESS_VIOLATION:
        case EXCEPTION_DATATYPE_MISALIGNMENT:
        case EXCEPTION_BREAKPOINT:
        case EXCEPTION_SINGLE_STEP:
        case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
        case EXCEPTION_FLT_DENORMAL_OPERAND:
        case EXCEPTION_FLT_DIVIDE_BY_ZERO:
        case EXCEPTION_FLT_INEXACT_RESULT:
        case EXCEPTION_FLT_INVALID_OPERATION:
        case EXCEPTION_FLT_OVERFLOW:
        case EXCEPTION_FLT_STACK_CHECK:
        case EXCEPTION_FLT_UNDERFLOW:
        case EXCEPTION_INT_DIVIDE_BY_ZERO:
        case EXCEPTION_INT_OVERFLOW:
        case EXCEPTION_PRIV_INSTRUCTION:
        case EXCEPTION_IN_PAGE_ERROR:
        case EXCEPTION_ILLEGAL_INSTRUCTION:
        case EXCEPTION_NONCONTINUABLE_EXCEPTION:
        case EXCEPTION_STACK_OVERFLOW:
        case EXCEPTION_INVALID_DISPOSITION:
        case EXCEPTION_GUARD_PAGE:
        case EXCEPTION_INVALID_HANDLE:
        case 0xE06D7363:
            return "C++ Exception";
    }
    return "Unknown exception";
}
void CPythonNetworkStream::SaveCrashData()
{
    PyCallClassMemberFunc(m_poHandler, "SetCrashInfo", Py_BuildValue("(s)", m_strPhase.c_str()));
    system("start metin2Release.exe");/////////////////////////////////////////SET HERE//////////////////////////////////////////
}
LONG __stdcall RunCrashReport(_EXCEPTION_POINTERS* pExceptionInfo)
{
#ifdef _DEBUG
    printf(GetExceptionName(pExceptionInfo->ExceptionRecord->ExceptionCode));
#endif
    SetEterExceptionHandler(pExceptionInfo);
    CPythonNetworkStream::Instance().SaveCrashData();
    CPythonApplication::Instance().Exit();
    return EXCEPTION_EXECUTE_HANDLER;
}
#endif

# Search

    m_dwGuildID = 0;

# Add after

#ifdef RENEWAL_CRASH_HANDLER
    SetUnhandledExceptionFilter(RunCrashReport);
#endif
Dracarysin renewal crash handlerını kurdum ve bunu denemem lazım su an kasıtlı olarak nasıl crash yedirtirim oyunuma
 
https://www.mmotutkunlari.com/konu/oyun-Çökmesi-sonrası-otomatik-giriş-dracarys.15779/

pp:
Genişlet Daralt Kopyala
# Search

    std::fill(m_apoPhaseWnd, m_apoPhaseWnd + PHASE_WINDOW_NUM, (PyObject*)NULL);

#Add before

#ifdef RENEWAL_CRASH_HANDLER
#include "PythonApplication.h"
#include "../EterBase/error.h"
LPCSTR GetExceptionName(DWORD code)
{
    switch (code)
    {
        case EXCEPTION_ACCESS_VIOLATION:
        case EXCEPTION_DATATYPE_MISALIGNMENT:
        case EXCEPTION_BREAKPOINT:
        case EXCEPTION_SINGLE_STEP:
        case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
        case EXCEPTION_FLT_DENORMAL_OPERAND:
        case EXCEPTION_FLT_DIVIDE_BY_ZERO:
        case EXCEPTION_FLT_INEXACT_RESULT:
        case EXCEPTION_FLT_INVALID_OPERATION:
        case EXCEPTION_FLT_OVERFLOW:
        case EXCEPTION_FLT_STACK_CHECK:
        case EXCEPTION_FLT_UNDERFLOW:
        case EXCEPTION_INT_DIVIDE_BY_ZERO:
        case EXCEPTION_INT_OVERFLOW:
        case EXCEPTION_PRIV_INSTRUCTION:
        case EXCEPTION_IN_PAGE_ERROR:
        case EXCEPTION_ILLEGAL_INSTRUCTION:
        case EXCEPTION_NONCONTINUABLE_EXCEPTION:
        case EXCEPTION_STACK_OVERFLOW:
        case EXCEPTION_INVALID_DISPOSITION:
        case EXCEPTION_GUARD_PAGE:
        case EXCEPTION_INVALID_HANDLE:
        case 0xE06D7363:
            return "C++ Exception";
    }
    return "Unknown exception";
}
void CPythonNetworkStream::SaveCrashData()
{
    PyCallClassMemberFunc(m_poHandler, "SetCrashInfo", Py_BuildValue("(s)", m_strPhase.c_str()));
    system("start metin2Release.exe");/////////////////////////////////////////SET HERE//////////////////////////////////////////
}
LONG __stdcall RunCrashReport(_EXCEPTION_POINTERS* pExceptionInfo)
{
#ifdef _DEBUG
    printf(GetExceptionName(pExceptionInfo->ExceptionRecord->ExceptionCode));
#endif
    SetEterExceptionHandler(pExceptionInfo);
    CPythonNetworkStream::Instance().SaveCrashData();
    CPythonApplication::Instance().Exit();
    return EXCEPTION_EXECUTE_HANDLER;
}
#endif

# Search

    m_dwGuildID = 0;

# Add after

#ifdef RENEWAL_CRASH_HANDLER
    SetUnhandledExceptionFilter(RunCrashReport);
#endif
Dracarysin renewal crash handlerını kurdum ve bunu denemem lazım su an kasıtlı olarak nasıl crash yedirtirim oyunuma
normal quit atınca girmiyor mu?
 
#include <iostream>
#include <thread>
#include <chrono>

void causeCrash() {
std::this_thread::sleep_for(std::chrono::seconds(100)); // 100 saniye bekle
int* p = nullptr; // Null pointer
*p = 0; // Null pointer dereference, program burada çökecek
}

Sonra kardom main fonksiyonda causeCrash() şeklinde bi yerde çağırman lazım. Exe çalıştıktan 100 saniye sonra oyun crash yer
 
koda baktımda nasıl patladığının bir önemi yok oyuna gir bir guiyi boz mesela guiyi açınca client crash versin yine çalışıcak. çünkü saydığı crashlerden biri olmazsa unknown crash döndürüyor clientin bir şekilde çökmesi kabul görür. bir guinin kodunu boz.
 
sistemi çalıştıramadım heralde crash ten sonra giriş yapmıyor oyuna ayrıca içindeki auto_login.infyede bilgileri yazmadı kurabilen olursa dm atarsa sevinirim konu kapanabilit
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst