pvpsunuculari.com
PVP Sunucuları Forum Metin2 için Python ile Araç Geliştirme: Başlangıç Rehberi, Örnek Kod ve Kaynaklar

Python / C++ / C# · Tartışma

Kod Metin2 için Python ile Araç Geliştirme: Başlangıç Rehberi, Örnek Kod ve Kaynaklar

17 görüntülenme· 0 yanıt· 1 katılımcı
⚔ Savaşçı
🌟
Katılım: Oct 2025
Mesaj: 19
#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?
  • 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.
Giriş yapın ve bu konuya yanıt verin.