Locale_inch.h // Müsait yere ekle #define MAX_CLIENTS #ifdef MAX_CLIENTS #define MAX_CLIENT 2 #endif // NOT : BURADA 2 YAZAN YERİ SINIRI KAÇ KOYMAK İSTİYORSANIZ DEĞİŞTİRİN. PythonApplication.cpp // En üste müsait bir yere ekle #ifdef MAX_CLIENTS #include #pragma comment(lib, "Shlwapi.lib") #include #endif // Ara // END_OF_SUPPORT_NEW_KOREA_SERVER // Altına Ekle #ifdef MAX_CLIENTS bool CPythonApplication::CanOpenNewClient(){ int bActiveClientCount = 0; PROCESSENTRY32 processEntry; HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); TCHAR exePath[MAX_PATH]; GetModuleFileName(NULL, exePath, MAX_PATH); std::string exeName = std::string(PathFindFileName(exePath)); char processName[256]; if (hProcessSnap == INVALID_HANDLE_VALUE){ return 0; } do { snprintf(processName, sizeof(processName), "%s", processEntry.szExeFile); if (0 == strcmp(exeName.c_str(), processName)) bActiveClientCount++; } while (Process32Next(hProcessSnap, &processEntry)); CloseHandle(hProcessSnap); return bActiveClientCount <= MAX_CLIENT; } #endif // Ara if (m_pySystem.IsUseDefaultIME()) // Altına Ekle #ifdef MAX_CLIENTS TCHAR szExeFileName[MAX_PATH]; GetModuleFileName(NULL, szExeFileName, MAX_PATH); if (std::string(PathFindFileName(szExeFileName)) != "metin2client.exe") { //TraceError("Oyun dosyasi hatali. %s", PathFindFileName(szExeFileName)); SET_EXCEPTION("Dosya adi degismis. Lutfen islemi geri alin."); return false; } if (!CanOpenNewClient()){ TraceError("Max. 2 Client acilabilir.!"); SET_EXCEPTION("Max. 2 Client acilabilir.!"); return false; } #endif // NOT : if (std::string(PathFindFileName(szExeFileName)) != "metin2client.exe") // Şu kod bloğunda metin2client.exe yazan kısmı sizin giriş dosya isminizle değiştirin. Python Applicatoin.h // Ara bool Process(); // Üstüne Ekle #ifdef MAX_CLIENTS bool CanOpenNewClient(); #endif