Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

RusRo server forum _ Poring Club _ Юзербары-информеры

Автор: ZeroTheGreat 12.6.2007, 6:24

How it's made emo_ro32.gif Я думаю, это интересует многих людей, но осваивать язык PHP или Perl ради этого захочется далеко не всем. Знающие люди, обращаюсь к Вам: напишите максимально доступное руководство по созданию таких юзербаров (отображение профы, уровня, статуса игрока), если Вас не затруднит. Заранее emo_ro44.gif

Автор: Ino 12.6.2007, 21:48

*_*

Автор: ZeroTheGreat 13.6.2007, 1:09

Не разгадал смысл смайла emo_ro33.gif Вот у тебя в приписке такой юзербар, не сложно ли будет объяснить или свести с человеком, который объяснит как такие делать без углубленного знания языка? Я уверен, что существует некий шаблон, например, конкретно для нашего сервера, хотелось бы его увидеть.

Автор: spankme 13.6.2007, 1:40

действительно *_*...
без глубокого знания оно можно, только вот перманентно стоящий сервер с рабочим пхп, который будет это считать, надо завести.. а вот это уже не каждому по силам ТТ

Автор: Ino 13.6.2007, 2:32

Поскольку доступа к базе нету, то просто скрипт, который парсит топ по имени в качестве параметра, правда форум не даст поместить в качестве ссылки на картинку ссылку на php-скрипт, могу рассказать пару особенностей в личку, но без знания языка все равно не напишешь. Разве что кто нить постарается для родново сервира и напишет общий скриптег для фсех *_*

Автор: ZeroTheGreat 13.6.2007, 2:54

Общий скрипт, как понимаю, написать сложно, но неужели нет шаблона, в который достаточно вставить ник чара (какой-либо его определитель)? Или это одно и то же?

P.S. Язык даже не начинал изучать, полный нуб в этом деле smile.gif

Автор: Ino 13.6.2007, 13:53

Хмм, да нет, не очень сложно, мой скрипт в принципе общий (воспринимает в качестве параметра имя персонажа и находит его параметры), но пока есть пара недостатков - проблема с отображением русских символов и баннер только Outlaw *_*

Автор: Hellion 13.6.2007, 14:16

Ино, кинь в личку плиз - антиресно)

Автор: ZooSublimation 13.6.2007, 14:52

и мне, если не жалко. Баннер можно и перерисовать. а вот скрипт хотелось бы глянуть

Автор: Ino 13.6.2007, 19:04

