Gildenstats auf Homepage

Bitte benutzt das englische Supportforum!
User avatar
Troubadorix
Guardian
 
Posts: 4
Joined: Jan 22, 2008 01:00

Postby Troubadorix » Apr 29, 2008 12:19

Ich wollte für meine Gilkde ien Homepage erstellen und da aucvh die Stats der Gilde anziegen lassen(BP, RP, Rang etc.)

Ich hab auch schon hier im Forum gekuckt, aber nüx gefunden...

Geht das i-wie, also dass sich das automatisch aktualisiert oder muss man das jedes Mal manuell machen???

Gruß, Troubadorix
Last edited by Troubadorix on Apr 29, 2008 18:44, edited 2 times in total.
[img]http://spacepolice.sp.funpic.de/Bilder/nachpsd-tutorials.jpg[img]<br><br><strong>WOTANS ZORN 4 Ever</strong>

Ozerdin
Gryphon Knight
 
Posts: 234
Joined: May 07, 2005 00:00

Postby Ozerdin » Apr 29, 2008 13:33

Natürlich ist das möglich, am einfachsten ist das wohl mit einem kleinen PHP-Script.

Als ich das für unsere Seite gebastelt hatte, bin ich so vorgegangen
(nur ein Vorschlag, wie immer führen viele Wege zum Ziel, für mich stand die schnelle Umsetzung/Einfachheit im Vordergrund):

Voraussetzungen:
- ein bisschen PHP-Erfahrung (und ein Hoster, der PHP mit ausreichendem Funktionsumfang anbietet [vorallem der file() Befehl ist bei Gratis-Hostern afaik oft deaktiviert])
- eine Datenbank

Vorgehen:
1. eine Verbindung mit einer Datenbank aufbauen (bei mir MySQL)
2. die Daten daraus abfragen (ich hab 4 Spalten in der Tabelle; die Aktualisierungszeit, die GRPs, die GBPs und die Memberzahl)
3. anhand der Aktualisierungszeit mit der aktuellen Zeit im Vergleich überprüfen, ob ein Update notwendig ist (bei mir alle 3 Stunden)
4. falls ein Update notwendig ist, die Daten mit dem Herald synchronisieren (ein bisschen umständlich, da afaik vom Herald nirgendwo Raw-Daten ausgegeben werden, daher musste ich das durch parsen der HTML-Source lösen) und in die Datenbank schreiben
5. die Daten in jedem Fall anzeigen


Vollautomatisch ist das ganze nicht, es wird jedoch bei jedem Aufruf der Seite dieses kleine Script kurz ausgeführt, bei einer gut frequentierten Seite hast du also meist ziemlich aktuelle Daten. Wichtig ist auf jeden Fall, dass die Daten in einer DB gecached und nicht zu häufig aktualisiert werden, sonst führt dies zur Überlastung des Uthgard-, sowie deines Webservers.

Ich hoffe, das hilft dir weiter
MfG Ozerdin

User avatar
Blue
Developer
Developer
 
Posts: 15822
Joined: Apr 22, 2005 00:00

Postby Blue » Apr 29, 2008 14:00

Ich denke Metty kann hier auch nochmal vereinfachen indem er paar kleine Raw-Zugänge baut.
It's done when it's done. Thanks for your patience.
Every bug gets fixed. Sooner or later.

"It is an inescapable law of nature that the amount of satisfaction one gains from achieving something
is related to how hard it is and easy things can only elicit a fleeting superficial sort of pleasure."


Blue says, "you used macro tools or macro keyboard"
Pala says, "i am disabled. and i have a mechanic left hand that can be programed. its hard to play woith one hand"

[Appeal] Bxxxxxxxx: "why is RA first aid cann man i stealth use and not unstealth cann man ra if man use unstealth ?????????"
BannedUser: "i was not using automate game action my hand was fall on keyboard during i was sleep .... i was completly fall on keyboard ..."

User avatar
PNG
Gryphon Knight
 
Posts: 507
Joined: Sep 03, 2005 00:00

Postby PNG » Apr 29, 2008 15:13

Auslagerung der MOTD wäre eine nette Sache^^

PNG

User avatar
Girak
Gryphon Knight
 
Posts: 235
Joined: Oct 04, 2007 00:00

Postby Girak » Apr 29, 2008 15:55

Code: Select all
 
<?php

 function guildstats($guildname){
    if(!trim($guildname)) return false;
    $result=array();
    if($statfile=fopen("gstats.blub","r"))
      if (trim(fgets($statfile))>time()){
        $result['name']=trim(fgets($statfile));
        $result['img_id']=(int)trim(fgets($statfile));
        $result['rp']=(int)trim(fgets($statfile));
        $result['bp']=(int)trim(fgets($statfile));
        $result['members']=(int)trim(fgets($statfile));
      }else{
        fclose($statfile);
        $url="http://www.metty.the-bart.org/Herald/herald.php?view=stats&p1=guild&p2=RPs&p3=DESC&p5=Guild&p6=" .urlencode($guildname);
        if (!($fh=fopen($url,"r"))) return "no connection to UthgardHerald";
        while (!feof($fh)){
          $line=trim(fgets($fh));
          if (strpos($line,"<tr class=\"TBLmid\"><td>Guild</td><td>",0)!==false) break;     
        };
        $result['name']=substr($line,124,-16-strlen($guildname));
        $line=trim(fgets($fh));
        $result['img_id']=(int)substr($line,70,5);
        $line=trim(fgets($fh));
        $result['rp']=(int)str_replace(",","",substr($line,43,-10));
        $line=trim(fgets($fh));
        $result['bp']=(int)str_replace(",","",substr($line,44,-10));
        $line=trim(fgets($fh));
        $result['members']=(int)str_replace(",","",substr($line,39,-10));
        fclose($fh);
        $statfile=fopen("gstats.blub","w+");
        fwrite($statfile,(time()+300)."\r\n");
        foreach ($result as $key => $value){
          fwrite($statfile,$value."\r\n");   
        };
    };
    fclose($statfile);
    return $result;
 };

?>
Ist zwar ne hässliche Sache wie das umgesetzt ist, aber hab das grad nur nebenbei gemacht...
getestet ist das auch nicht wirklich gründlich^^
fehleranfällig ist das wahrscheinlich auch noch (z.B. falls der Herald offline ist oder das Design verändert wird)
<br><br>


Return to Support (de)

Who is online

Users browsing this forum: No registered users and 3 guests

Monday, 05. May 2025

Artwork and screen shots Copyright © 2001-2004 Mythic Entertainment, Inc. All rights reserved. Used with permission of Mythic Entertainment. Mythic Entertainment, the Mythic Entertainment logo, "Dark Age of Camelot," "Shrouded Isles," "Foundations," "New Frontiers," "Trials of Atlantis," "Catacombs," "Darkness Rising," the Dark Age of Camelot and subsequent logos, and the stylized Celtic knot are trademarks of Mythic Entertainment, Inc.

Valid XHTML & CSS | Original Design by: LernVid.com | Modified by Uthgard Staff