[FFXIV] Charakter Import

We have already announced it 2017, that we will end the development and support of EQdkp Plus. As we are not able anymore to effort the required time to maintain EQdkp Plus, and we didn't received any help, we have decided to end the complete project EQdkp Plus. Therefore, there will be one last release of EQdkp Plus.

All relevant information are already transferred to GitHub. Additional scripts, documentation and the Source Code is available at our GitHub Repository. The project tools like board, wiki etc. will be removed in ca. 2-3 months.

We want to thank you for your journey with EQdkp Plus over all these years, and wish you a lot of successful raids.

The EQdkp Plus Team
  • Hallo zusammen,


    ich beschäftige mich momentan damit einen Abgleich der Charaktere zu automatisieren.
    Dazu habe ich den Usern ein weiteres Feld gegeben um ihre Lodestone-ID einzutragen.
    Mittels einer Schleife durchlaufe ich die User und hole mir die Charakter Informationen von der XIVDB-Api ab.


    Das anlegen der Charaktere funktioniert soweit auch einwandfrei mittels:

    Code
    $jsondata = array(
        'name' => $strCharName,
        'level' => $classJob->level,
    );
    
    
    $this->pdh->put('member', 'addorupdate_member', array(0, $jsondata));

    Jetzt versuche ich noch verzweifelt die neu angelegten Charaktere dem richtigen User zuzuweisen, nur leider habe ich hier noch keine Möglichkeit entdeckt oder diese einfach überlesen.


    Kann mir jemand ein Beispiel liefern oder einen Anhaltspunkt wie die Verknüpfung zwischen Member und User hin bekomme?


    Vielen Dank
    BloodwolfsDE

  • PHP
    $intMemberID = $this->pdh->put('member', 'addorupdate_member', array(0, $jsondata));
    
    
    if($intMemberID > 0){
      $this->pdh->put('member', 'update_connection', array($intMemberID, $intUserID));
    }

    Viele Grüße,
    GodMod


    Bitte sendet mir keine unaufgeforderten Support-PNs. | Please don't send me unwanted support-PMs.
    Du willst dich bei mir bedanken: | You want to thank me:

    amazon_wishlist.jpg paypal_logo.jpg

  • Danke GodMode.


    Den Code habe ich so getestet nur leider verknüpft er mir die Member nicht mit dem User.
    Die IDs in den Variablen stimmen aber, die habe ich mir mal via "echo" im cronjob ausgeben lassen.


    Vielleicht hast du ja noch einen Tipp für mich.


    Hier ein paar Code Ausschnitte:


    Die Funktion "getClassID" wandelt mir einfach nur das Kürzel (Abbr) in die ID der jeweiligen Klasse um.
    Die Funktion "getJobAbbr" gibt mir das zur Klassen-ID passende Kürzel zurück.


    Sowohl beim Neu anlegen eines Members als auch beim aktualisieren wird keine Verknüpfung zum User angelegt.
    Wenn ich jetzt die Verknüpfung manuell mache und dann den cronjob starte werden mir alle Verknüpfungen wieder gelöscht.


    Gruß
    BloodwolfsDE

  • Du scheinst am Ende von deinem Skript den Cache nicht zu löschen.


    $this->pdh->process_hook_queue();


    Oder so ähnlich, bin gerade unterwegs.
    Weil aktuell führst du Schreibvorgange aus, sagst ihm aber nicht, ab wann er dann den Cache erneuern darf. Eventuell macht es Sinn, nach jedem member den Cache zu resetten. Kuck dir das mal beim wow Spiel an, dort wird das sicher gemacht beim Charimport Cronjob.


    Um sicher zu gehen, kannst du ja auch mal einen Blick in die Datenbank werfen, ob die Verbindungen wirklich eingetragen sind.

    Viele Grüße,
    GodMod


    Bitte sendet mir keine unaufgeforderten Support-PNs. | Please don't send me unwanted support-PMs.
    Du willst dich bei mir bedanken: | You want to thank me:

    amazon_wishlist.jpg paypal_logo.jpg

  • Würde es auch bei jedem Char das hook Queue ausführen. Macht nichts kaputt und ist sicherer, wenn man irgendwie zwischendrin die Seite besucht hat man schon die aktuellen Daten... So ein Import kann ja durchaus länger dauern. Generell bei wow im Import Ordner die character.php angucken, das macht genau das. Gibt es fürs Game Modul auch eine Schnittstelle das aufzurufen, siehe wow.class.php zeile 204. 212-219 sind nur dann nötig, wenn deine API (Also die Quelle) eine API Key braucht.


    Dann hast du quasi einen Import Button im backend, aber auch bei der Charakterverwaltung.

    Bitte sendet mir keine unaufgeforderten Support-PNs. | Please don't send me unwanted support-PMs.
    Du willst dich bei mir bedanken - Spenden | You want to thank me - Donate [Steam Wishlist]

  • Danke euch beiden.


    Das Hook Queue habe ich am ende von jedem User drin. Werde es aber mal nach jedem Member ausführen lassen.


    Die character.php aus dem WoW-Modul werde ich mir mal noch genauer anschauen. Mal sehen was sich damit alles basteln lässt :)
    Einen API-Key brauch man für die XIVDB-API nicht, man brauch eigentlich nur die Lodestone-ID des jeweiligen Charakters von der Offiziellen FFXIV Seite.



    Kleine Zwischenfrage, für mein Vorhaben habe ich den Usern ein neues Feld für die Lodestone-ID über die Administration gegeben. Kann man dieses auch über das Game-Modul machen oder ist es da nur möglich die Member-Felder zu definieren?


    LG

  • Aus dem Livestream Portalmodul:


    Viele Grüße,
    GodMod


    Bitte sendet mir keine unaufgeforderten Support-PNs. | Please don't send me unwanted support-PMs.
    Du willst dich bei mir bedanken: | You want to thank me:

    amazon_wishlist.jpg paypal_logo.jpg

  • Hallo zusammen,


    meine bisherigen Probleme konnte ich soweit lösen mit euren Tipps :-)


    Nun suche ich noch eine Möglichkeit den Avatar bzw. das Picture für die Charaktere und ggf. auch für die User zu setzen.
    Nur habe ich noch keinen Code gefunden wie ich das aktuelle Data Verzeichnis auslesen kann um die Bilder im entsprechenden Benutzer-Verzeichnis abzulegen.


    Für Tipps und/oder Code Beispiele wäre ich sehr dankbar :-)


    LG

  • Ab eqdkp plus 2.3 kann ein Spiel User avatare setzen. Wow macht das über einen entsprechenden hook (siehe hook Verzeichnis).

    Viele Grüße,
    GodMod


    Bitte sendet mir keine unaufgeforderten Support-PNs. | Please don't send me unwanted support-PMs.
    Du willst dich bei mir bedanken: | You want to thank me:

    amazon_wishlist.jpg paypal_logo.jpg

  • Um Dateien zu schreiben, wird ansonsten der pfh bzw. Plus_filehandler verwendet, der im Data Ordner schreibt. Die battlenet Klasse schreibt so Bilder etc. weg.

    Viele Grüße,
    GodMod


    Bitte sendet mir keine unaufgeforderten Support-PNs. | Please don't send me unwanted support-PMs.
    Du willst dich bei mir bedanken: | You want to thank me:

    amazon_wishlist.jpg paypal_logo.jpg

  • Im Object-Verzeichnis von WoW bin ich dann fündig geworden :-)


    So ganz durchgestiegen bin ich zwar noch nicht was den PFH betrifft, aber scheint schon mal mit folgendem Code zu klappen:

    PHP
    $strUserFolderPath = $this->pfh->FolderPath('users/' . $intUserID, 'files');
    $strUserAvatarFile = $strUserFolderPath . 'lodestone_avatar.jpg';
    @file_put_contents($strUserAvatarFile, @file_get_contents($obj->data->avatar));
  • Nächste Frage =O


    wann wird die install-Function der Game-Klasse immer ausgeführt?
    Immer nur bei der ersten Installation und wenn man in den Einstellungen Sprache bzw. Spiel wechselt und dort dann mit "Ja überschreiben" bzw "Nein, aber Standarddaten hinzufügen" weiter macht?


    Komplett überschreiben ist im laufenden Betrieb m.E. nicht optimal. Ergänzen wäre im Falle eines Updates optimal, wenn dann nicht alle Events usw. doppelt vorhanden wären.


    Da stellt sich mir die Frage, ist es z.Z. überhaupt möglich im Zuge eines Game-Updates die Events usw. zu ergänzen?

  • Die installGame methode wird immer bei der Änderung eines Spiels aufgerufen, also wenn man Spiel oder Sprache ändert.
    Wann Dateien überschrieben werden sollen oder nicht, regelt der $intOverwriteData parameter, wie du der Funktionsbeschreibung auch entnehmen kannst.


    Wenn bei einem Gameupdate neue Sachen hinzugefügt werden sollen, kann man hierfür eigenständige Updates erstellen.
    Bisher wird das aber noch von keinem Spiel genutzt, so dass eine Referenzimplementierung hierfür aktullefehlt.

    Viele Grüße,
    GodMod


    Bitte sendet mir keine unaufgeforderten Support-PNs. | Please don't send me unwanted support-PMs.
    Du willst dich bei mir bedanken: | You want to thank me:

    amazon_wishlist.jpg paypal_logo.jpg

  • Hmm das mit den eigenständigen Updates klingt gar nicht so schlecht.
    Auch wenn es hier noch keine Referenzen gibt, gibt es im Core oder irgend wo etwas was ich mir anschauen könnte um mich daran zu versuchen? :-)

  • Lass es lieber. Soweit ich das vom Code her sehe, sind Spielupdates nicht so berücksichtigt wie z.b. bei anderen Erweiterungen. Das hat der Kollege, der damals den Wartungsbereich gebaut hat, irgendwie nicht so bedacht, so dass ich für die 2.3 Anpassungen im Core vornehmen muss.

    Viele Grüße,
    GodMod


    Bitte sendet mir keine unaufgeforderten Support-PNs. | Please don't send me unwanted support-PMs.
    Du willst dich bei mir bedanken: | You want to thank me:

    amazon_wishlist.jpg paypal_logo.jpg

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!