I was looking for this script on this forum but could not found it.
A did a shot of converting the script from L2 OFF to L2J. While browsing for some help, I found the already converted version.
Happy to share it with you!
Greetings Str3ngth!
crest.php
-----------
<?
if(!empty($_GET['clan_crest'])){
$name = 'Crest';
$crest = $_GET['clan_crest'];
}
else if(!empty($_GET['ally_crest'])){
$name = 'AllyCrest';
$crest = $_GET['ally_crest'];
}
else
die('No Crest!');
$file = fopen('ftp://localhost/'.$name.'_'.$crest.'.bmp', 'r'); //fopen($filename,'rb');
$dds = fread($file,4);
if ($dds!=='DDS ') die("Error: no hay imagen DDS");
//DDS header
$hdrSize = readInt($file);
$hdrFlags = readInt($file);
$imgHeight = readInt($file)-4;
$imgWidth = readInt($file);
$imgPitch = readShort($file);
//DXT1 header
fseek($file, 84);
$dxt1 = fread($file,4);
if ($dxt1!=='DXT1') die("Error: no es formato DX1");
//here we go
fseek($file, 128);
header ("Content-type: image/png");
$img=imagecreatetruecolor($imgWidth,$imgHeight);
for ($y=-1; $y<$imgHeight/4; $y++)
{
for ($x=0; $x<$imgWidth/4; $x++)
{
$color0_16 = readShort($file);
$color1_16 = readShort($file);
$r0 = ($color0_16 >> 11) << 3;
$g0 = (($color0_16 >> 5) & 63) << 2;
$b0 = ($color0_16 & 31) << 3;
$r1 = ($color1_16 >> 11) << 3;
$g1 = (($color1_16 >> 5) & 63) << 2;
$b1 = ($color1_16 & 31) << 3;
$color0_32 = imagecolorallocate($img,$r0,$g0,$b0);
$color1_32 = imagecolorallocate($img,$r1,$g1,$b1);
$color01_32 = imagecolorallocate($img,$r0/2+$r1/2,$g0/2+$g1/2,$b0/2+$b1/2);
$black = imagecolorallocate($img,0,0,0);
$data = readInt($file);
for ($yy=0;$yy<4;$yy++)
{
for ($xx=0;$xx<4;$xx++)
{
$bb = $data & 3;
$data = $data >> 2;
switch ($bb)
{
case 0: $c = $color0_32; break;
case 1: $c = $color1_32; break;
case 2: $c = $color01_32; break;
default: $c = $black; break;
}
imagesetpixel($img,$x*4+$xx,$y*4+$yy,$c);
}
}
}
}
imagepng($img);
## Functions needed
function readInt($file)
{
$b4 = ord(fgetc($file));
$b3 = ord(fgetc($file));
$b2 = ord(fgetc($file));
$b1 = ord(fgetc($file));
return ($b1<<24)|($b2<<16)|($b3<<8)|$b4;
}
function readShort($file)
{
$b2 = ord(fgetc($file));
$b1 = ord(fgetc($file));
return ($b1<<8)|$b2;
}
?>
heroes.php
-----------
<html>
<head>
<title>Heroes</title>
<style>
body {
margin: 0px;
padding: 0px;
background: #2E0601;
color: #ffffff;
font-family: tahoma, verdana;
font-size: 8pt;
}
td {
font-family: tahoma, verdana;
font-size: 8pt;
margin: 0;
color: #ffffff;
}
b {
font-weight: bold;
color: #84c3f8;
}
A {
color: #ffe155;
text-decoration: none;
}
A:link { color: #ffe155; }
A:visited { color:#e8a400; }
A:active { color: #ffff99; }
A:hover { color: #ffff99; text-decoration: underline; }
.tabletitle {
color: #FFFFFF;
background-color: #4B150E;
border-width: 2; border-style: solid;
border-color: #000000;
}
</style>
</head>
<body>
<center>
<table class='info'>
<tr class='info'><td align='center'><b>Current Heroes</b></td></tr>
</table>
<?
$class_list=array(
0=>"Fighter",1=>"Warrior",2=>"Gladiator",3=>"Warlord",4=>"Knight",5=>"Paladin",6=>"Dark Avenger",7=>"Rogue",
8=>"Treasure Hunter",9=>"Hawkeye",10=>"Mage",11=>"Wizard",12=>"Sorcerer",13=>"Necromancer",14=>"Warlock",15=>"Cleric",
16=>"Bishop",17=>"Prophet",18=>"Elven Fighter",19=>"Elven Knight",20=>"Temple Knight",21=>"Swordsinger",22=>"Elven Scout",23=>"Plains Walker",
24=>"Silver Ranger",25=>"Elven Mage",26=>" Elven Wizard",27=>" Spellsinger",28=>"Elemental Summoner ",29=>"Oracle",
30=>"Elder",31=>"Dark Fighter",32=>"Palus Knightr",33=>"Shillien Knight",34=>"Bladedancer",35=>"Assasin",36=>"Abyss Walker",
37=>"Phantom Ranger",38=>"Dark Mage",39=>"Dark Wizard",40=>"Spellhowler",41=>"Phantom Summoner",42=>"Shillien Oracle",43=>"Shilien Elder",
44=>"Orc Fighter",45=>"Orc Raider",46=>"Destroyer",47=>"Orc Monk",48=>"Tyrant",49=>"Orc Mage",50=>"Orc Shaman",51=>"Overlord",
52=>"Warcryer",53=>"Dwarven Fighter",54=>"Scavenger",55=>"Bounty Hunter",56=>"Artisan", 57=> "Warsmith",
88=>"Duelist",89=>"Dreadnought",90=>"Phoenix Knight",91=>"Hell Knight",92=>"Sagittarius",93=>"Adventurer",94=>"Archmage",95=>"Soultaker",
96=>"Arcana Lord",97=>"Cardinal",98=>"Hierophant",99=>"Evas Templar",100=>"Sword Muse",101=>"Wind Rider",102=>"Moonlight Sentinel",
103=>"Mystic Muse",104=>"Elemental Master",105=>"Evas Saint",106=>"Shillien Templar",107=>"Spectral Dancer",108=>"Ghost Hunter",
109=>"Ghost Sentinel",110=>"Storm Screamer",111=>"Spectral Master",112=>"Shillien Saint",113=>"Titan",114=>"Grand Khavatari",
115=>"Dominator",116=>"Doomcryer",117=>"Fortune Seeker",118=>"Maestro",
123=>"Male Soldier",124=>"Female Soldier",125=>"Trooper",126=>"Warder",127=>"Berserker",
128=>"Male Soulbreaker",129=>"Female Soulbreaker",130=>"Arbalester",131=>"Doombringer",
132=>"Male Soulhound",133=>"Female Soulhound",134=>"Trickster",135=>"Inspector",136=>"Judicator"
);
// db config
$db_user = "root"; //your sql username goes here
$db_pass = ""; //your sql password goes here
$db_name = "l2jdb; //your database name goes here
$db_serv = "localhost"; //the address of the database goes here
// db connection!
$db = mysql_connect ( $db_serv, $db_user, $db_pass ) or die ("Coudn't connect to [$db_serv]");
mysql_select_db ( $db_name );
function do_query($query) {
$arr = array();
$result = mssql_query($query) or die("Error SQL: ".mssql_get_last_message());
for ($x=0; $arr[$x] = mssql_fetch_assoc($result); $x++);
unset($arr[count($arr)-1]);
return $arr;
}
$query = mysql_query("SELECT char_name,olympiad_nobles.class_id as 'class_id',clan_name as 'pname', ally_name as 'aname', clan_data.crest_id as 'pcrest',ally_crest_id as 'acrest',competitions_won as 'win_count'
FROM characters
LEFT JOIN clan_data ON clan_data.clan_Id = characters.clanId
INNER JOIN olympiad_nobles ON olympiad_nobles.charId = characters.charId
WHERE competitions_won > 0
ORDER BY class_id
");
$heroes_actuales = mysql_query($query);
if (sizeof($heroes_actuales) == 0) echo "No heroes found.";
else {
echo "
<table class='info'><tr bgcolor='333333' align='center'>\n
<tr bgcolor='333333' align='center'>
<td width='24%' align='left'><b>Name</b></td>
<td width='24%' align='left'><b>Class</b></td>
<td width='24%' align='left'><b>Clan</b></td>
<td width='24%' align='left'><b>Alliance</b></td>
<td width='4%' align='left'><b>Wins</b></td>
</tr>
";
$i=0;
foreach($heroes_actuales as $hero) {
if (!($i%2)) echo "<tr bgcolor='000000' align='center'>";
else echo "<tr bgcolor='333333' align='center'>";
echo "
<td align='left'>".$hero['char_name']."</td>
<td align='left'>".$class_list[$hero['class_id']]."</td>
<td align='left'>
";
if ($hero['pcrest'] != 0) echo "<img height='12' src='crest.php?clan_crest=".$hero['pcrest']."'> ";
echo $hero['pname']."</td><td align='left'>";
if ($hero['acrest'] != 0) echo "<img height='12' src='crest.php?ally_crest=".$hero['acrest']."'> ";
echo $hero['aname']."</td><td align='left'>".$hero['win_count']."</td></tr>";
$i++;
}
echo "</table>";
}
?>
<body>
</html>
Credits: Gio - L2J Forum