Küfür veya reklam link paylaşımı olduğunda Chat Ban olsun Sistemi.

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0

C++ Tarafı: Chat Mesajı Filtreleme


Metin2 sunucusundaki chat mesajını kontrol etmek için, CChatPacket gibi chat işlemlerini yöneten fonksiyonlara müdahale edebiliriz.

Kod:
// chat_handler.cpp #include "stdhdrs.h" #include "char.h" #include "desc.h" #include "packet.h" #include "chat.h" const std::vector<std::string> banned_words = {"küfür1", "küfür2", "reklamlink1", "site.com"}; bool ContainsBannedWords(const std::string &message) {     for (const auto &word : banned_words)     {         if (message.find(word) != std::string::npos)         {             return true;         }     }     return false; } void CChatHandler::HandleChatPacket(TPlayer *player, const char *message) {     // Mesajı küçük harfe çeviriyoruz (case insensitive kontrol)     std::string lower_message = message;     std::transform(lower_message.begin(), lower_message.end(), lower_message.begin(), ::tolower);     // Yasaklı kelimeler var mı?     if (ContainsBannedWords(lower_message))     {         // Oyuncuya chat yasağı ver         player->SetChatBan(true);         sys_log(0, "Player %s chat banned for using banned words.", player->GetName());         return;     }     // Normal chat işlemi     // Burada, chat mesajının sunucuya iletilmesi sağlanır     BroadcastChatMessage(player, message); }

C++ Tarafı: Oyuncuya Chat Ban Uygulama

Kod:
// player.cpp #include "player.h" // Oyuncuya chat yasağı ver void TPlayer::SetChatBan(bool ban) {     m_bChatBan = ban;     if (ban)     {         // Eğer chat yasağı varsa, belirli bir süre boyunca mesaj atmasına izin verilmeyecek         sys_log(0, "%s is chat banned!", GetName());     } } // Chat yasağını kontrol et bool TPlayer::CanChat() {     return !m_bChatBan; }


C++ Tarafı: Chat Yasağını Kontrol Etme

Kod:
// chat_handler.cpp void CChatHandler::HandleChatPacket(TPlayer *player, const char *message) {     if (!player->CanChat())     {         sys_log(0, "Player %s is chat banned and cannot send messages.", player->GetName());         return;     }     // Diğer chat işlemleri burada yapılır }

Python Tarafı

Kod:
from flask import Flask, render_template, request app = Flask(__name__) # Chat banlı oyuncuları depolayacağımız liste chat_banned_players = [] @app.route('/') def index():     return render_template('index.html', banned_players=chat_banned_players) @app.route('/ban_player', methods=['POST']) def ban_player():     player_name = request.form['player_name']     if player_name not in chat_banned_players:         chat_banned_players.append(player_name)     return render_template('index.html', banned_players=chat_banned_players) if __name__ == '__main__':     app.run(debug=True)


Sonuç​


Migo Metin2'nin açık kaynak koduna uygun bir chat ban sistemi yukarıdaki gibi C++ tarafında yazdik ha Bu şekilde chat mesajları denetlenir yasaklı kelimeler kontrol edilicek ve oyunculara chat yasağı uygulancak Python ile yönetim paneli ya da loglama sistemleri gibi ek özellikler de sunucuya entegre edilebilirsin brem Bu temel kod yapısını kendi Metin2'nin mevcut yapısına göre özelleştirmeniz gerekecek brem kısacası fonksiyon kütüphane değişkenleri kendine göre ayarla kolay ya yaparsın.
Metin2 Sunucularında Chat Ban Sistemi Nedir?

Metin2 özel sunucularında kullanıcıların güvenli ve düzenli bir sohbet ortamında bulunması oldukça önemlidir. Özellikle yoğun PvP odaklı sunucularda, bazı oyuncuların küfür, taciz, reklam linki paylaşımı gibi kötüye kullanım davranışları diğer oyuncuların deneyimini ciddi anlamda bozabilir. Bu nedenle, küfür veya reklam link paylaşımı olduğunda chat ban sistemi devreye girmeli ve otomatik olarak kullanıcılar cezalandırılmalıdır.

Chat Ban Sisteminin Amacı

Bu sistem sayesinde, Metin2 sunucusunda bulunan oyuncuların daha temiz ve olumlu bir sohbette bulunması sağlanır. Reklam linkleriyle dolu mesajlar ya da yüksek oranda küfür içeren konuşmalar engellenerek, sunucu disiplini korunur. Aynı zamanda, moderatörlerin manuel olarak müdahale etmesine gerek kalmadan, otomatik bir filtreleme mekanizması çalışır.

