aynı anda 2 istemci çalıştırmayı engelleyin.

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
can sıkıntısı yüzünden yaptım projede niye proshield yazıyor diyenler için cevap vereyim sıfırdan bir dll projesi hazırlamayı bilmiyorum oyüzden varolan bir projenin üzerinden gittim bugün dll yi paylaşıyorum yarında açık kaynak kodunu paylaşırım geliştirmek isteyen olur belki

DENENEN SERVER

METİN2 SİNGAPUR

metin2 ile artık ilgilenmediğim için artık sadece arada sırada oda olursa yaptığım şeyleri paylaşıyorum.

uyarı ekranı gelmez yani sadece clienti açmaz böylelikle tersine işlemcilik yapmak isteyip aşmak isteyen olursa diye bu şekilde yaptım kola(y) gelsin.



Kod:
MessageBox(NULL, "Oyun zaten çalışıyor...", "Uyarı", MB_OK | MB_ICONEXCLAMATION);

Metin2 Sunucularında Aynı Anda 2 İstemciyi Engelleme Rehberi
Metin2 özel sunucuları geliştirmeye çalışan geliştiriciler için güvenlik ve denge en önemli konulardan biridir. Bu bağlamda oyuncuların aynı anda birden fazla istemci çalıştırması, haksız avantajlar sağlayabilir ve PvP sistemlerinde dengeleri bozabilir. Bu nedenle, aynı anda iki istemciyi çalıştırmayı engellemek büyük önem taşır. Bu yazıda, Metin2 özel sunucularında bu konfigürasyonu nasıl yapacağınızı detaylıca anlatacağız.

Neden Aynı Anda Birden Fazla İstemciyi Engellemeliyiz?
Metin2 oyununda bir oyuncunun aynı anda birden fazla karakterle oynaması, PvP savaşlarında büyük bir avantaj sağlar. Örneğin, bir karakter saldırı yaparken diğeri destek verebilir veya gizlenip stratejik hamleler yapabilir. Bu durum, adil oyun ortamını bozar. Ayrıca bazı kullanıcılar bottedme ya da hile amaçlı birden fazla istemci açabilir. Bu da sunucu performansını düşürür ve diğer oyuncuların deneyimini olumsuz etkiler.

Sunucu Tarafında Aynı Oturumu Kontrol Etme
Metin2 sunucusu, genellikle Auth ve Game sunucularından oluşur. Aynı anda iki istemcinin giriş yapmasını engellemek için Auth sunucusunda oturum kontrolü yapılmalıdır. Auth sunucusu, kullanıcıların kimlik doğrulamasını yaptığı yerdir. Kullanıcı giriş yaptığında, sistemde bir oturum (session) oluşturulur. Eğer kullanıcı başka bir istemciden tekrar giriş yapmaya çalışırsa, eski oturum sonlandırılmalı ya da yeni giriş reddedilmelidir.

Auth Sunucusu Ayarları
Auth sunucu yapılandırmasında, duplicate login (çift giriş) engelleyici sistem devreye alınmalıdır. Bu sistem, bir hesaba ait oturumun zaten açık olduğunu tespit ettiğinde yeni girişleri engeller. Bu işlem genellikle veritabanı üzerinden yapılır. Her giriş yapıldığında, kullanıcıya ait login_status değeri 1 yapılır. Çıkışta ise 0 yapılır. Eğer kullanıcı tekrar giriş yapmak isterse ve login_status değeri hâlâ 1 ise, giriş engellenir.

Client Tarafında Kontrol Mekanizması
İstemci tarafında da kontroller yapılabilir. Örneğin, bir C++ tabanlı client üzerinde çalışıyorsanız, açılan süreçler arasında iletişim kurulabilir. Yeni bir istemci başlatıldığında, daha önce başlatılmış olan istemci ile bağlantı kurulup, hâlihazırda açık olup olmadığı kontrol edilebilir. Bu yöntem, daha çok geliştiriciye yöneliktir ve kullanıcı dostu değildir. Ancak güçlü bir kontrol mekanizması sağlar.

Python GUI ile Geliştirilmiş Sistem
Metin2 geliştiricileri genellikle Python GUI kullanarak yönetim panelleri ve istemci sistemleri geliştirirler. Bu sistemler sayesinde, sunucuya bağlanan kullanıcılar izlenebilir ve birden fazla bağlantısı olanlar tespit edilebilir. Python tabanlı bir sistem ile otomatik olarak giriş yapan istemcilerin IP adresleri karşılaştırılabilir. Aynı IP'den birden fazla giriş yapılmışsa, uyarı gönderilir veya bağlantı kesilir.

Martysama ve Diğer Kaynaklar
Metin2 geliştirme sürecinde, Martysama gibi kaynaklar büyük kolaylık sağlar. Martysama, C++ ve Python tabanlı birçok sistem içeren kapsamlı bir kaynak kod deposudur. Aynı anda iki istemci çalıştırmayı engelleyen sistemler de burada örnek olarak bulunabilir. Bu tür kaynaklardan faydalanarak, daha hızlı ve güvenli bir çözüm geliştirilebilir.

Sonuç
Metin2 özel sunucularında aynı anda iki istemci çalıştırmayı engellemek, hem adil oyun ortamını korur hem de hileli girişimleri önler. Auth sunucusu üzerinden oturum kontrolleri yapılması en etkili yöntemdir. Ayrıca, Python GUI ve C++ sistemler kullanılarak daha gelişmiş çözümler üretilebilir. Bu tür sistemler, Metin2 geliştiricileri için kritik öneme sahiptir.


How to Prevent Running Two Clients Simultaneously on Metin2 Servers
Security and balance are among the most important topics for developers working on Metin2 private servers. In this context, preventing players from running multiple clients simultaneously can prevent unfair advantages and disrupt balance in PvP systems. Therefore, blocking more than one client at the same time is highly significant. In this article, we will explain how to configure this feature on Metin2 private servers in detail.

Why Should We Block Multiple Clients at Once?
Running multiple characters simultaneously in Metin2 can provide significant advantages during PvP battles. For example, while one character attacks, another can provide support or take strategic actions by hiding. This disrupts fair gameplay. Additionally, some users may open multiple clients for botting or cheating purposes, which decreases server performance and negatively affects other players' experiences.

Controlling Concurrent Sessions on Server-Side
Metin2 servers typically consist of Auth and Game servers. To block simultaneous logins from two clients, session control must be implemented within the Auth server. The Auth server handles user authentication. When a user logs in, a session is created in the system. If the same user attempts to log in again via another client, the old session should be terminated or the new login attempt denied.

Auth Server Configuration
Within the Auth server configuration, a duplicate login prevention system must be activated. This system detects if a session related to an account is already active and blocks new login attempts accordingly. This process is usually handled through the database. Each time a user logs in, their login_status value is set to 1, and upon logout, it is reset to 0. If a user attempts to log in again while their login_status remains 1, the login is blocked.

Client-Side Control Mechanisms
Controls can also be implemented on the client-side. For instance, if you are working with a C++ based client, communication can be established between processes. When a new client starts, it can check whether another client is already running by communicating with the previous instance. This method is more developer-oriented and less user-friendly, but provides a strong control mechanism.

Enhanced Systems with Python GUI
Metin2 developers often use Python GUI to build management panels and client systems. These systems allow tracking of users connecting to the server and detecting those attempting multiple connections. With a Python-based system, IP addresses of clients logging in can be compared. If multiple logins occur from the same IP address, a warning can be sent or the connection terminated.

Martysama and Other Resources
During Metin2 development, resources like Martysama offer great convenience. Martysama is a comprehensive repository containing many C++ and Python-based systems. Examples of systems that block simultaneous client usage can also be found here. Utilizing such resources allows for faster and safer solutions to be developed.

Conclusion
Preventing multiple simultaneous client usage on Metin2 private servers helps maintain a fair gaming environment and prevents cheating attempts. Session controls on the Auth server side are the most effective approach. Moreover, advanced solutions can be built using Python GUI and C++ systems. Such systems are critically important for Metin2 developers.
 

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

Benzer konular

Geri
Üst Alt