Alles anzeigenimport mysql.connector
# Datenbankverbindung
conn = mysql.connector.connect(
host="127.0.0.1",
user="root",
password="dein_passwort",
database="account"
)
cursor = conn.cursor()
# Zu bannende Charaktere
charaktere = [
"Spieler1",
"Spieler2",
"Spieler3"
]
for name in charaktere:
# Account-ID über Charaktername ermitteln
cursor.execute("""
SELECT account.id
FROM player.player
JOIN account.account
ON player.player.account_id = account.id
WHERE player.player.name = %s
""", (name,))
result = cursor.fetchone()
if result:
account_id = result[0]
# Account sperren
cursor.execute(
"UPDATE account.account SET status='BLOCK' WHERE id=%s",
(account_id,)
)
print(f"{name} wurde gebannt.")
else:
print(f"{name} nicht gefunden.")
conn.commit()
cursor.close()
conn.close()
Das Skript:
- verbindet sich mit der MySQL-Datenbank,
- sucht anhand des Charakternamens den Account,
- setzt den Accountstatus auf
BLOCK(je nach Server-Core kann der Status auch anders heißen, z. B.OK,BLOCK,BANoder einavailDt-Feld).
Ein mögliches Vorgehen:
- Bei auffälligem Verhalten einen Verdachtswert erhöhen.
- Ab einem ersten Schwellenwert:
- Chat deaktivieren.
- Handel und Shops sperren.
- Teleportieren verhindern.
- Ab einem höheren Schwellenwert:
- Spieler automatisch trennen.
- Account für eine definierte Zeit sperren (z. B. 24 Stunden).
- Wiederholte Verstöße:
- Permanente Sperre nach manueller Prüfung.
Beispiel (C++-Logik):
if (player->GetSuspicion() >= 50)
{
player->DisableTrade(true);
player->DisablePrivateShop(true);
player->SendChatPacket(CHAT_TYPE_NOTICE,
"Dein Account wurde aufgrund verdächtigen Verhaltens vorübergehend eingeschränkt.");
}
if (player->GetSuspicion() >= 100)
{
player->Disconnect();
BanAccount(player->GetAccountID(), 24 * 60 * 60); // 24 Stunden
}
„Ja das sieht gut aus, der meverick weis wovon der da spricht. Oh diesen Monat wieder guter Umsatz ? Ja dann egal.“
MfG
GF