Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   l2phoenix эмблемы кланов (https://forum.zone-game.info/showthread.php?t=7223)

feelings 26.03.2010 11:10

l2phoenix эмблемы кланов
 
всем 3 ку! Не подскажите где храняться эмблемы кланов после их установки в игре. сборка l2phoenix 17 рева.

atukal 26.03.2010 12:21

Re: l2phoenix эмблемы кланов
 
в базе данных: колонки `crest`, `largecrest`, таблица `clan_data`

feelings 26.03.2010 12:31

Re: l2phoenix эмблемы кланов
 
тогда след вопрос:) как его прочитать?

atukal 29.03.2010 10:21

Re: l2phoenix эмблемы кланов
 
Вопрос не в том как его прочитать, а как его вывести. Иконки хранятся в формате DDS(DirectDraw Surface). таким образом нужен декодер данного формата в формат известный браузеру. В некоторых обвязках возможно есть этот декодер, попробуйте найти обвязку которая выводит иконки кланов, а далее дело техники.

feelings 29.03.2010 14:06

Re: l2phoenix эмблемы кланов
 
это я всё уже знаю, вот тока незнаю обвязку где выводит.

Dizband 29.03.2010 15:24

Re: l2phoenix эмблемы кланов
 
hellevil ....

atukal 30.03.2010 07:56

Re: l2phoenix эмблемы кланов
 
connection.php
PHP код:

<?php
$db_user 
"root"//your sql username goes here
$db_pass "*****"//your sql password goes here
$db_name "l2pdb";    //your database name goes here
$db_serv "localhost"//the address of the database goes here

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

?>

crest.php
PHP код:

<?php
/*
 * Функции
 */

function empty_image()
{
    @
header("Content-type: image/gif");
    @
header("Cache-Control: max-age=3600");
    
$img=imagecreatetruecolor(1,1);
    
imagecolortransparent($img0);
    
imagegif($img);
    
imagedestroy($img);
    exit();
}

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;
}

/*
 * Переменные
 */

$id = isset($_REQUEST["id"]) ? $_REQUEST["id"] : 0;

if (
$id == 0empty_image();

include(
"connection.php");
$query mysql_query("SELECT crest FROM clan_data WHERE clan_id = '$id'"$db);

if (@
mysql_num_rows($query) > 0)
{
  
$result = @mysql_fetch_assoc($query);
  
$clan_crest $result['crest'];
}
else
{
  
empty_image();
}

$file tmpfile();
fwrite($file$clan_crest);
fseek($file0);
$dds fread($file,4);

if (
$dds!=='DDS ') die("Error: изображение DDS не найдено");

//DDS header
$hdrSize readInt($file);
$hdrFlags readInt($file);
$imgHeight readInt($file)-4;
$imgWidth readInt($file);
$imgPitch readShort($file);

//DXT1 header
fseek($file84);

$dxt1 fread($file,4);

if (
$dxt1!=='DXT1') die("Error: не найден формат DX1");

//here we go
fseek($file128);

@
header ("Content-type: image/png");
@
header("Cache-Control: max-age=3600");
$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);
fclose($file);
exit;
?>

вывод изображения
Код HTML:

<img src='crest.php?id=270684088' />

feelings 31.03.2010 11:33

Re: l2phoenix эмблемы кланов
 
спс большое прикрутил, работает.

atukal 31.03.2010 16:39

Re: l2phoenix эмблемы кланов
 
Вложений: 1
Если ваш хостинг поддерживает mod_rewrite, и разрешены .htaccess, то можете воспользоваться более интересным решением:

.htaccess
PHP код:

RewriteEngine On
RewriteBase 
/
RewriteRule ^([ac])(\d+).pngcrest.php?prefix=$1&id=$

и использовать в html - <img src='a<ally_id>.png' /><img src='a<clan_id>.png' />
например, <IMG src="a268947921.png"><IMG src="c269160639.png">

Ametist 16.04.2010 13:58

Re: l2phoenix эмблемы кланов
 
Цитата:

Сообщение от atukal (Сообщение 61593)
connection.php
PHP код:

<?php
$db_user 
"root"//your sql username goes here
$db_pass "*****"//your sql password goes here
$db_name "l2pdb";    //your database name goes here
$db_serv "localhost"//the address of the database goes here

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

?>

crest.php
PHP код:

<?php
/*
 * Функции
 */

function empty_image()
{
    @
header("Content-type: image/gif");
    @
header("Cache-Control: max-age=3600");
    
$img=imagecreatetruecolor(1,1);
    
imagecolortransparent($img0);
    
imagegif($img);
    
imagedestroy($img);
    exit();
}

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;
}

/*
 * Переменные
 */

$id = isset($_REQUEST["id"]) ? $_REQUEST["id"] : 0;

if (
$id == 0empty_image();

include(
"connection.php");
$query mysql_query("SELECT crest FROM clan_data WHERE clan_id = '$id'"$db);

if (@
mysql_num_rows($query) > 0)
{
  
$result = @mysql_fetch_assoc($query);
  
$clan_crest $result['crest'];
}
else
{
  
empty_image();
}

$file tmpfile();
fwrite($file$clan_crest);
fseek($file0);
$dds fread($file,4);

if (
$dds!=='DDS ') die("Error: изображение DDS не найдено");

//DDS header
$hdrSize readInt($file);
$hdrFlags readInt($file);
$imgHeight readInt($file)-4;
$imgWidth readInt($file);
$imgPitch readShort($file);

//DXT1 header
fseek($file84);

$dxt1 fread($file,4);

if (
$dxt1!=='DXT1') die("Error: не найден формат DX1");

//here we go
fseek($file128);

@
header ("Content-type: image/png");
@
header("Cache-Control: max-age=3600");
$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);
fclose($file);
exit;
?>

вывод изображения
Код HTML:

<img src='crest.php?id=270684088' />

Попытался прицепить этот код на сайт, почему то не работает, к базе коннект есть.
Как я понимаю надо указать ведь путь к папке с эмблемами ?
Объясните поподробнее пожалуйста, atukal

Добавлено через 1 час 25 минут
Помогите пожалуйста ...


Текущее время: 08:24. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot