Guten Tag miteinander,
ich wurde drauf angesprochen, ob sich das umsetzen liese und dachte mir, da hockst dich jetzt einfach mal ran! Zunächst hatte ich den Gedanken, das ganze gegen e*g zu machen, allerdings dachte ich der Aufbau ist grundlegend sehr einfach gehalten.
Die Funktion ist wie gesagt eine Anzeige der Charaktere im Forenprofil - da dafür eine externe Verbindung notwegndig ist, wird mit diesem Paket eine Ableitung der Datenbankklasse mitgeliefert, mit der ihr die Verbindung zur Datenbank herstellen lassen könnt.
Ihr müsst zunächst im ACP unter System > Optionen > Metin2-Datenbankverbindung herstellen einige Optionen angeben. Da ich ungern mit Klartext arbeite habe ich auch offensichtliche Spalten als Konstante gesetzt, die ihr durch das ausfüllen definiert.
Ausnahmen hier: pid1, pid2, pid3, pid4
Ist das getan und alles funktionsfähig geht es weiter.
Unter Profil bearbeiten > Benutzerkonto besteht nun die Möglichkeit eine Verbindung zum Account des Spiels herzustellen (dies ist einmalig und der Account kann jederzeit geändert werden)
Hierbei wird geprüft, ob der Account existiert und ob der Passwort-Hash mit dem der Datenbank übereinstimmt. Sollte etwas nicht zutreffen, gibt es eine Fehlermeldung. Alle Eingaben sind durch escapeString($var) bzw mit intval($num) geschüzt.
Sind die Daten richtig, wird die AccountID ausgelesen und in der WCF-Datenbank für die weitere Verarbeitung gespeichert.
Existiert jetzt mindestens ein Charakter, wird im Profil eine Tabelle erzeugt, die so aussieht.
Es werden maximal 4 Charaktere angezeigt und für jeden der 4 geprüft, ob dieser existiert - sollte dies nicht der fall sein, wird die Tabelle abgeschlossen (siehe Screen)
Ich habe versucht soviele Fehlerquellen wie möglich auf einmal auszuschließen (z.B leere SQL-werte, die einen Fehler werfen) sollte euch dennoch mal einer auffallen, dürft ihr mir die gerne nennen.
Ich wünsche viel Spaß mit dem kleinen Plugin, das 851 (alt:1095) zeilen Code und Einstellungen in 14 (alt:12) Dateien beherbergt und freue mich über jedes Feedback/e*g spende
Die EXTRACT.zip entpacken und das darin enthaltene Paket in die Paketverwaltung des WBB laden.
Der Cache ist insgesamt 1 Stunde verfügbar, dannach wird dieser aktualisiert. Sollte dies nicht der Fall sein bitte ich um Rückmeldung um die Ursache zu finden. Es wird für jeden Benutzer eine Cache-Datei angelegt, die eine größe von jeweils 840 Bytes groß ist (also praktisch nicht existent)
####### Fehlermeldungen und deren Behebung #######
Quote:
- Wenn die Datenbankverbindung fehlschlägt wird das Passwort im Klartext ausgegeben
- Wenn man auf dem Profil die ganze Zeit aktualisiert wird der Server zu stark belastet
|
- Version 1.1.0 neu installieren und Vorgängerversionen deinstallieren
Quote:
Fatal error: Unable to find template 'metin2characterTableList'
|
- Mit Version 1.1.1 updaten
Quote:
- Eine Fehlerhafte Sprachvariable wird mitgeliefert (wcf.user.profile.metin2.character.alignment.aggre sive)
- Die Gesinnung wird bei genau -20000 Rangpunkten nicht mehr angezeigt
|
- Mit Version 1.1.3 updaten
Quote:
- Die Änderung des Benutzernamens ist nicht mehr möglich
|
- Mit Version 1.1.4 updaten
####### Changelog #######
V 1.0.1 (EXTRACT101.zip)
- behebt einen Fehler, der entsteht, wenn das error_reporting sehr empfindlich eingestellt ist.
V 1.0.2 (EXTRACT102.zip)
- Behebt einen Fehler, der auf jedem Profil die eigenen Charaktere anzeigt
V 1.0.3 (EXTRACT103.zip)
- Beugt einem Fehler vor, bei dem der Account aber keine Charaktere existieren und dadurch ein Fehlerhafter Query übergeben wird.
V 1.0.4 (EXTRACT 104.zip)
- Fügt eine fehlende Sprachvariable in allen 3 verfügbaren Sprachen hinzu
V 1.1.0 (EXTRACT 110.zip)
- Code komplett neu geschrieben
- Diverse Fehler behoben
- Cachesystem eingefügt
- Abfragen auf ein Minimum reduziert und optimiert
- Eigene Datenbankklasse als Ableitung um eine 2. Verbindung öffnen zu können
V 1.1.1 (EXTRACT 111.zip)
- Behebt einen Fehler der Dateibennenung eines Templates
- Beugt MySQL-Injections durch das Absichern von bestimmten Variablen vor
V 1.1.2 (EXTRACT 112.zip)
- Erweitert die Tabelle um die Gesinnung der Spieler (z.B Edel oder Aggressiv) anzuzeigen.
- Erweitert die Tabelle um die Erfahrung der Spieler anzuzeigen.
- Eine Option wurde eingebaut um die AccountID zurückzusetzen, damit keine Charaktere mehr angezeigt werden
- Eine Option wurde eingebaut um die Dauer des Caches selber einzustellen (Standard 1 Stunde)
- Die Reichsflagge wird nun nicht mehr bei jedem Charakter sondern nur einmal dafür aber größer angezeigt.
- Die Optionen für die Datenbankverbindung wurden mit den meist genuzten Werten befüllt
V 1.1.3 (EXTRACT 113.zip)
- Behebt einen Fehler, bei dem eine Fehlerhafte Sprachvariable mitgeliefert wird
- Behebt einen Fehler, bei dem die Gesinnung bei -20000 Punkten nicht mehr angezeigt wird
V 1.1.4 (EXTRACT 114.zip)
- Behebt einen Fehler, bei dem eine Änderung des Benutzernamens nicht mehr möglich war.
V 2.0.0 (WORK IN PROGRESS)
- Eine Option um eine Farbe auszuwählen wurde eingefügt**
- Prüfung, ob die ReichsID größer oder gleich 4 ist **
- Code vollständig ans WCF2 angepasst
- Ein Core-Paket, dass die wichtigsten Optionen mitliefert
- Auflisten der Gilden der Charaktere
** Die Kombination aus beidem soll den Serverbetreibern ermöglichen, ihre Charaktere farbig zu markieren um den GM_Status nochmals zu verdeutlichen. Da viele Server Ihre GMs auf die NPC und Mob-Reiche (außerhalb ID = 3) gelagert haben, wird die Prüfung eingebaut. Die Charakternamen werden dann in der im ACP angegebenen Farbe markiert
####### Modifikation #######
Auf Wunsch habe ich modifizierte Templates und kleinere Icons zur Verfügung gestellt, wodurch die Reichsflaggen kleiner und neben jedem Charakter angezeigt werden. Um dieses zu erreichen, bitte EXTRACT MOD.zip herunterladen und die in der "What to do.txt" enthaltenen Anweißungen zu befolgen.
Dieses "Paket" ist nicht installierbar und auch nicht updatefähig. Dateien müssen manuell ausgetauscht werden.
Diese Modifikation ist erst ab Version 1.1.2 möglich.