- Katılım
- 6 Mayıs 2022
- Konular
- 48,291
- Mesajlar
- 48,601
- Tepkime puanı
- 75
- M2 Yaşı
- 3 yıl 11 ay 10 gün
- Trophy Puan
- 48
- M2 Yang
- 488,879
Selamlar arkadaşlar,
Fix tamamen ücretsizdir; sahibinden TÜRKMMO’ya armağandır.
Eğer farklı forumlarda paylaşacaksanız, lütfen
Herkese hayırlı olsun, güle güle kullanın.
Gelelim Şimdi Fix'e
Arat:
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
dostumla birlikte bulduğumuz bir fixi, kimsenin canı yanmasın diye birçok sunucu sahibine ücretsiz olarak verdik. Ancak iyi niyetimiz bazı kişiler tarafından suistimal edilip, fix kendi buluşlarıymış gibi satılmaya başlandı. Bu durum bizi üzdüğü için, artık fixi herkesin erişimine açık şekilde paylaşıyoruz.Fix tamamen ücretsizdir; sahibinden TÜRKMMO’ya armağandır.
Eğer farklı forumlarda paylaşacaksanız, lütfen
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
ve benden alıntı olduğunu belirtmeyi unutmayın.Herkese hayırlı olsun, güle güle kullanın.
Gelelim Şimdi Fix'e
Arat:
Kod:
void Cube_Make(LPCHARACTER ch, int index, int count_item, int index_item_improve) { if (!ch) return;
Altına Ekle:
Kod:
if (count_item < 0) { LogManager::instance().HackLogEx(ch, "[HATA] ***** COCUGU SINIRSIZ İTEM HİLESİ YAPIYOR."); return; } if (index_item_improve != -1) { LogManager::instance().HackLogEx(ch, "[HATA] ***** COCUGU SANS HİLESİ YAPIYOR.."); return; }
Kod:
if (materialInfo.gold != 0) { ch->PointChange(POINT_GOLD, -static_cast<long long>(materialInfo.gold * count_item), false); }
Altına Ekle:
Kod:
if (total_items_give <= 0) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("It has failed.")); LogManager::instance().HackLogEx(ch, "[HATA] ****** EVLADI CUBE FAIL."); sys_log(0, "%s - %d Cube window make failed", ch->GetName(), ch->GetPlayerID()); return; }
Arat:
Kod:
sys_log(0, "player_select: login: %s index: %d", c_r.login, pinfo->index); if (!c_r.id) { sys_err("no account table"); return; }
Altına Ekle:
Kod:
if (d->GetEmpire() < 0 || d->GetEmpire() > 3) { LogManager::instance().HackLogEx(d, "CInputLogin::CharacterSelect try crash to game core. (GetEmpire)"); d->SetPhase(PHASE_CLOSE); return; } if (pinfo->index >= PLAYER_PER_ACCOUNT) { LogManager::instance().HackLogEx(d, "CInputLogin::CharacterSelect try crash to game core. (index)"); sys_err("index overflow %d, login: %s", pinfo->index, c_r.login); return; }
Müsait Bir Yere Ekle Log.cpp:
Kod:
void LogManager::HackLogEx(LPCHARACTER ch, const char* textLine) { if (!ch) return; LPDESC desc = ch->GetDesc(); if (!desc) return; Query("INSERT INTO `log`.`log_hack_ex` (`player`, `player_name`, `account`, `account_name`, `textLine`, `time`) VALUES(%u, '%s', %u, '%s', '%s', '%s', '%s', '%s', '%s', NOW())", ch->GetPlayerID(), ch->GetName(), ch->GetAID(), desc->GetAccountTable().login, textLine); } void LogManager::HackLogEx(LPDESC desc, const char* textLine) { if (!desc) return; DWORD player_id = 0; DWORD account_id = 0; LPCHARACTER ch = desc->GetCharacter(); if (ch) { player_id = ch->GetPlayerID(); account_id = ch->GetAID(); } Query("INSERT INTO `log`.`log_hack_ex` (`player`, `player_name`, `account`, `account_name`, `textLine`, `time`) VALUES(%u, %u, 'Unknown', '%s', 'Unknown', '%s', '%s', '%s', '%s', NOW()", player_id, account_id, textLine); } void LogManager::HackLogEx(std::string stLogin, const char* textLine) { Query("INSERT INTO log.log_hack_auth (account, textLine, time) VALUES('%s', `%s`, NOW())", stLogin.c_str(), textLine); }
Müsait Bir Yere Ekle Log.h :
Kod:
void HackLogEx(LPCHARACTER ch, const char* textLine); void HackLogEx(LPDESC desc, const char* textLine); void HackLogEx(std::string stLogin, const char* textLine);
questlua_global.cpp Arat:
Kod:
int _get_special_item_group( lua_State* L )
Kod Bloğunun Bitişine Ekle:
Kod:
int _hack_log_ex( lua_State* L ) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); const char* string = lua_tostring(L, 1); if (!ch) { LogManager::instance().HackLogEx("Bilinmiyor...", string); return 1; } LogManager::instance().HackLogEx(ch, string); return 1; }
Src Kısmı Bitti Mysql Kısmına Geçelim Log Kısmına "log_hack_ex.sql" olarak yükleyiniz:
Kod:
/* Navicat Premium Data Transfer Source Server : TipsizFakir Source Server Type : MariaDB Source Server Version : 100528 (10.5.28-MariaDB) Source Host : 192.168.1.100:3306 Source Schema : log Target Server Type : MariaDB Target Server Version : 100528 (10.5.28-MariaDB) File Encoding : 65001 Date: 31/07/2025 08:25:57 */ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for log_hack_ex -- ---------------------------- DROP TABLE IF EXISTS `log_hack_ex`; CREATE TABLE `log_hack_ex` ( `player` int(11) UNSIGNED NOT NULL DEFAULT 0, `player_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'Noname', `account` int(11) UNSIGNED NOT NULL DEFAULT 0, `account_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'NONAME', `textLine` varchar(1024) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'NONAME', `time` datetime NULL DEFAULT NULL ) ENGINE = Aria CHARACTER SET = latin1 COLLATE = latin1_swedish_ci PAGE_CHECKSUM = 1 ROW_FORMAT = Page TRANSACTIONAL = 1; -- ---------------------------- -- Records of log_hack_ex -- ---------------------------- [CENTER]SET FOREIGN_KEY_CHECKS = 1;
Eğer ki Fix Atılmazsa Ne Olur Hemen Şu Şekilde Gösterelim:
Sahibinden Armağan Cube - Cuberenewal HackLogEx Fix
Metin2 özel sunucularında gelişmiş sistemler geliştirmek isteyen geliştiriciler için önemli bir konu olan cube sistemleri, oyuncuların item'ları yükseltme veya dönüştürme imkanı sunar. Bu bağlamda, Armağan Cube gibi modlar, cube yenileme işlemlerinde daha fazla kontrol ve güvenlik sağlar. Özellikle Cuberenewal sırasında HackLogEx hatası ile karşılaşan geliştiriciler, bu sorunu çözmek için özel düzenlemeler yapmak zorundadır.
Cube Sistemlerinin Önemi
Cube sistemleri, Metin2 özel sunucularında oyuncuların karakterlerini güçlendirme, item'ları yükseltme ve yeni kombinasyonlar oluşturma açısından kritik öneme sahiptir. Cube, hem oyun içi ekonomiyi destekler hem de oyuncuların uzun süre kalmasını sağlar. Ancak cube sistemlerinde yapılan hatalar, güvenlik açıklarına ve loglama sorunlarına neden olabilir. Bu nedenle, cube sistemlerinin güvenli ve doğru şekilde entegre edilmesi gerekir.
Cuberenewal İşlemi ve HackLogEx Hatası
Cuberenewal işlemi sırasında, bazı özel sunucularda HackLogEx hatası görülebilir. Bu hata genellikle cube sisteminin sunucu tarafında düzgün doğrulanmaması ya da loglama sisteminin yanlış yapılandırılması nedeniyle oluşur. Bu durum, sunucunun anti-cheat mekanizması tarafından müdahale olarak algılanabilir ve oyuncu engellenebilir. Bu hatayı düzeltmek için cube sisteminin doğrulama kısmında değişiklikler yapılması gerekir.
Fix Uygulaması ve Geliştirici Adımları
Bu fix, cube yenileme esnasında HackLogEx hatasının alınmaması için geliştirilmiştir. Cube sistemine özel doğrulama prosedürleri eklenerek, sunucunun bu tür işlemler sırasında hata vermemesi sağlanır. Bu işlem, game core üzerinde değişiklik yapılmasını gerektirir. Oyun sunucusunun cube sistemine özel bir doğrulama fonksiyonu eklenmeli ve cube işleminin sunucu tarafında tam olarak loglanması sağlanmalıdır.
Güvenlik ve Stabilite
Fix uygulandığında, cube işlemleri sırasında güvenlik açıklarının kapanması sağlanır. Ayrıca, sunucu stabilitesi artar çünkü sistem artık cube işlemlerini doğru şekilde tanıyabilir. Bu sayede sunucu yöneticileri, daha az manuel müdahale ile sunucuyu güvenli tutabilir. Cube sistemlerinin doğru şekilde çalışması, hem oyuncular hem de sunucu sahipleri için büyük bir kolaylık sağlar.
Kaynak Kod ve Entegrasyon
Bu fix, C++ kaynak kod üzerinde yapılmıştır ve doğrudan game server'a entegre edilmelidir._cube_renewal_ fonksiyonu üzerinde yapılan değişiklikler, cube doğrulama sürecini genişletir. Bu sayede cube işlemi sırasında sistem tarafından yapılan doğrulamalar artırılır. Geliştiriciler, bu fix'i uygularken sunucu kaynak koduna dikkatlice entegre etmelidir.
Sonuç
Sahibinden Armağan Cube - Cuberenewal HackLogEx Fix, Metin2 özel sunucularında cube sistemlerini güvenli hale getirmek isteyen geliştiriciler için değerli bir çözümdür. Doğru uygulandığında, cube işlemleri güvenli bir şekilde gerçekleştirilebilir ve sunucu üzerindeki güvenlik açıkları kapatılabilir. Bu fix, hem game hem de auth sunucuları üzerinde etkili olabilir ve sunucu performansını olumlu yönde etkileyebilir.
Sahibinden Armağan Cube - Cuberenewal HackLogEx Fix
In Metin2 private servers, cube systems are vital for developers aiming to create advanced gameplay features. These systems allow players to upgrade or transform items, which significantly impacts player retention and economy. One such module, Armağan Cube, offers enhanced control and security during cube renewal operations. However, developers may encounter a HackLogEx error during cuberenewal, which requires specific fixes to resolve.
Importance of Cube Systems
Cube systems play a critical role in Metin2 private servers by allowing players to strengthen their characters, enhance items, and create new combinations. They support the in-game economy and encourage longer engagement. Yet, errors in cube implementations can lead to security vulnerabilities and logging issues. Thus, secure and correct integration of these systems is essential for maintaining server integrity and user satisfaction.
Cuberenewal Process and HackLogEx Error
During cuberenewal operations, some private servers may experience a HackLogEx error. This issue typically arises from improper validation on the server side or misconfigured logging systems. Such errors can trigger anti-cheat mechanisms, potentially blocking the player. Correcting this involves modifying the validation steps within the cube system to ensure proper server-side verification.
Applying the Fix and Developer Steps
This fix aims to prevent HackLogEx errors during cube renewal processes. By adding custom validation routines to the cube system, the server avoids misidentifying valid cube operations as malicious. The process requires modifications to the game core. Developers must implement a dedicated validation function for cube renewal and ensure accurate logging of cube operations on the server side.
Security and Stability
Once applied, the fix closes potential security loopholes during cube operations and increases server stability. The system gains better recognition of cube-related events, reducing the need for manual intervention by administrators. Properly functioning cube systems provide convenience for both players and server owners alike.
Source Code and Integration
This fix is implemented within C++ source code and must be integrated directly into the game server. Modifications to the _cube_renewal_ function expand the validation process during cube operations. This ensures increased checks during cube renewals. Developers should carefully integrate the fix into their server source code to avoid disrupting other functionalities.
Conclusion
Sahibinden Armağan Cube - Cuberenewal HackLogEx Fix is a valuable solution for developers looking to secure cube systems in Metin2 private servers. When properly applied, cube operations can run securely, and potential vulnerabilities on the server can be closed. This fix can impact both game and auth servers positively, improving overall server performance.
