#25 · Konu Sahibi
02.08.2026 10:17
Metin2 ekosisteminde işini kolaylaştıran araçların çoğu Python ile yazılıyor: item_proto dönüştürücüler, drop tablosu üreticileri, log analizcileri, Discord duyuru botları...

Neden Python?
Örnek 1: item_proto.txt'yi okuyup CSV'ye çevirmek
Örnek 2: Sunucu online durumunu kontrol eden basit script
Örnek 3: Drop log'undan en çok düşen itemleri çıkarmak
Öğrenme Sırası Önerim
Uyarı
Başkasının sunucusuna müdahale eden, hile/bot amaçlı veya oyun istemcisine izinsiz enjekte eden araçlar bu başlığın konusu değildir; sadece kendi sunucunuzu yönetmeye yönelik araçlar paylaşalım.
Hangi aracı geliştirmek istiyorsunuz? İhtiyacınızı yazın, örnek kod ile birlikte ilerleyelim.

Neden Python?
- Metin2 client tarafı zaten Python tabanlı bir arayüz mantığı kullanıyor; sözdizimi tanıdık geliyor.
- Dosya işleme ve metin ayrıştırma (parsing) işleri çok kısa kodla çözülüyor.
- Discord, MySQL ve web tarafı için hazır kütüphaneler mevcut.
Örnek 1: item_proto.txt'yi okuyup CSV'ye çevirmek
import csv
with open("item_proto.txt", encoding="utf-8") as f:
rows = [line.rstrip("\n").split("\t") for line in f if line.strip()]
header, data = rows[0], rows[1:]
with open("item_proto.csv", "w", newline="", encoding="utf-8") as out:
w = csv.writer(out)
w.writerow(header)
w.writerows(data)
print(f"{len(data)} item aktarildi.")Örnek 2: Sunucu online durumunu kontrol eden basit script
import socket
def online(host, port=13000, timeout=3):
try:
with socket.create_connection((host, port), timeout):
return True
except OSError:
return False
print("Sunucu durumu:", "acik" if online("127.0.0.1") else "kapali")Örnek 3: Drop log'undan en çok düşen itemleri çıkarmak
from collections import Counter
import re
pattern = re.compile(r"ITEM:(\d+)")
with open("drop.log", encoding="utf-8", errors="ignore") as f:
ids = pattern.findall(f.read())
for item_id, adet in Counter(ids).most_common(10):
print(item_id, adet)Öğrenme Sırası Önerim
- Temel Python: dosya okuma/yazma, liste ve sözlük yapıları.
- Düzenli ifadeler (regex) — log ve proto dosyaları için şart.
- MySQL bağlantısı (pymysql) — player/account tablolarıyla çalışmak için.
- requests + discord.py — otomatik duyuru ve oy botları için.
- C++ temelleri — source tarafında değişiklik yapmak istediğinizde.
Uyarı
Başkasının sunucusuna müdahale eden, hile/bot amaçlı veya oyun istemcisine izinsiz enjekte eden araçlar bu başlığın konusu değildir; sadece kendi sunucunuzu yönetmeye yönelik araçlar paylaşalım.
Hangi aracı geliştirmek istiyorsunuz? İhtiyacınızı yazın, örnek kod ile birlikte ilerleyelim.