<?
// Anfang der Ausgabe
include ("inc_head_table.html");
// Hier Server eintragen auf dem gespielt wird (für Leerzeichen = %20)
$server = "DE%20Final%20Beta%203";
// Hier der Gildenname
$gildenname = "BlackEight";
// Die nächsten Zeilen sind wie im Forum erwähnt um das Array zu bekommen
$url = 'http://black-legion.info/guild_php.php?server='.$server.'&guild='.$gildenname;
$file = file_get_contents($url);
if(!$file) die("Fehler beim Öffnen von $url");
$guild = unserialize(gzuncompress($file));
//Hier Schreibe ich die chars schon mal in ein eigenes Array
$chars = $guild['character'];
//Wenn kein Charakter ausgewählt wurde ist die variable $charname nicht gesetzt und alle Chars werden ausgegeben
if(!isset($charname)) {
if(!isset($order)) $order = "level";
else $order = $order.",level"; ?>
<table width="100%" align="center" cellpadding="5" border="1" bordercolor="#999999" style="border-collapse:collapse;" bgcolor="#333333">
<tr><th>Rank</th>
<th><a href="index.php?unterseite=Ladder&order=charname">Name</a></th>
<th><a href="index.php?unterseite=Ladder&order=server">Server</a></th>
<th><a href="index.php?unterseite=Ladder&order=rasse">Rasse</a></th>
<th><a href="index.php?unterseite=Ladder&order=klasse">Klasse</a></th>
<th><a href="index.php?unterseite=Ladder&order=id_user">Spieler</a></th>
<th width="30"><a href="index.php?unterseite=Ladder">Level</a></th></tr><?
//Die Charaktergrundewerte sind in der Datenbank hinterlegt im table b8_chars und die User dazu im table b8_user
$query="SELECT * FROM b8_chars chars LEFT JOIN b8_user user ON chars.id_user = user.id ORDER BY $order DESC";
//Funktion gibt alle Chars aus
Charausgabe_Ladder($query, $guild); ?>
</table><?
} else {
//Hier nun wurde ein bestimmter Charakter ausgewählt und aus dem Array vom BLASC System wird die Position im Array rausgesucht
$idBLASC = getBLASCid($chars,$charname);
//Nun folgt die Ausgabe aller Informationen ?>
<table align="center" cellpadding="5" cellspacing="0" bgcolor="#222222" border="1" bordercolor="#FFFFFF">
<tr><th colspan="6"><h2><? echo $charname ?></h2></th></tr>
<tr><td>Geschlecht: </td><td bgcolor="#444444"><? echo $chars[$idBLASC]['sex'] ?></td>
<td>Gildenstatus: </td><td bgcolor="#444444"><? echo $chars[$idBLASC]['guild_title'] ?></td>
<td>Aktualsiert: </td><td bgcolor="#444444"><? echo $chars[$idBLASC]['lastupdate'] ?></td></tr>
<tr><td>Level: </td><td bgcolor="#444444"><? echo $chars[$idBLASC]['level'] ?></td>
<td>Rasse: </td><td bgcolor="#444444"><? echo $chars[$idBLASC]['race'] ?></td>
<td>Klasse: </td><td bgcolor="#444444"><? echo $chars[$idBLASC]['class'] ?></td></tr>
<tr><td colspan="6"><b>Berufe</b></td></tr><?
$berufe = getSkills($chars[$idBLASC]['skills'],"berufe");
for($i=0; $i<count($berufe); $i++) { ?>
<tr><td><? echo $berufe[$i]['name']; ?></td>
<td colspan="2"><? echo $berufe[$i]['value']." / ".$berufe[$i]['max']; ?></td>
<td colspan="3"> </td></tr><?
} ?>
<tr><td colspan="6"><b>Sekundäre Fertigkeiten</b></td></tr><?
$sekund = getSkills($chars[$idBLASC]['skills'],"sekundäre fertigkeiten");
for($i=0; $i<count($sekund); $i++) { ?>
<tr><td><? echo $sekund[$i]['name']; ?></td>
<td colspan="2"><? echo $sekund[$i]['value']." / ".$sekund[$i]['max']; ?></td>
<td colspan="3"> </td></tr><?
} ?>
</table><?
}
include ("inc_foot_table.html");
// Ende der Ausgabe
//Funktion gibt entweder Berufe oder Fertigkeiten zurück
function getSkills($skills, $wahl) {
if($wahl == "berufe") {
$array = getSkillValues($skills['Berufe']);
} else {
$array = getSkillValues($skills['Sekundäre Fertigkeiten']);
}
return $array;
}
//Zu jeweils den Berufen oder Fertigkeiten werden Namen rausgesucht und mit den Werten zusammen im Array zurückgegeben
function getSkillValues($skills) {
//Berufe
if(isset($skills['Alchimie']))
$name[] = "Alchimie";
if(isset($skills['Bergbau']))
$name[] = "Bergbau";
if(isset($skills['Schmiedekunst']))
$name[] = "Schmiedekunst";
if(isset($skills['Kräuterkunde']))
$name[] = "Kräuterkunde";
if(isset($skills['Lederverarbeitung']))
$name[] = "Lederverarbeitung";
if(isset($skills['Kürschnerei']))
$name[] = "Kürschnerei";
if(isset($skills['Ingenieurskunst']))
$name[] = "Ingenieurskunst";
if(isset($skills['Verzauberkunst']))
$name[] = "Verzauberkunst";
// Sekundäre Fertigkeiten
if(isset($skills['Kochkunst']))
$name[] = "Kochkunst";
if(isset($skills['Angeln']))
$name[] = "Angeln";
if(isset($skills['Erste Hilfe']))
$name[] = "Erste Hilfe";
if(isset($skills['Untoten-Reitkunst']))
$name[] = "Untoten-Reitkunst";
if(isset($skills['Kodoreiten']))
$name[] = "Kodoreiten";
if(isset($skills['Wolfreiten']))
$name[] = "Wolfreiten";
if(isset($name[0])) {
$skill[0]['name'] = $name[0];
$skill[0]['value'] = $skills[$name[0]]['value'];
$skill[0]['max'] = $skills[$name[0]]['max'];
}
if(isset($name[1])) {
$skill[1]['name'] = $name[1];
$skill[1]['value'] = $skills[$name[1]]['value'];
$skill[1]['max'] = $skills[$name[1]]['max'];
}
return $skill;
}
//BLASCid ist die Postition im Array $chars
function getBLASCid($chars,$charname) {
for($i=0; $i<count($chars); $i++) {
if($chars[$i]['name'] == $charname)
$id = $i;
}
return $id;
}
//Da nicht alle Chars von uns im System sind untersucht die Funktion ob ein Char enthalten ist
function charExistsInBLASC($chars,$charname) {
for($i=0; $i<count($chars); $i++) {
if($chars[$i]['name'] == $charname)
$exists = true;
}
return $exists;
}
//Die Chars die nicht im BLASC-System sind deren level wird von den Benutzern so gesetzt bei den anderen wird der BLASC Wert genommen
// falls dieser höher ist, denn dann ist dieser aktueller
function getBLASCLevel($chars, $charname, $level) {
for($i=0; $i<count($chars); $i++) {
if(($chars[$i]['name'] == $charname) && ($chars[$i]['level'] > $level))
$level = $chars[$i]['level'];
}
return $level;
}
//Funktion gibt anhand der Anfrage aus der DB alle Charaktere aus
function Charausgabe_Ladder($query, $guild) {
$ergebnis = Querry_to_Array($query);
//Für jeden Charakter wird einmal die Schleife durchlaufen
for($i=0; $i<count($ergebnis); $i++) {
//Wenn die Chars zur Allianz gehören wird die Zeile gelb sonst rot
if(($ergebnis[$i]['rasse'] == "Elf") || ($ergebnis[$i]['rasse'] == "Mensch") ||($ergebnis[$i]['rasse'] == "Zwerg") || ($ergebnis[$i]['rasse'] == "Gnom"))
$color = "yellow";
else
$color = "red"; ?>
<tr><th width="5%"><font color="#FFFFFF"><? echo $i+1 ?></font></th>
<th><font color="<? echo $color ?>"><?
//Falls ein BLASC eintrag existiert kann der Link für die Details angeklickt werden
if(charExistsInBLASC($guild['character'],$ergebnis[$i]['charname'])) { ?>
<a href="index.php?unterseite=Ladder&charname=<? echo $ergebnis[$i]['charname']; ?>"><? echo $ergebnis[$i]['charname']; ?></a><?
} else { echo $ergebnis[$i]['charname']; } ?></font></th>
<th><font color="<? echo $color ?>"><? echo $ergebnis[$i]['server'] ?></font></th>
<th><font color="<? echo $color ?>"><? echo $ergebnis[$i]['rasse'] ?></font></th>
<th><font color="<? echo $color ?>"><? echo $ergebnis[$i]['klasse'] ?></font></th>
<th><font color="<? echo $color ?>"><? echo Id_to_User($ergebnis[$i]['id_user']) ?></font></th>
<th><font color="<? echo $color ?>"><? echo getBLASCLevel($chars,$ergebnis[$i]['charname'], $ergebnis[$i]['level']); ?></font></th></tr><?
}
if (count($ergebnis) == '0') { ?>
<tr><th colspan="5"> Keine Chars vorhanden </th></tr> <?
}
}
/*
Struktur des Arrays aus dem BLASC System
server -> String
guild_name -> String
faction -> String
numchars -> int
character -> Array
name -> String
level -> int
race -> String
class -> String
sex -> char
guild_rank -> int (0 = gildenmeister, 1 = offizier, 2 = veteran, 3 = mitglied, 4 = initiand)
guild_title -> String
lastupdate -> sqldate
skills -> Array
Berufe -> Array
[{beruf}] -> Array
value -> int
max -> int
Sekundäre Fertigkeiten -> Array
[{Fertigkeit}] -> Array
value -> int
max -> int
*/
?>