Ой, фкучю личек кидать линива, вот вам файл со скриптом и небольшой гайдик (=
 outlaw.php ( 3.52 килобайт ) : 55

Алгоритм глупый, и, если администрация изменит код страницы топа игроков, его придется переделывать *_*
На сервер заливаем скрипт и нужный баннер размером 502*73 (можно менять, но тогда в скрипте нужно менять координаты текста). Да, и, поскольку писалось это дело для своей гильды, то названии гильдии там задано жестко, тоже менять придется.
Поскольку форум в теги [IMG] позволяет вставлять только ссылки на картинки, то на сервер (если это apache) в папку со скриптом нужно всунуть файл .htaccess с таким кодом

Цитата
RewriteEngine On
RewriteRule ^.htaccess$ - [F]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/(.+)/outlaw.jpg$ /outlaw.php?name=$2&mode=$1 [L]

Это позволит задавать ссылку вида host/high/I n o/outlaw.jpg например, которая через регулярки разобъется на параметры и перенаправит на скрипт. Ну, названия outlaw.php, outlaw.jpg естественно менять нужно и в названиях файлов и в .htaccess.
Первый параметр (high/normal) определяет в каком из двух топов искать чара, а второй его ник.
Вроде все.

Автор: ZeroTheGreat 13.6.2007, 19:49

Предлагаю составить гайд в виде вопрос-ответ. Я знаю, это интересно многим, поэтому прошу разобрать все по винтикам.

Цитата(Ino @ 13.6.2007, 20:04) *
На сервер заливаем скрипт и нужный баннер

На какой сервер?
Цитата(Ino @ 13.6.2007, 20:04) *
Поскольку форум в теги [IMG] позволяет вставлять только ссылки на картинки, то на сервер (если это apache) в папку со скриптом нужно всунуть файл .htaccess с таким кодом
Цитата

RewriteEngine On
RewriteRule ^.htaccess$ - [F]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/(.+)/outlaw.jpg$ /outlaw.php?name=$2&mode=$1 [L]


Что за apache?
Цитата(Ino @ 13.6.2007, 20:04) *
Это позволит задавать ссылку вида host/high/I n o/outlaw.jpg например, которая через регулярки разобъется на параметры и перенаправит на скрипт

Что за регулярки?

Очень жду ответа smile.gif

Автор: Ino 13.6.2007, 20:07

1. Любой хост
2. Апач - сервир такой. http://www.apache.org/
3. http://rsdn.ru/article/alg/regular.xml

Автор: ZeroTheGreat 15.6.2007, 8:33

По шагам:

1. Создание сервера. Допустимо ли создание сервера, например, на narod.ru?
2. Создание фалов.
2.1. Создание юзербара
2.2. Создание php-файла
2.3. Создание htaccess-файла Я так понял, ТОЛЬКО для apache.org?
3. Структура php- и htaccess-файлов.
3.1 PHP

Цитата
<?

$banner_image = "http://alnar.net/img.jpg";
$banner_link = "http://rusro2.com/";
function GetMyLevel($name)
{
$myinfo = NULL;
$found = false;
$fileIndex = 1;
if ($name == 'inosage') {$name = 'И н о';}
while (!$found)
{

$f = fopen("http://rusro2.com/top.php?mode=".$_GET['mode']."&page=".$fileIndex, "r");

if ($f != NULL)
{
while (!feof($f))
{
$tstr = fgets($f);
$iname = stristr(trim($tstr), $name);
if (strpos(trim($tstr), $name))
{
//echo "Name: $name<br>\n";
$myinfo['name'] = $name;
if ($name == 'И н о') {$myinfo['name'] = 'I n o';}

$tstr = fgets($f);
if (strpos(trim($tstr),"offline")) {$ionline = "Offline";}
if (strpos(trim($tstr),"online")) {$ionline = "Online";}

//echo "Status: ".(($ionline !== false)?$ionline:"Offline")."<br>\n";
$myinfo['status'] = $ionline;
//echo "Status: ".$myinfo['status']."<br>\n";


/*$tstr = fgets($f);
$tstr = fgets($f);
$tstr = fgets($f);
echo $tstr."<br>\n";
$iguild = strip_tags($tstr);
echo "Guild: $iguild<br>\n";*/
$myinfo['guild'] = 'Outlaw';

$tstr = fgets($f);
$tstr = fgets($f);
$tstr = fgets($f);
$tstr = fgets($f);
$iprof = strip_tags($tstr);
//echo "Profession: $iprof<br>\n";
$myinfo['prof'] = $iprof;

$tstr = fgets($f);
$ibase = strip_tags($tstr);
//echo "Base level: $ibase";
$myinfo['base'] = $ibase;

$tstr = fgets($f);
$ijob = strip_tags($tstr);
//echo "Job level: $ijob";
$myinfo['job'] = $ijob;
//echo $name." - ".$iprof." ( ".$ibase."/ ".$ijob.") [".$iguild."]<br /> Status: ".$ionline."\n";;
$found = true;
break;
}
}

fclose($f);
$fileIndex += 1;
} else {
break;
}
}
$myinfo['prof']=strrev(substr(strrev($myinfo['prof']),1));
$myinfo['base']=strrev(substr(strrev($myinfo['base']),1));
$myinfo['job']=strrev(substr(strrev($myinfo['job']),1));
return $myinfo;
}


function PrintBanner()
{
Header("Pragma: no-cache");

$imf = $GLOBALS['banner_image'];
$fn = fopen($imf, "r");

if ($fn != false)
{
fclose($fn);
header("Content-Type: image/jpg");
$im = imagecreatefromjpeg($imf);
$orange = imagecolorallocate($im, 255, 255, 255);
$myinfo = GetMyLevel(isset($_GET['name'])?$_GET['name']:"I n o");
$string1 = $myinfo['name']." - ".nl2br($myinfo['prof'])." (".$myinfo['base']."/".$myinfo['job'].") [ ".$myinfo['guild']." ] ";
$string2 = $myinfo['status'];
imagestring($im, 3, 8, 8, $string1, $orange);
imagestring($im, 3, 8, 35, $string2, $orange);
imagejpeg($im);
imagedestroy($im);
exit;
}

header("Content-type: image/png");
$im = @ImageCreate (50, 15) or die ("Cannot Initialize new GD image stream");
$background_color = ImageColorAllocate($im, 225, 130, 130);
$text_color = ImageColorAllocate ($im, 0, 0, 0);
ImageString ($im, 2, 4, 1, "NO FILE", $text_color);
ImagePng($im);
}

PrintBanner();
//GetMyLevel($_GET['name']);

?>


$banner_image = "http://alnar.net/img.jpg"; - нужна прямая ссылка на jpg-файл (.jpg на конце)?
if ($name == 'inosage') {$name = 'И н о';} - первый параметр ник и профа подряд английскими буквами? Т.е. smiththegreatblacksmith для моего кузнеца? Второй параметр - просто ник, верно? И почему у тебя, профессора, стоит sage?
if ($name == 'И н о') {$myinfo['name'] = 'I n o';} - первый параметр - ник в игре, что означает второй?
$myinfo['guild'] = 'Outlaw'; - тут просто заменить на свою гильдию?
3.2 HTACCESS
Цитата
RewriteEngine On
RewriteRule ^.htaccess$ - [F]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/(.+)/outlaw.jpg$ /outlaw.php?name=$2&mode=$1 [L]

Должен выглядеть так?
Цитата
RewriteEngine On
RewriteRule http://сервер/каталоги/файл.htaccess$ - [F]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule http://сервер/каталоги/файл.jpg$ /(тут надо что-нибудь вставить?)outlaw.php?name=ник_чара&mode=режим (normal или high) [L]

4. Загрузка всех трех (двух?) файлов на сервер. Обязательно ли создавать host/normal(high)/ник_чара/? Туда скинуть все три (два) файла?
5. Поставить в подпись http://сервер/каталоги/файл.jpg, окруженный IMG-тегами

Все верно? У меня так ничего не вышло, отобразился лишь сам баннер. С координатами позже, ибо промежуточного результата нет sad.gif

Автор: Night 15.6.2007, 9:32

narod.ru уже стал предоставлять php? Оо

Автор: Ino 15.6.2007, 10:26

1. Хост нужен тот, который допускает выполнение .php скриптов.
2.3 Файл .htaccess задает правила доступа к каталогу, в котором он находится. То, что в нем написано сейчас - правила для модуля modrewrite, заданные с помощью регулярных выражений.

RewriteRule ^(.+)/(.+)/outlaw.jpg$ /outlaw.php?name=$2&mode=$1 [L]

Эта строка при получении адреса вида host/prof/name/outlaw.jpg вытягивает из него два параметра prof и name и перенаправляет их на скрипт host/outlaw.php?name=name&mode=prof; Это нужно для того, чтобы была возможность сунуть картинку в приписку, т.к. ссылка на скрипт там не допускается.
Сам файл .htaccess может лежать в любом каталоге хоста и будет регулировать правила доступа только к этому каталогу и к каталогам, вложенным в него (ну и файлам в них).
3.1

Цитата
$banner_image = "http://alnar.net/img.jpg";


Просто ссылка на картинку, на которо это дело рисуется.

Цитата
if ($name == 'inosage') {$name = 'И н о';}
if ($name == 'И н о') {$myinfo['name'] = 'I n o';}

Это просто тупая подпорка из-за проблем с русскими никами (у моей профки ник русский и отображается некорректно), можно не обращать внимания =)

Цитата
$myinfo['guild'] = 'Outlaw';

Да
3.2 .htaccess здесь менять не нужно просто скинуть в каталог. Изменить, можно, при желании название картинки (outlaw.jpg) и название скрипта (outlaw.php)
4. Создавать подкаталоги вообще не нужно, эти три файла (скрипт, .htaccess, картинка) кидаются в корень. Адрес набирается таким образом (host/normal(high)/ник_чара/outlaw.jpg) только лишь для того, чтобы задать параметры поиска через modrewrite, каталогов таких не существует.

Автор: ZeroTheGreat 15.6.2007, 11:41

Night, прочитав пост выше, ты бы понял, что я мало что (пока) в этом смыслю, потому и спрашивал (вопрос красным цветом к пункту 1). Ясно, почему у меня ничего не вышло, попытаюсь найти подходящий хост сам, параллельно прошу Ино указать здесь бесплатный хост с подержкой php.

Автор: ZeroTheGreat 15.6.2007, 13:20

Цитата(Ino)
правда форум не даст поместить в качестве ссылки на картинку ссылку на php-скрипт

Как это сделать тогда? Два раза было написано, но я ничего не понял, идеально бы было побольше конкретики (примеров). Итак, что пихать в теги [img]?

P.S. Что у тебя стоит в подписи?

Автор: Ino 15.6.2007, 15:38

в тег пихать ту самую ссылку
host/hight/name/outlaw.jpg
форум воспримет ее как картинку, а сервер перенаправит на скрипт, который в качестве результата вернет баннер, который форум и нарисует в приписке.

Автор: ZeroTheGreat 15.6.2007, 16:41

Есть хост jino-net.ru, на нем создан домен 3го уровня zerothegreat, на этом сервере лежат файлы fon.gif, wr.php и wr.htaccess. Если вводить в подпись _img]http://zerothegreat.jino-net.ru/normal/smiththegreat/fon.gif[/img_, то ничего не выходит sad.gif

P.S. То же самое было и с jpg-файлом.

Автор: Ino 15.6.2007, 20:31

перед /normal/тырыпыры/fon.gif нужно ввести весь адрес до каталога со скриптом.
Файл должен называться просто ".htaccess"

Автор: Hellion 15.6.2007, 22:28

Найт, а м.б. повесить сей скрипт для русры в общем? Пусть у любого игрока отсюда будет свой узербарчик с лвлом/чаром..

Автор: ZeroTheGreat 16.6.2007, 0:34

Идеально было бы, если Night позволил выгружать скрипты на RusRO smile.gif А так прошу помочь найти хороший бесплатный хостинг (желательно проверенный временем и людьми), поддерживающий php и .htaccess.

P.S. Видимо, у меня ничего не вышло именно из-за отсутствия поддержки .htaccess.

To Ino: Огромнейшее спасибо за помощь и разъяснения icon_cool.gif Респект!

Автор: Ino 16.6.2007, 0:35

Гы, ток скрипт исправлять нада. И вообще такая идея поиска чара не подойдет для всех, т.к. чаров уже много и лоу левелы находятся очень далеко и очень долго ищуться *_*

Автор: Hellion 16.6.2007, 13:16

Дело в том, что на каждого юзверя есть конкретный ид и что-то искать имхо не надо отдельно, вот так:
http://rusro2.com/top.php?id=151606

Автор: Ino 16.6.2007, 13:41

Ну тогда можно переделать не по поиску по имени и профе, а по ИД.

Автор: Night 16.6.2007, 18:48

Цитата(ZeroTheGreat @ 16.6.2007, 1:34) *
найти хороший бесплатный хостинг


Не бывает такого.

Автор: ZeroTheGreat 16.6.2007, 18:58

Ведь у меня и требований немного: php + .htaccess + хотя бы 1 Мб smile.gif Буду искать лучший вариант.

Автор: kostoprav 17.6.2007, 2:32

ищи друзей платящих за хостинг, пусть просто зальют себе готовый скрипт
а отладкой можно заниматся дома, подними апач с пхп и тести

Автор: kostoprav 17.6.2007, 5:36

Вобщем что то прицепилася неспаница и вот чуть повозился )
Теперь определяется по ид юзера

в хтаксесс пишется чуть иначе

CODE

RewriteEngine On
RewriteRule ^.htaccess$ - [F]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/ds.jpg$ /req.php?__uid=$1 [L]



скрипт обзывается req.php и пусть кладется в корень
CODE
<?php
$banner_image = "http://img234.img.bn/img234/9251/48406776nh4.jpg";
$myinfo = NULL;
$f = fopen("http://rusro2.com/top.php?id=".$_GET['__uid'],'r');

if ($f != NULL)
{
$foobar=false;
while (!feof($f))
{
$tstr = fgets($f);
if (strpos(trim($tstr), 'Имя:'))
{ $rawname=strip_tags($tstr);
$name=substr($rawname,6);
$name=substr($name,0,-2);


$tstr = fgets($f);
$rawguild=strip_tags($tstr);
$guild=substr($rawguild,10);
$guild=substr($guild,0,-2);



$tstr = fgets($f);
$rawprof=strip_tags($tstr);
$prof=substr($rawprof,12);
$prof=substr($prof,0,-2);



$tstr = fgets($f);
$base = substr(strip_tags($tstr),18);
$base=substr($base,0,-2);


$tstr = fgets($f);
$tstr = fgets($f);
$tstr = fgets($f);
$job = substr(strip_tags($tstr),16);
$job = substr($job,0,-2);

$foobar=true;

}
if($foobar){
if (strpos(trim($tstr),"offline")) {$status="Offline";}
if (strpos(trim($tstr),"online")) {$status="Online";}
};

}
}
fclose($f);

Header("Pragma: no-cache");

$imf = $GLOBALS['banner_image'];
$fn = fopen($imf, "r");

if ($fn != false)
{
fclose($fn);
header("Content-Type: image/jpg");
$im = imagecreatefromjpeg($imf);
$orange = imagecolorallocate($im, 255, 255, 0);
//$string1 = "$name - $prof ( $base / $job ) [ $guild ]";
$string1 = "$name $prof ( $base / $job )";
$string2 = $status;
imagestring($im, 3, 8, 8, $string1, $orange);
imagestring($im, 3, 8, 35, $string2, $orange);
imagejpeg($im);
imagedestroy($im);
exit;
}

header("Content-type: image/png");
$im = @ImageCreate (50, 15) or die ("Cannot Initialize new GD image stream");
$background_color = ImageColorAllocate($im, 225, 130, 130);
$text_color = ImageColorAllocate ($im, 0, 0, 0);
ImageString ($im, 2, 4, 1, "NO FILE", $text_color);
ImagePng($im);
?>


обращение идет в виде чегото подобного
CODE
http://localhost/150747/ds.jpg

ид юзера видно где указывается
В резултате получили вот что




Единственная проблема, что на моем хостинге графическая библиотека GD не включена (( а админа не допинаеш поставит.
Буду думать куда вешать )) В принципе можно переделать под ImageMagic.

Да с русскими никами таже проблема , именно в графической библиотеке трабла.

Автор: kostoprav 17.6.2007, 6:05

Проблема в функции imagestring она печает вроде тока 127 первых символов асцы.
Надо пользовать ImageTTFText и прикладывать заодно свой шрифт на сервер.
Курим дальше.

Автор: kostoprav 17.6.2007, 15:47

Вобще постучал в бубен и заработало.

Дополнительно кладем в папку со скриптом файл шрифта, в моем случае использовался tahomabd.ttf
Если у вас win то скорее всего шрифты лежат в c:\windows\fonts

Сам скрипт немного изменился в части вывода, приведу целиком дабы не было путаницы.

CODE
<?php
$banner_image = "http://img234.img.bn/img234/9251/48406776nh4.jpg";
$myinfo = NULL;
$f = fopen("http://rusro2.com/top.php?id=".$_GET['__uid'],'r');

if ($f != NULL)
{
$foobar=false;
while (!feof($f))
{
$tstr = fgets($f);
if (strpos(trim($tstr), 'Имя:'))
{ $rawname=strip_tags($tstr);
$name=substr($rawname,6);
$name=substr($name,0,-2);


$tstr = fgets($f);
$rawguild=strip_tags($tstr);
$guild=substr($rawguild,10);
$guild=substr($guild,0,-2);



$tstr = fgets($f);
$rawprof=strip_tags($tstr);
$prof=substr($rawprof,12);
$prof=substr($prof,0,-2);



$tstr = fgets($f);
$base = substr(strip_tags($tstr),18);
$base=substr($base,0,-2);


$tstr = fgets($f);
$tstr = fgets($f);
$tstr = fgets($f);
$job = substr(strip_tags($tstr),16);
$job = substr($job,0,-2);

$foobar=true;

}
if($foobar){
if (strpos(trim($tstr),"offline")) {$status="Offline";}
if (strpos(trim($tstr),"online")) {$status="Online";}
};

}
}
fclose($f);

function iso2uni ($isoline) {
$uniline="";
for ($i=0; $i < strlen($isoline); $i++){
$thischar=substr($isoline,$i,1);
$charcode=ord($thischar);
$uniline.=($charcode>175)?"&#".(1040+($charcode-176)).";":$thischar;
}
return $uniline;
}



//putenv('GDFONTPATH=' . realpath('.'));

Header("Pragma: no-cache");

$imf = $GLOBALS['banner_image'];
$fn = fopen($imf, "r");

if ($fn != false)
{
fclose($fn);
header("Content-Type: image/jpg");
$im = imagecreatefromjpeg($imf);
$orange = imagecolorallocate($im, 255, 255, 0);
//$string1 = "$name - $prof ( $base / $job ) [ $guild ]";
$string1 = "$name $prof ( $base / $job )";
$string2 = $status;

$string1 = iso2uni(convert_cyr_string($string1,"w","i"));
$string2 = iso2uni(convert_cyr_string($string2,"w","i"));

$font = 'tahomabd.ttf';

imagettftext($im, 12, 0, 5, 20, $orange, $font, $string1);
imagettftext($im, 12, 0, 5, 50, $orange, $font, $string2);

imagejpeg($im);
imagedestroy($im);
exit;
}

header("Content-type: image/png");
$im = @ImageCreate (50, 15) or die ("Cannot Initialize new GD image stream");
$background_color = ImageColorAllocate($im, 225, 130, 130);
$text_color = ImageColorAllocate ($im, 0, 0, 0);
ImageString ($im, 2, 4, 1, "NO FILE", $text_color);
ImagePng($im);
?>


Вот собственно и все )). В остальном смотри что написано ранее.
Что у меня получилось смотрите в подписи.

Автор: Chroнo 17.6.2007, 16:37

засудить коста он украл мой юзер бар) emo_ro29.gif
ЗЫ
хочеш найду тебе тупяка помаложе и посвижее?

Автор: kostoprav 17.6.2007, 16:41

offtop on
Да да я нехороший ппц ((


Да имхо вполне нормальная пикча. Лучшеб нашел хостинг c включенным gd в php.
Всем бы в ги могли генрить
offtopic off

в приницпе можно сделать чтобы фон задавался отдельным параметром, правда это не так уж и актуально )

Автор: ZeroTheGreat 18.6.2007, 0:46

К постам #30 и #32 в коде PHP в конце не хватает } smile.gif

Выражаю огромную благодарность Ino и kostopravemo_ro44.gif , надеюсь сам когда-нибудь смогу изучить язык так же хорошо, как и вы emo_ro06.gif

Автор: Night 18.6.2007, 1:17

Напишите универсальный скрипт, где можно будет подставлять id чара, и будет выводить баннер с инфой, я попробую засунуть куда-нибудь его)
Что бы было например так banner.php?id=111111 // где 111111 id чара о котором выводить инфу в баннер.
Можно заодно и название гильды выводить автоматом, но это имхо сложнее, хотя можно просто сделать так

banner.php?id=111111&guild=MySweatGuild
p.s. На всех моих хостингах есть GD и всё остальное тоже вроде есть

Автор: ZeroTheGreat 18.6.2007, 1:35

Night, а все ли захотят пользоваться одним и тем же баннером? smile.gif

Господа программисты, два вопроса. Первый: можно ли переменной $status (скрипт kostoprav'а) назначить URL картинки, чтобы, например, вместо онлайн-оффлайн выводилась картинка, например, зеленого и красного кругов и т.п. Второй: как на второй строке разместить вместе и переменную $status и переменную $guild?

Автор: kostoprav 18.6.2007, 1:40

Вопрос ведь еще в том какая картинка, какой шрифт, какой формат надписи и тп.
Далее, например в мою картинку, как апнусь строка обрежется и будет поскудно выглядеть.
Надо подумать. Как бы получше сделать.
Как вариант сделать несколько стилей начертания , определять адресс базисной картинки иполучи что то типа
banner.php?id=111111&style=2line_full_info&color=yellow&img=http://img234.img.bn/img234/9251/48406776nh4.jpg

ето не сложно мне кажется и многих устроит

Другой вопрос , что скрипт весьма не оптимизирован,и если найту не соствит труда, хотелось бы видеть некий упрощеную версию топа,
в которой топорно показываются только информация аккаунта.

CODE

while (!feof($f))
{
$tstr = fgets($f);
if (strpos(trim($tstr), 'Имя:'))

бо бо какая жрущая конструкция, и если ей совать большую пагу, да еще многими клентами может машинкои напрячь.

зы emo_ro30.gif а лучше дайте API к сервису шоб не парсить паги ))) футка

Автор: Night 18.6.2007, 1:43

Цитата(ZeroTheGreat @ 18.6.2007, 2:35) *
Night, а все ли захотят пользоваться одним и тем же баннером? smile.gif

Господа программисты, два вопроса. Первый: можно ли переменной $status (скрипт kostoprav'а) назначить URL картинки, чтобы, например, вместо онлайн-оффлайн выводилась картинка, например, зеленого и красного кругов и т.п. Второй: как на второй строке разместить вместе и переменную $status и переменную $guild?


На счет статуса можно 100%, вопрос в реализации.
На счет баннера, попросим нарисовать красивый баннер, что бы всем нравился, выберем по результатам голосования

Цитата(kostoprav @ 18.6.2007, 2:40) *
Другой вопрос , что скрипт весьма не оптимизирован,и если найту не соствит труда, хотелось бы видеть некий упрощеную версию топа,
в которой топорно показываются только информация аккаунта.


Не совсем понимаю, что ты имеешь ввиду... сейчас попробую показать, как я это представляю...

Автор: kostoprav 18.6.2007, 1:53

Цитата(ZeroTheGreat @ 18.6.2007, 2:35) *
Night, а все ли захотят пользоваться одним и тем же баннером? smile.gif

Господа программисты, два вопроса. Первый: можно ли переменной $status (скрипт kostoprav'а) назначить URL картинки, чтобы, например, вместо онлайн-оффлайн выводилась картинка, например, зеленого и красного кругов и т.п. Второй: как на второй строке разместить вместе и переменную $status и переменную $guild?


Угу укаждого своя фантазия.
по пунктам
1) Первый: можно ли переменной $status (скрипт kostoprav'а) назначить URL картинки, чтобы, например, вместо онлайн-оффлайн выводилась картинка
Можно )) тогда вторая строка не впечатывается, а создается новое изображение "$im2 = imagecreatefromjpeg($imf2); " и далее ищется в библиотеке функция для копирования одного изображения на другое.

2) Второй: как на второй строке разместить вместе и переменную $status и переменную $guild?
у меня гильдия вобще не выводится ))
а вобще смотри где делается $string2:
$string2 = $status;
делаеш терь так
$string2 = $status.' Member of:'.$guild;
или
$string2 = "$status Member of: $guild";

зы вроде синтаксис не напутал, проверят лень. Последний раз игрался с пхп год назад.

зыы 2 ZeroTheGreat мне кажется ты создаеш себе комплекс непоноценности, если ты уже смог хоть както разобратся в етом коде, попробуй почитать нормальные руководства. ( хе хе всяк полезнее манча ) почитай http://www.intuit.ru/department/pl/plphp/ а что делают различные функции смотри справочник http://php.net/ вводя название функции в search for

Автор: Night 18.6.2007, 1:54

http://rusro2.com/litetop/top.php
вот типа без лишней графики

Автор: kostoprav 18.6.2007, 2:00

Ага, то что надо. Тут гораздо меньше строк ))
В приницпе можно еше облегчит вместо

CODE
<HTML>
<HEAD>
<title>Ragnarok Online RusRO | Рагнарок Онлайн РусРО</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<META http-equiv="Content-Language" content="ru">
<meta name="keywords" content="компьютерные игры, ролевая, онлайн, игра, mmorpg, rpg, pc игры, рпг, online games, онлайн рпг игры, ролевая онлайн игра, онлайн rpg, скачать rpg, сайт игр, медвед">
<link href="css/default.css" rel=stylesheet type=text/css>
<script type="text/javascript" src="js/script.js"></script>
</HEAD>
<BODY BGCOLOR=#FFFFFF marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" BACKGROUND="imagess/back.jpg" ONLOAD="preloadImages();">
<table width=100% class=txt>
<tr valign=top align=left><td><br>
<img src="/imagess/class/8_m.gif"></td><td><br>
<table>
<tr><td class=h1>Имя:</td><td><b>Kenobi</b></div></td></tr>
<tr><td class=h1>Гильдия:</td><td><a href="gtop.php?id=20">Mutilados</td></tr>
<tr><td class=h1>Профессия:</td><td>Knight</td></tr>
<tr><td class=h1>Базовый уровень:</td><td>99</td></tr>


<tr><td class=h1>Проф. уровень:</td><td>50</td></tr>


<tr><td class=h1>Пол:</td><td><img src="imagess/male.gif"></td></tr>
<tr><td class=h1>Онлайн:</td><td><img src="imagess/offline.gif"></td></tr>

</table>
</td></tr></table></BODY>
</HTML>


выводить тока
CODE
<tr><td class=h1>Имя:</td><td><b>Kenobi</b></div></td></tr>
<tr><td class=h1>Гильдия:</td><td><a href="gtop.php?id=20">Mutilados</td></tr>
<tr><td class=h1>Профессия:</td><td>Knight</td></tr>
<tr><td class=h1>Базовый уровень:</td><td>99</td></tr>


<tr><td class=h1>Проф. уровень:</td><td>50</td></tr>


<tr><td class=h1>Пол:</td><td><img src="imagess/male.gif"></td></tr>
<tr><td class=h1>Онлайн:</td><td><img src="imagess/offline.gif"></td></tr>

Хм или и вобще без тегов таблицы. Главное чтобы тока порядок строк, и переходов была.

Автор: ZeroTheGreat 18.6.2007, 2:04

Мееелкое замечние по топу: у иконок, обозначающих мужской пол непрозрачный фон smile.gif

kostoprav, я просто очень ленивый emo_ro18.gif

Night, предлагаю юзербар сделать 350 Х 19 или 350 Х 38.

Автор: kostoprav 18.6.2007, 2:08

>Тройка замечаний по лайт-топу:

Нафига? Это не для просмотра людьми ж. А парсинга ради )).

offtopic on
Лень она постоянно. Но когда интиресно лень испаряется. Тебе мне кажется эта тема интиресна, так раскрой её.
Да и вобще как может о лени говорить человек играбщий в ро, игру в которой 80-90% тупейший кач?
offtopic off

Автор: ZeroTheGreat 18.6.2007, 2:12

Тема и правда интересна, спасибо за ссылки smile.gif

Автор: Night 18.6.2007, 2:17

Убрал шапку

Автор: Night 18.6.2007, 3:07

Цитата(ZeroTheGreat @ 18.6.2007, 3:04) *
Мееелкое замечние по топу: у иконок, обозначающих мужской пол непрозрачный фон smile.gif

kostoprav, я просто очень ленивый emo_ro18.gif

Night, предлагаю юзербар сделать 350 Х 19 или 350 Х 38.


350 на 38 имхо самое оно

Автор: kostoprav 18.6.2007, 3:17

Собственно в текущем варианте скрипта нужно изменить только путь к топу
вместо
$f = fopen("http://rusro2.com/top.php?id=".$_GET['__uid'],'r');
следует писать
$f = fopen("http://rusro2.com/litetop/top.php?id=".$_GET['__uid'],'r');

Автор: Night 18.6.2007, 3:21

Текущая версия скрипта не катит, делайте универсальный скрипт)

Автор: ZeroTheGreat 18.6.2007, 4:11

А чем не катит? Вроде все при ней smile.gif

Автор: kostoprav 18.6.2007, 4:26

>Текущая версия скрипта не катит, делайте универсальный скрипт)

Согласен. ТОка надо поставить четкое ТЗ чтобы понимать какой будет катит ))

Автор: Night 18.6.2007, 5:56

Ок, четкое ТЗ, выходной php файл, имеющий формат запроса примерно следующего вида:

banner.php?id=12345&guild=MyGuild&bg=2

Где, id - идентификационный номер персонажа, guild - Имя которое будет отображаться в баннере в виде гильдии, bg - бэкграунд на выбор(Нарисуем несколько штук)

Автор: kostoprav 18.6.2007, 11:57

>, guild - Имя которое будет отображаться в баннере в виде гильдии,
не очень понятно зачем, ведь в топе есть информация и гильдии

Вобщем сделал ак сказали )), но тут как раз проблема что надпись просто может не уместится на картинку

Вроде бы все нормально, но подсунем другую картинку, и оппа

Автор: ZeroTheGreat 19.6.2007, 2:20

Именно поэтому все баннеры должны быть единоформатны (350Х38).

Цитата(Night)
Нарисуем несколько штук

Может быть предоставим пользователям самим нарисовать? Ведь такие баннеры много места не займут smile.gif Создать отдельную тему и выложить там список, ну или что-то в этом духе smile.gif

Автор: Night 19.6.2007, 5:35

А скрипт где? Пока только недоделки....

Автор: kostoprav 19.6.2007, 10:39

Сам скрипт вот. К нему надо еще класть шрифт ttf. [ задается тут : $font = 'tahomabd.ttf'; ]
Бекграунд можно класть как рядом так у указывать URL.

 banner.php ( 2.52 килобайт ) : 20
 

Автор: Night 19.6.2007, 20:16

Не пашет
http://ragfan.com/banner/banner.php?=163114

Автор: kostoprav 20.6.2007, 2:09

Соррь почемуто залилась старая версия скрипта ^_^
Оно кстати таки пашет
http://ragfan.com/banner/banner.php?__uid=163114

Правильной ссылкой, для прикрипленного к этому сообщению скрипту будет что то типа

CODE

banner.php?id=150747&guild=Death%20SmileS&bg=http://alnar.net/img.jpg


ps вставил в подпись текуший скрипт )) уже радует ^__^
pss в новозалитом расположение делалось почти наугад так как неизвестно какой бекграунд, но вроде должно вписать в 38 пикселей

 banner.php ( 2.58 килобайт ) : 15
 

Автор: ZeroTheGreat 24.6.2007, 1:22

Night, скрипт рабочий? Если да - ссылку в студию smile.gif

Автор: Night 24.6.2007, 2:49

Да я так подумал нет смысла заморачиваться, всеравно отображения онлайна/оффлайна будет скорей всего отключенно, по техническим причинам.

Автор: ZeroTheGreat 24.6.2007, 3:38

Эм, так все вроде сделано уже smile.gif Тебе осталось загрузить скрипт на сервер, вроде так?

Автор: Night 24.6.2007, 5:12

Скажу откровенно сделано убого... Я доделывать, переделывать ни чего не буду, ибо в пхп я разбираюсь на 2+

Автор: Ino 24.6.2007, 11:50

Это потому что парсинг странички не лучший вариант. Намного красивее было бы сделать вынимание данных прямо из БД, а найту дать файлик подключения, в который он вписал бы тока логин и пасс для БД.

Автор: kostoprav 26.6.2007, 3:06

>Скажу откровенно сделано убого...

Я не старался сделать красиво, только чтоб работало. На другом фоне надо юзать другой шрифт, иначе размещать и тп.

>Это потому что парсинг странички не лучший вариант.
Ну найт сделал лайт вариант, там парсить не особо много. Можн не красиво, но не особо нагружно.

ps пшел пинать админа апать пхп у ся на хостинге .. эх

Форум Invision Power Board
© Invision Power Services