Gm'lerin Ticaret Yapmalarını Engellemek,

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba arkadaşlar;
Birçok pvp serverin sorunu olan gm lerin item verme sorunu çözümünü anlatıcağım bu konuda.
Sistem işleyişi;
Gm ler harici herkesde bir karektere "Ticaret" butonu çıkar.
Sistem amacı;
Serverinize aldığınız GM lerin başkasına item vermediğine emin olmak. Birsonraki konuda gmlerin pazardan item çekmemesini sağlamaya çalısıcaz :eek:ke:
Sistem yapılışı;
root.epk eix açıyoruz ardından uitarget.py açıyoruz
Kod:
self.ShowDefaultButton()
Arayın
Altta if (eğer) li ifadeler var tekinin araya
Kod:
if str(player.GetName())[0] == "[":     self.__HideButton(locale.TARGET_BUTTON_EXCHANGE)
Ekledikten sonra
Kod:
def OnExchange(self):
arayın.
Kod:
def OnExchange(self):         if str(self.nameString)[0] != "[":             net.SendExchangeStartPacket(self.vid)
Yukardaki kodla değiştirin.


Umarım yararlı olur keyifli forumlar..
Gm'lerin Ticaret Yapmalarını Engellemek

Metin2 özel sunucularında güvenli ve adil bir oyun ortamı sağlamak için bazı sistemsel düzenlemeler yapmak gerekir. Bunlardan birisi de Game Master (GM) yetkililerinin oyun içindeki bazı eylemleri üzerinde sınırlamalar getirmektir. Özellikle ticaret yapmaları, sunucu içi dengeleri bozabilecek ve oyun ekonomisini etkileyebilecek riskli bir durumdur. Bu nedenle GM'lerin ticaret yapmalarının engellenmesi, profesyonel Metin2 geliştiricilerinin dikkat etmesi gereken önemli konulardan biridir.

GM Yetkileri ve Ticaret

Metin2 özel sunucularında GM'ler, oyun yönetimi, hile tespiti, olaylar ve kullanıcı deneyimini artırmak amacıyla çeşitli yetkilere sahiptir. Ancak bu yetkilerin滥用 edilmemesi için sınırlamalar konulmalıdır. Örneğin bir GM, özel eşyaları doğrudan oyuncularla ticaret yoluyla dağıtabilir veya oyun içi ekonomiyi bozacak şekilde işlem yapabilir. Bu gibi durumları önlemek için ticaret eylemini yetkilendirme sistemine entegre etmek önemlidir.

Sistemsel Engelleme Yöntemleri

C++ tabanlı Metin2 sunucularında, oyun içindeki eylemler genellikle belirli fonksiyonlar aracılığıyla kontrol edilir. Ticaret işlemleri de buna dahildir. Ticaret başlatma komutunun kontrol edildiği fonksiyonlarda, oyuncunun yetkisine göre işlem yapılmasını sağlayan kontroller yapılabilir. Örneğin, IsGM() fonksiyonu kullanılarak oyuncu GM mi değil mi diye kontrol edilebilir. Eğer GM ise, trade_start komutu iptal edilebilir veya sunucudan uyarı mesajı gönderilerek işlem bloke edilebilir.

Python Tarafında Kontrol

Metin2 özel sunucularında sunucu tarafında Python scriptleri de yoğun olarak kullanılır. PyRoot dosyalarında, trade event’leri yakalanabilir ve burada da GM kullanıcılar için özel kontroller yapılabilir. Örneğin, trade başlatma isteği geldiğinde, gönderen kullanıcı GM mi diye kontrol edilir. Eğer öyleyse, işlem reddedilir ve kullanıcıya bir uyarı mesajı gönderilir.

Sunucu Tarafında DB Entegrasyonu

Metin2 sunucularında genellikle DB (database) üzerinden kullanıcı yetkilendirme sistemleri çalışır. GM yetkisi olan kullanıcılar genellikle ayrı bir yetki seviyesi olarak tanımlıdır. Bu yetki seviyesi kontrolü, trade sırasında kullanılabilir. Sunucu tarafında trade başlangıcı sırasında, kullanıcının yetki seviyesi kontrol edilerek, GM ise işlem iptal edilebilir.

Otomatik Sistem Kurulumu

Bu tür engellemeleri manuel olarak her sunucuda yapmak yerine, otomatik bir sistemle tüm özel sunuculara entegre edebilirsiniz. Bu sistem, Martysama tarzı script sistemlerine entegre edilerek, özel sunucu sahiplerinin kolayca kullanabileceği bir yapı haline getirilebilir. Böylece hem geliştirme süresi kısalır hem de daha az hata oluşur.

Sonuç

Metin2 özel sunucularında GM'lerin ticaret yapmalarını engellemek, oyun içi ekonomiyi ve adil oynanışı korumak açısından kritik öneme sahiptir. Bu işlem, C++ sunucu tarafında ya da Python GUI tabanlı sistemlerde kontrollü bir şekilde uygulanabilir. DB tabanlı kullanıcı yetkilendirme sistemleriyle birleştirildiğinde, çok daha sağlam bir güvenlik ağı oluşturulabilir. Bu sayede, hem sunucu sahipleri hem de oyuncular daha güvenli ve keyifli bir oyun deneyimi yaşar.


Preventing GMs from Trading

To ensure a secure and fair gaming environment on Metin2 private servers, certain systematic adjustments must be made. One such adjustment involves limiting certain actions of Game Masters (GMs). Particularly, allowing them to engage in trading can risk disrupting in-game balances and affect the game economy. Therefore, preventing GMs from trading is one of the critical issues that professional Metin2 developers should consider carefully.

GM Rights and Trading

On Metin2 private servers, GMs have various rights to manage the game, detect cheating, handle events, and enhance user experience. However, to prevent misuse of these rights, certain limitations must be placed. For instance, a GM might distribute special items directly to players through trading, potentially disrupting the in-game economy. To avoid such scenarios, integrating trade restrictions into the authorization system is essential.

Systematic Blocking Methods

In C++ based Metin2 servers, in-game actions are typically controlled through specific functions. Trade operations fall under this category as well. In the functions where trade initiation is handled, checks can be implemented to allow or deny actions based on player permissions. For example, the IsGM() function can be used to check whether the player is a GM. If so, the trade_start command can be canceled or blocked with a server-side warning message sent to the user.

Control in Python

Python scripts are also widely used on Metin2 private servers for server-side logic. In PyRoot files, trade events can be intercepted and custom checks can be performed for GM users. For instance, when a trade request is initiated, the system can verify if the sender is a GM. If they are, the action can be rejected and an alert message can be sent to the user.

Server-Side DB Integration

Metin2 servers typically operate user authorization systems via DB (database). GM users are often defined as a separate permission level. This permission level can be checked during trade initiation. On the server side, before a trade starts, the user's permission level can be verified and if they are a GM, the transaction can be canceled.

Automated System Setup

Rather than manually implementing such restrictions on every server, you can integrate them automatically across all private servers. This system can be embedded into scripting frameworks like Martysama, making it easy for private server owners to use. This approach reduces development time and minimizes potential errors.

Conclusion

Preventing GMs from trading on Metin2 private servers is crucial for maintaining in-game economy and fair play. This can be achieved systematically on both C++ server-side and Python GUI-based systems. When combined with DB-based user authorization, a much more robust security framework can be established. This ensures both server owners and players enjoy a safer and more enjoyable gaming experience.
 

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

Geri
Üst Alt