Chat Ban Sisteminin Teknik Yapısı

Genellikle bu tür sistemler, Python ya da C++ tabanlı sunucu tarafında çalışan komut dosyalarıyla entegre edilir. Örneğin, game server tarafında bir filtre modülü kurulur. Bu modül, her sohbet mesajını analiz eder. Eğer mesaj, belirlenen bir küfür listesindeki kelimeleri içeriyorsa veya tanımlanan URL formatlarına benzeyen ifadeler içeriyorsa, kullanıcıya otomatik olarak geçici ya da kalıcı bir chat ban uygulanır.

Filtreleme Nasıl Çalışır?

Filtreleme işlemi genellikle iki ana yöntemle yapılır:

1. Kelime bazlı filtreleme: Belirli kelimeler (örneğin küfürler) doğrudan listede kontrol edilir. Bu liste sunucuya özel olarak tanımlanabilir ve zamanla genişletilebilir.

2. Regex (düzenli ifade) tabanlı filtreleme: URL benzeri yapılar tespit edilir. Örneğin, 'http', 'www', '.com' gibi yapılar yakalanarak kullanıcı uyarılır ya da banlanır.

Chat Ban Sisteminin Avantajları

Metin2 lobby sunucularında bu sistemin kullanılması birçok avantaj sağlar:

- Oyuncuların daha konforlu bir sohbet ortamında bulunmasını sağlar.
- Reklam içerikli mesajların engellenmesi ile sunucu güvenliği artırılır.
- Moderasyon yükü azaltılır.
- Oto-ceza sistemi sayesinde kullanıcılar daha disiplinli hareket eder.

Sunucu Tarafında Uygulama Önerisi

Eğer C++ src üzerinde çalışıyorsanız, packet handler kısmında bir kontrol mekanizması oluşturabilirsiniz. Her chat packet geldiğinde, mesaj önce filtre modülünden geçirilir. Eğer pozitif sonuç alınırsa, ban system devreye girer ve kullanıcıya mesaj gönderilmeden önce ban uygulanır. Martysama gibi sistemlerde de benzer mantıkla Python betikleriyle bu işlem yapılabilir.

Sonuç

Küfür ve reklam linklerine karşı etkili bir chat ban sistemi, Metin2 özel sunucularının itibarını ve oyuncu memnuniyetini artırır. Bu sistemler, doğru yapılandırıldığında sunucu yöneticilerinin işini kolaylaştırırken, aynı zamanda kullanıcı deneyimini de olumlu yönde etkiler.


What is a Chat Ban System in Metin2 Servers?

In Metin2 private servers, ensuring that users have a safe and regulated chat environment is highly important. Especially on PvP-focused servers, some players may use bad behavior such as swearing, harassment, or sharing advertisement links, which can significantly ruin the experience for other players. Therefore, a chat ban system triggered by swear words or advertisement links should be activated automatically, and users should be punished accordingly.

Purpose of the Chat Ban System

Thanks to this system, players in Metin2 servers can enjoy cleaner and more positive chat environments. Messages full of advertisement links or containing excessive profanity are prevented, thus maintaining server discipline. Additionally, an automated filtering mechanism operates without requiring manual intervention from moderators.

Technical Structure of the Chat Ban System

These kinds of systems are usually integrated with command scripts running on the server side, based on Python or C++. For example, a filter module is installed on the game server side. This module analyzes every chat message. If the message contains words from a predefined swear word list or matches defined URL patterns, the user receives an automatic temporary or permanent chat ban.

How Does Filtering Work?

Filtering is generally done using two main methods:

1. Word-based filtering: Specific words (e.g., swear words) are checked directly against a list. This list can be customized per server and expanded over time.

2. Regex (regular expression)-based filtering: URL-like structures are detected. For example, structures like 'http', 'www', '.com' are identified, and the user is warned or banned.

Advantages of the Chat Ban System

Using this system in Metin2 lobby servers provides several advantages:

- Provides a more comfortable chat environment for players.
- Increases server security by blocking advertisement messages.
- Reduces moderation workload.
- Users act more disciplined thanks to the auto-punishment system.

Application Suggestions on Server Side

If you're working on C++ src, you can create a control mechanism within the packet handler. Every time a chat packet arrives, the message is passed through the filter module first. If a positive match occurs, the ban system activates and applies the ban before sending the message to the user. In systems like Martysama, similar logic can be implemented using Python scripts.

Conclusion

An effective chat ban system against swearing and advertisement links increases the reputation and player satisfaction of Metin2 private servers. When properly configured, these systems ease the work of server administrators while also positively impacting the user experience.
 

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

Benzer konular

Geri
Üst Alt