Kann man das neben den banner anzeigen lassen?
Verfasst: 10.08.2003 01:58
Hi zusammen,
ich habe eine Frage.
Ich spiele Dark Age of Camelot, und bei diesem spiel gibt es Chroniken im XML Format. Ich habe mir im Netz ein Skript gesucht, was diese Chroniken anzeigt.
Jetzt wollte ich nur 3 Sachen immer im Forum angezeigt haben:
Reichspunkte, Characktere, Mitglieder
http://cuesheet.dyndns.org/test/guildinfo.php
Wie kann ich es rechts neben dem Banner anzeigen lassen?
Ich habe schon rumprobiert, aber nie was hinbekommen.
Schonmal Danke im vorraus
ich habe eine Frage.
Ich spiele Dark Age of Camelot, und bei diesem spiel gibt es Chroniken im XML Format. Ich habe mir im Netz ein Skript gesucht, was diese Chroniken anzeigt.
Jetzt wollte ich nur 3 Sachen immer im Forum angezeigt haben:
Reichspunkte, Characktere, Mitglieder
Code: Alles auswählen
<?php
$__XML_bad_chars = array(chr(0x0E),chr(0x01),chr(0x0C),chr(0x07),chr(0x03),chr(0x14),chr(0x16));
class XMLdocument {
var $XMLparser;
var $XMLdata;
var $XMLstack;
var $Error;
var $ErrorMsg;
function tag_open($parser, $name, $attrs) {
$x=&$this->XMLdata;
foreach($this->XMLstack as $el) {
if(!isset($x[$el])) {
$x[$el]=array(array());
$x=&$x[$el][0];
} else {
$x=&$x[$el][count($x[$el])-1];
}
}
foreach($attrs as $k=>$v) {
$attrs[$k]=utf8_decode($attrs[$k]);
}
if(!isset($x[$name])) {
$x[$name][0]['ATTRS']=$attrs;
} else {
$x[$name][count($x[$name])]['ATTRS']=$attrs;
}
array_push($this->XMLstack,$name);
}
function tag_close($parser, $name) {
array_pop($this->XMLstack);
}
function cdata($parser, $data) {
$x=&$this->XMLdata;
foreach($this->XMLstack as $el) {
$x=&$x[$el][count($x[$el])-1];
}
$x['CDATA'].=utf8_decode($data);
}
function parseXML($filename) {
global $__XML_bad_chars;
$this->XMLstack=array();
$this->XMLdata=array();
$this->XMLparser = xml_parser_create();
xml_set_object($this->XMLparser, &$this);
xml_set_element_handler($this->XMLparser, "tag_open", "tag_close");
xml_set_character_data_handler($this->XMLparser, "cdata");
if (!($fp = @fopen($filename, "r"))) {
$this->Error=true;
$this->ErrorMsg="could not open XML input";
return false;
}
while ($data = fread($fp, 4096)) {
if (!xml_parse($this->XMLparser, $data, feof($fp))) {
$data=str_replace($__XML_bad_chars,'',$data);
$this->Error=true;
$this->ErrorMsg=sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($this->XMLparser)),
xml_get_current_line_number($this->XMLparser));
return false;
}
}
xml_parser_free($this->XMLparser);
return true;
}
}
function __sf_cmp($a,$b) {
global $__sf_order;
$result=0;
foreach($__sf_order as $field=>$order) {
if($a[$field] > $b[$field]) {
$result=1;
} elseif ($a[$field] < $b[$field]) {
$result=-1;
}
if($order=="DESC") $result=-$result;
if($result!=0) break;
}
return $result;
}
function sort_by_field(&$a,$fields) {
global $__sf_order;
$__sf_order=$fields;
usort($a,'__sf_cmp');
}
function realmrank($totalrp) {
settype($totalrp,'integer');
if($totalrp==0) return '';
$i=floor(pow($totalrp,(1/3))/3);
while(($i*($i+1)*(2*$i+1)*25/6)<=$totalrp) $i++;
$rr=(floor($i/10)+1).'L'.($i%10);
return $rr;
}
class GuildInfo extends XMLdocument{
var $XMLdata;
var $Error;
var $ErrorMsg;
var $sortfield;
var $guildinfo;
function GuildInfo($filename="") {
$this->XMLdata=array();
$this->Error=false;
$this->ErrorMsg='';
if($filename) {
$this->parseXML($filename);
}
}
function getGuildInfo() {
$result=array();
if(is_array($this->XMLdata['GUILD_STATUS'][0]['GUILD'][0]['ATTRS'])) {
foreach($this->XMLdata['GUILD_STATUS'][0]['GUILD'][0]['ATTRS'] as $k=>$v) {
$result[strtolower($k)]=$v;
}
}
return $result;
}
function getCharacterList() {
$result=array();
if(is_array($this->XMLdata['GUILD_STATUS'][0]['GUILD'][0]['CHARACTER'])) {
foreach($this->XMLdata['GUILD_STATUS'][0]['GUILD'][0]['CHARACTER'] as $char) {
$result[]=array('name'=>$char['ATTRS']['NAME'],
'laston'=>$char['ATTRS']['LASTON'],
'race'=>$char['RACE'][0]['CDATA'],
'class'=>$char['CLASS'][0]['CDATA'],
'level'=>$char['LEVEL'][0]['CDATA'],
'guildrank'=>$char['GUILDRANK'][0]['CDATA'],
'totalrp'=>$char['TOTALRP'][0]['CDATA'],
'lastweekrp'=>$char['LASTWEEKRP'][0]['CDATA'],
'anon'=>$char['ANON'][0]['CDATA']
);
}
}
return $result;
}
function getAllianceList() {
$result=array();
if(is_array($this->XMLdata['GUILD_STATUS'][0]['GUILD'][0]['ALLIANCELIST'][0]['ALLIANCEMEMBER'])) {
foreach($this->XMLdata['GUILD_STATUS'][0]['GUILD'][0]['ALLIANCELIST'][0]['ALLIANCEMEMBER'] as $ally) {
$result[]=array('name'=>$ally['ALNAME'][0]['CDATA'],
'guildid'=>$ally['ALGUILDID'][0]['CDATA'],
'totalrp'=>$ally['ALTOTALRP'][0]['CDATA']);
}
}
return $result;
}
function getTopCrafterList($type) {
$result=array();
if(is_array($this->XMLdata['GUILD_STATUS'][0]['GUILD'][0]['TOP'])) {
foreach($this->XMLdata['GUILD_STATUS'][0]['GUILD'][0]['TOP'] as $toplist) {
if($toplist['ATTRS']['TYPE']==$type && is_array($toplist['TOP_CHAR'])) {
foreach($toplist['TOP_CHAR'] as $crafter) {
$result[]=array('name'=>$crafter['ATTRS']['NAME'],
'point'=>$crafter['ATTRS']['POINT']);
}
}
}
}
return $result;
}
}
$server='Avalon';
$guild_id=1423;
$gi=new GuildInfo(sprintf('http://www.camelot-europe.com/herald/servers/%s/guilds/%s.xml',
$server,$guild_id));
if($gi->Error) die($gi->ErrorMsg);
$info=$gi->getGuildInfo();
?>
Reichspunkte: <?=$info['guildrp']?> - Chars: <?=$info['activechars']?> - Mitglieder: <?=$info['activemembers']?><br>
Wie kann ich es rechts neben dem Banner anzeigen lassen?
Ich habe schon rumprobiert, aber nie was hinbekommen.
Schonmal Danke im vorraus