SQL Befehle
Aus Invertika Wiki
Inhaltsverzeichnis |
Account zum Administrator hochstufen
In der Tabelle mana_accounts muss das Level (level) für den entsprechen Nutzer auf 255 setzten.
UPDATE mana_accounts SET level=255 WHERE username='MyAccount';
Mit sqlite3 würde das dann auf der Kommandozeile wie folgt aussehen:
sqlite3 invertika.db "UPDATE mana_accounts SET level=255 WHERE username='MyAccount';"
Datenbank anonymisieren
Um die Datenbank zu anonymisieren sollte man folgendes eingeben:
UPDATE mana_accounts SET username=random(), password=random(), email=random() UPDATE mana_characters SET name=random() UPDATE mana_guilds SET name=random() DELETE FROM mana_transactions
Questvariable abfragen
SQL:
SELECT * FROM mana_quests WHERE owner_id IN (SELECT id FROM mana_characters WHERE name = 'postremus') AND name='more_mountains_maden_kill_quest_var';
Konsole:
sqlite3 invertika.db "SELECT * FROM mana_quests WHERE owner_id IN (SELECT id FROM mana_characters WHERE name = 'postremus') AND name='more_mountains_maden_kill_quest_var';"
Questvariable setzen
SQL:
UPDATE mana_quests SET value=10 WHERE owner_id IN (SELECT id FROM mana_characters WHERE name = 'Ablu') AND name='selphi_timlet_bruce_quest';
Konsole:
sqlite3 invertika.db "UPDATE mana_quests SET value=10 WHERE owner_id IN (SELECT id FROM mana_characters WHERE name = 'Ablu') AND name='selphi_timlet_bruce_quest';"
Neues Passwort setzen
SQL:
UPDATE mana_accounts SET password="newhashvalue" WHERE username LIKE 'seeseekey';
Konsole:
sqlite3 invertika.db "UPDATE mana_accounts SET password='newhashvalue' WHERE username LIKE 'seeseekey';"
Skilllevel ermitteln
SELECT * FROM mana_char_skills INNER JOIN mana_characters ON mana_char_skills.char_id=mana_characters.id WHERE mana_characters.name = 'Vanity'
User hinzufügen
INSERT INTO mana_accounts (username, password, level, email, banned, registration, lastlogin) VALUES ('Blubb', 'XXXXX', 255, random(), 0, 0, 0);
Bei obigem Befehl wird für den E-Mail-Hash lediglich ein Zufallswert verwendet. "Blubb" müsste man durch den Spielernamen ersetzen, "XXX" durch die Password-Hash, welche sich wie folgt berechnet (im veralteten Semistable Server):
sha256(sha256(username+password))
Dies lässt sich auf der Kommandozeile mit einer Zeile wie folgt berechnen:
username="Benutzername"; password="Passwort"; echo -n "$username$password" | sha256sum - | grep -o "^[a-zA-Z0-9]*" | tr -d '\n' | sha256sum - | grep -o "^[a-zA-Z0-9]*" | tr -d '\n'
Im neuen Server muss anders gehashed werden (insgesamt 3 Mal), wobei das System noch im Umbruch ist.