Reboot Atmadan Gm Ekleme C++

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 39

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Sistemin ortaya çıkma mantığı test amaçlıdır yani oyununuzu yaparken test aşamasında kullanmanız için yapılmış bir mantıktır oyunu kullanıma açtığınızda satırı tamamen silin veya definelerden kaldırın!

Input_auth.cpp->
Aratılır:
Kod:
DBManager::instance().EscapeString(szLogin, sizeof(szLogin), login, strlen(login));
Altına eklenir:

Kod:
#ifdef TESTSERVER_GAMEMASTER char szQuery[1024];     std::auto_ptr<SQLMsg> pMsg(DBManager::instance().DirectQuery("SELECT mAccount FROM common.gmlist"));     MYSQL_ROW row = NULL;     while (row = mysql_fetch_row(pMsg->Get()->pSQLResult))     {         if (strcmp(row[0], szLogin) == 0) {             db_clientdesc->DBPacket(HEADER_GD_RELOAD_ADMIN, 0, NULL, 0);             break;         }     } #endif
services.h veya common definese eklenir #define TESTSERVER_GAMEMASTER
Reboot Atmadan Gm Ekleme C++

Metin2 özel sunucularında yönetim ve güvenlik açısından yetkili kullanıcılar eklemek oldukça önemlidir. Özellikle bir sunucu yöneticisi ya da GM (Game Master) eklemek, oyun içi deneyimi düzenlemek ve oyunu daha güvenli hale getirmek için büyük rol oynar. Ancak bu işlemi yaparken sunucuyu yeniden başlatmadan (reboot) GM eklemek istiyorsanız, bu durumda C++ tabanlı bir sistem geliştirmeniz gerekmektedir.

C++ ile Dinamik GM Sistemi

Metin2 sunucularında GM ekleme işlemi genellikle veritabanında (DB) belirli bir kullanıcıya yetki seviyesi tanımlanarak yapılır. Ancak bu işlem genellikle sunucu yeniden başlatıldığında aktif olur. Reboot atmadan GM ekleme işlemini gerçekleştirmek için C++ dilinde yazılmış bir komut sistemi geliştirmek gerekir. Bu sistem sayesinde sunucu çalışan bir ortamdayken yetkilendirme işlemleri yapılabilir.

Adım Adım C++ Kodlama

Öncelikle, oyun sunucusunda bir komut tanımlamak için gamecore üzerinde çalışmalısınız. Bu işlem için client src ve server src arasında uyumlu bir yapı kurulmalıdır. C++ dilinde yazılmış bir komut sistemi sayesinde sunucuya özel komutlar tanımlanabilir. Örneğin, /gmadd komutu ile belirli bir karakteri GM yapabilirsiniz. Bu komutun çalışması için hem auth hem de game servislerinde değişiklikler yapılması gerekir.

Yetki Seviyesi Tanımı

GM yetkisi, veritabanında genellikle 'gm' tablosunda veya 'account' tablosundaki yetki seviyesi kısmında tutulur. Bu seviye genellikle 0'dan 3'e kadar değişen değerler alabilir. C++ ile yazılan komut sistemi, bu değeri doğrudan runtime sırasında güncelleyebilmelidir. Bu sayede sunucu reboot edilmeden yetkilendirme gerçekleşir.

Olası Güvenlik Riskleri

Dinamik GM ekleme sistemi, yanlış kullanıldığında ciddi güvenlik açıklarına neden olabilir. Bu nedenle, bu komutu sadece belirli IP adreslerinden veya şifre korumalı yetkilendirme sistemleriyle kullanmak çok önemlidir. Ayrıca, yapılan değişikliklerin loglanması da güvenlik açısından büyük fayda sağlar.

Sunucu Performansı

Runtime sırasında yapılan yetkilendirme işlemleri, sunucu performansını etkileyebilir. Bu nedenle C++ sistemlerinde bu işlemler optimize edilmeli ve fazla veritabanı sorgusundan kaçınılmalıdır. Martysama gibi deneyimli geliştiricilerin önerdiği yapılar, bu tür sistemlerin stabil çalışmasını sağlar.

Sonuç

Reboot atmadan GM ekleme işlemi, Metin2 özel sunucularında profesyonel yönetim için kritik bir özelliktir. C++ tabanlı dinamik sistemler sayesinde bu işlem güvenli ve hızlı bir şekilde gerçekleştirilebilir. Ancak dikkatli kodlama ve güvenlik önlemleri alınmadığı takdirde ciddi riskler oluşabilir. Bu tür sistemlerin doğru uygulanması için Metin2 Development konularında deneyim sahibi geliştiricilerden destek almak en iyi çözümdür.


Adding GM Without Reboot in C++

In Metin2 private servers, adding authorized users for management and security purposes is highly important. Adding a server administrator or GM (Game Master) plays a crucial role in managing in-game experiences and enhancing game security. However, if you want to add a GM without restarting (rebooting) the server, you need to develop a system based on C++.

Dynamic GM System with C++

Adding a GM in Metin2 servers usually involves defining a permission level for a specific user in the database (DB). However, this process typically activates only after a server restart. To achieve adding a GM without rebooting, you must develop a command system written in C++. This system allows authorization operations to be performed while the server is running.

Step-by-Step C++ Coding

Firstly, you need to work on the gamecore to define commands within the game server. For this operation, compatibility between client src and server src must be ensured. With a command system written in C++, custom commands can be defined on the server. For instance, the /gmadd command can make a specific character a GM. For this command to function, modifications are required in both auth and game services.

Permission Level Definition

GM permissions are generally stored in the 'gm' table or in the permission level section of the 'account' table in the database. These levels often take values from 0 to 3. The C++ command system must be able to update this value directly during runtime. Thus, the authorization occurs without rebooting the server.

Potential Security Risks

Dynamic GM addition systems can cause significant security vulnerabilities if misused. Therefore, it is very important to use such commands only from specific IP addresses or via password-protected authorization systems. Additionally, logging the changes made enhances security significantly.

Server Performance

Authorization processes performed during runtime may affect server performance. Therefore, these operations should be optimized in C++ systems, and excessive database queries should be avoided. Structures recommended by experienced developers like Martysama ensure stable functioning of such systems.

Conclusion

Adding a GM without rebooting is a critical feature for professional management in Metin2 private servers. Thanks to dynamic systems based on C++, this operation can be executed securely and quickly. However, without careful coding and security measures, serious risks may arise. To properly implement such systems, support from experienced developers in Metin2 Development topics is the best solution.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt