Skip to content

[SHARE] Hero status Script L2J

Featured Replies

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!

 

currentheros.png

 

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  

tested and working ?

nice work, ths for this share!

please use a [share] prefix in topic title

omggg nice ... thanks!

Great share bro!!!!!!! Keep the good work!

  • 1 month later...

Parse error: parse error in C:\www\heroes.php on line 68

 

:P :P :P :P

 

$db_serv = "localhost"; //the address of the database goes here

// db connection!                    <- Line 68

$db = mysql_connect ( $db_serv, $db_user, $db_pass ) or die ("Coudn't connect to [$db_serv]");

I have the same problem.

 

Parse error: syntax error, unexpected T_DNUMBER in /****/****/heroes.php on line 67

I was looking for this script for a long time. Only one thing how do we make then work together because I added then to my hero page and nothing happened.

Any clue on how to make then work?

Thank you.

about the error he missed a " on line 66 right after l2jdb.

 

it look like this: $db_name = "l2jdb; //your database name goes here

 

it should be like this: $db_name = "l2jdb"; //your database name goes here

 

sorry for the double post

i have these problem

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\own\heroes.php on line 100

 

the line 100 says

 

if (!($i%2)) echo "<tr bgcolor='000000' align='center'>";

 

What its bad?

  • 3 weeks later...

I have the same problem also. Anybody know how to fix this?

Thanks

if (!($i%2)){ echo "<tr bgcolor='000000' align='center'>"};

 

I'm curious, how do you get the crests from the server?

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.