Сообщений: 156
Тем: 12
Зарегистрирован: Mar 2009
Репутация:
374
Вот я поставил userbar он не правильно отображает данные, потому что он под версию 2.х.х, а мне надо чтоб онтображал под 3.0.9 я знаю даже где править чтоб правильно отображал данные но не знаю какие значения ставить вот конфиг помогите
PHP код: <?php
$data = explode(' ',$row['data']);
$lvl = $data[34]; // for 2.3.3+
$honor = $data[1562]; // for 2.4.3
$kills = $data[1517]; // for 2.4.3
$arenapoints = $data[1563]; // for 2.4.3
// Получаем данные по опыту(текущий уровень опыта и сколько до следующего уровня)
$xp = $data[926]; // for 2.4.1
$next_xp = $data[927]; // for 2.4.1
$staName[1] = $optionsLang["StateLookup"]["Strength"];
$sta[1] = $data[171];
$staName[2] = $optionsLang["StateLookup"]["Agility"];
$sta[2] = $data[172];
$staName[3] = $optionsLang["StateLookup"]["Stamina"];
$sta[3] = $data[173];
$staName[4] = $optionsLang["StateLookup"]["Intelect"];
$sta[4] = $data[174];
$staName[5] = $optionsLang["StateLookup"]["Spirit"];
$sta[5] = $data[175];
$statName[1] = $optionsLang["StateLookup"]["Health"];
$stat[1] = $data[28];
Вот я единственное знаю как сделать чтоб правильно отображал лвл вот например $lvl = $data[34]; надо поменять на $lvl = $data[53]; а вот как все остальное не знаю может кто подскажет!!! или дайте ссылочку под версию 3.0.9
Сообщений: 6,450
Тем: 262
Зарегистрирован: Nov 2007
Репутация:
44,165
Как бы ничего не упустил.
PHP код: <?php
$data = explode(' ',$row['data']);
//$lvl = $data[34]; // for 2.3.3+
$lvl = $data[53]; // Для 3.0.9
//$honor = $data[1562]; // for 2.4.3
$honor = $data[1648]; // Для 3.0.9
//$kills = $data[1517]; // for 2.4.3
$kills = $data[1602]; // Для 3.0.9
//$arenapoints = $data[1563]; // for 2.4.3
$arenapoints = $data[1649]; // Для 3.0.9
//Получаем данные по опыту(текущий уровень опыта и сколько до следующего уровня)
//$xp = $data[926]; // for 2.4.1
$xp = $data[1010]; // Для 3.0.9
//$next_xp = $data[927]; // for 2.4.1
$next_xp = $data[1011]; // Для 3.0.9
$staName[1] = $optionsLang["StateLookup"]["Strength"];
//$sta[1] = $data[171];
$sta[1] = $data[84]; // Для 3.0.9
$staName[2] = $optionsLang["StateLookup"]["Agility"];
//$sta[2] = $data[172];
$sta[2] = $data[85]; // Для 3.0.9
$staName[3] = $optionsLang["StateLookup"]["Stamina"];
//$sta[3] = $data[173];
$sta[3] = $data[86]; // Для 3.0.9
$staName[4] = $optionsLang["StateLookup"]["Intelect"];
//$sta[4] = $data[174];
$sta[4] = $data[87]; // Для 3.0.9
$staName[5] = $optionsLang["StateLookup"]["Spirit"];
//$sta[5] = $data[175];
$sta[5] = $data[93]; // Для 3.0.9
$statName[1] = $optionsLang["StateLookup"]["Health"];
//$stat[1] = $data[28];
$stat[1] = $data[23]; // Для 3.0.9
Сообщений: 156
Тем: 12
Зарегистрирован: Mar 2009
Репутация:
374
PROGRAMMATOR Написал:Как бы ничего не упустил.
PHP код: <?php
$data = explode(' ',$row['data']);
//$lvl = $data[34]; // for 2.3.3+
$lvl = $data[53]; // Для 3.0.9
//$honor = $data[1562]; // for 2.4.3
$honor = $data[1648]; // Для 3.0.9
//$kills = $data[1517]; // for 2.4.3
$kills = $data[1602]; // Для 3.0.9
//$arenapoints = $data[1563]; // for 2.4.3
$arenapoints = $data[1649]; // Для 3.0.9
//Получаем данные по опыту(текущий уровень опыта и сколько до следующего уровня)
//$xp = $data[926]; // for 2.4.1
$xp = $data[1010]; // Для 3.0.9
//$next_xp = $data[927]; // for 2.4.1
$next_xp = $data[1011]; // Для 3.0.9
$staName[1] = $optionsLang["StateLookup"]["Strength"];
//$sta[1] = $data[171];
$sta[1] = $data[84]; // Для 3.0.9
$staName[2] = $optionsLang["StateLookup"]["Agility"];
//$sta[2] = $data[172];
$sta[2] = $data[85]; // Для 3.0.9
$staName[3] = $optionsLang["StateLookup"]["Stamina"];
//$sta[3] = $data[173];
$sta[3] = $data[86]; // Для 3.0.9
$staName[4] = $optionsLang["StateLookup"]["Intelect"];
//$sta[4] = $data[174];
$sta[4] = $data[87]; // Для 3.0.9
$staName[5] = $optionsLang["StateLookup"]["Spirit"];
//$sta[5] = $data[175];
$sta[5] = $data[93]; // Для 3.0.9
$statName[1] = $optionsLang["StateLookup"]["Health"];
//$stat[1] = $data[28];
$stat[1] = $data[23]; // Для 3.0.9
Да спасибо заработало,но не все не отображается мана,блок,броня... а дух пишет очень большое число...
вот у меня еще есть такие строчки PHP код: <?php
$statName[3] = $optionsLang["StateLookup"]["Block"];
$ar = unpack("f", pack("V", $data[1316])); // for 2.4.1
$stat[3] = substr($ar[1],0,4)." %";
$statName[4] = $optionsLang["StateLookup"]["Dodge"];
$ar = unpack("f", pack("V", $data[1317])); // for 2.4.1
$stat[4] = substr($ar[1],0,4)." %";
$statName[5] = $optionsLang["StateLookup"]["Defense"];
$stat[5] = $data[186];
Какое тут значение?
PHP код: <?php
$statName[3] = $optionsLang["StateLookup"]["HolyCritSpell"];
$ar = unpack("f", pack("V", $data[1325])); // for 2.4.1
$stat[3] = substr($ar[1],0,4)." %";
$statName[4] = $optionsLang["StateLookup"]["Block"];
$ar = unpack("f", pack("V", $data[1316])); // for 2.4.1
$stat[4] = substr($ar[1],0,4)." %";
$statName[5] = $optionsLang["StateLookup"]["Defense"];
$stat[5] = $data[186];
Какое тут значение?
PHP код: <?php
$statName[3] = $optionsLang["StateLookup"]["ShadowCritSpell"];
$ar = unpack("f", pack("V", $data[1329])); // for 2.4.1
$stat[3] = substr($ar[1],0,4)." %";
$statName[4] = $optionsLang["StateLookup"]["HolyCritSpell"];
$ar = unpack("f", pack("V", $data[1325])); // for 2.4.1
$stat[4] = substr($ar[1],0,4)." %";
//$statName[5] = $optionsLang["StateLookup"]["Defense"];
//$stat[5] = $data[186]; // зачем?
$statName[5] =$data[1483]; // бонус к хилу
$stat[5] =$data[1463]." /"; // бонус к спел дамагу
Какое тут значение?
PHP код: <?php
$statName[3] = $optionsLang["StateLookup"]["FireCritSpell"];
$ar = unpack("f", pack("V", $data[1326])); // for 2.4.1
$stat[3] = substr($ar[1],0,4)." %";
$statName[4] = $optionsLang["StateLookup"]["FrostCritSpell"];
$ar = unpack("f", pack("V", $data[1328])); // for 2.4.1
$stat[4] = substr($ar[1],0,4)." %";
//$statName[5] = $optionsLang["StateLookup"]["ArcaneCritSpell"];
//$ar = unpack("f", pack("V", $data[1330])); // for 2.4.1
//$stat[5] = substr($ar[1],0,4)." %";
$statName[5] ="spell dmg";
$stat[5] =$data[1463]; // бонус к спел дамагу
Какое тут значение?
PHP код: <?php
$statName[3] = $optionsLang["StateLookup"]["FireCritSpell"];
$ar = unpack("f", pack("V", $data[1326])); // for 2.4.1
$stat[3] = substr($ar[1],0,4)." %";
$statName[4] = $optionsLang["StateLookup"]["ShadowCritSpell"];
$ar = unpack("f", pack("V", $data[1329])); // for 2.4.1
$stat[4] = substr($ar[1],0,4)." %";
//$statName[5] = $optionsLang["StateLookup"]["Defense"];
//$stat[5] = $data[186];// зачем?
$statName[5] ="Spell dmg";
$stat[5] =$data[1463]; // бонус к спел дамагу
Какое тут значение?
PHP код: <?php
$statName[3] = $optionsLang["StateLookup"]["CritMele"];
$ar = unpack("f", pack("V", $data[1321])); // for 2.4.1
$stat[3] = substr($ar[1],0,4)." %";
$statName[4] = $optionsLang["StateLookup"]["NatureCritSpell"];
$ar = unpack("f", pack("V", $data[1327])); // for 2.4.1
$stat[4] = substr($ar[1],0,4)." %";
$statName[5] = $optionsLang["StateLookup"]["FrostCritSpell"];
$ar = unpack("f", pack("V", $data[1328])); // for 2.4.1
$stat[5] = substr($ar[1],0,4)." %";
Какое тут значение?
Если можно весь конфиг выложете пожалуйсто.....
Сообщений: 6,450
Тем: 262
Зарегистрирован: Nov 2007
Репутация:
44,165
neo-skynet;30362 Написал:Если можно весь конфиг выложете пожалуйсто..... Пожалуйста, http://wiki.udbforums.org/index.php/Character_data
Сообщений: 156
Тем: 12
Зарегистрирован: Mar 2009
Репутация:
374
PROGRAMMATOR Написал:Пожалуйста, http://wiki.udbforums.org/index.php/Character_data
Я в том не разобрался, а нету готового (я понимаю что это может уже и наглость, но пожалуйсто.. вот мой конфиг не могли бы вы его исправить
Код: <?php
error_reporting(0);
////////////// functions ////////////////////////
function getHexColors($c)
{
$c = preg_replace("/[^a-f0-9]/i", "", $c);
return array(
hexdec(substr($c, 0, 2)),
hexdec(substr($c, 2, 2)),
hexdec(substr($c, 4, 2))
);
}
function width($txt, $size, $font)
{
$b = ImageTTFBBox($size, 0, $font, $txt);
return $b[2];
}
function parseIni($file)
{
$f = file($file);
$sections = array();
$curSection = false;
foreach($f as $fl)
{
if(!trim($fl)) continue;
if(preg_match("/^\[(.*?)\]$/", trim($fl), $matches))
{
$curSection = $matches[1];
}
else
{
list($k, $v) = explode("=", trim($fl), 2);
$sections[$curSection][$k] = $v;
}
}
return $sections;
}
//////////////////////////////////////
if (@$_GET['name'])
{
$options = parseIni("config/config.ini", true);
$mainFont = $options["General"]["MainFont"];
$plainFont = $options["General"]["PlainFont"];
// определяем язык из конфига
$lang = $options["Language"]["Lang"];
$optionsLang = parseIni("lang/$lang.ini", true);
// ini_set("user_agent", "Mozilla/5.0 Gecko/20070219 Firefox/2.0.0.2");
$img = ImageCreateTrueColor(490, 64);
$host = $options["MySQLServer"]["db_host"];
$port = $options["MySQLServer"]["db_port"];
$user = $options["MySQLServer"]["db_user"];
$pass = $options["MySQLServer"]["db_pass"];
$dbc = $options["MySQLServer"]["dbc"];
$dbr = $options["MySQLServer"]["dbr"];
// $realm = $options["realm"]["realmname"];
$char_name = get_magic_quotes_gpc() ? $_GET['name'] : mysql_escape_string($_GET['name']);
function win2uni($s)
{
$s = convert_cyr_string($s,'w','i');
for ($result='', $i=0; $i<strlen($s); $i++)
{
$charcode = ord($s[$i]);
$result .= ($charcode>175)?"&#".(1040+($charcode-176)).";":$s[$i];
}
return $result;
}
// получаем данные о персонаже
mysql_connect($host.':'.$port,$user,$pass) or die(mysql_error());
mysql_select_db($dbc) or die(mysql_error());
// поддержка руских ников и гильдий
$database_encoding = 'cp1251';
if($database_encoding)
{
$temp = mysql_query("SET NAMES $database_encoding");
$temp = mysql_query("SET character_set_results=$database_encoding");
}
$sql = mysql_query("SELECT `guid`, `account`, `data`, `race`, `class`, `online` FROM `characters` WHERE `name`='".$char_name."';");
if (mysql_num_rows($sql)!='1')
{
exit("Ошибка! Персонаж не найден!");
}
$row = mysql_fetch_array($sql, MYSQL_ASSOC);
$race = $row['race'];
$class = $row['class'];
$guid = $row['guid'];
$account = $row['account'];
$charstat = $row['online'];
if ($charstat == 1)
{
$status = $optionsLang["StatusLookup"]["online"];
}
else $status = $optionsLang["StatusLookup"]["offline"];
$data = explode(' ',$row['data']);
$lvl = $data[53]; // for 2.3.3+
$honor = $data[1648]; // for 2.4.3
$kills = $data[1602]; // for 2.4.3
$arenapoints = $data[1649]; // for 2.4.3
// Получаем данные по опыту(текущий уровень опыта и сколько до следующего уровня)
$xp = $data[1010]; // for 2.4.1
$next_xp = $data[1011]; // for 2.4.1
$staName[1] = $optionsLang["StateLookup"]["Strength"];
$sta[1] = $data[84];
$staName[2] = $optionsLang["StateLookup"]["Agility"];
$sta[2] = $data[85];
$staName[3] = $optionsLang["StateLookup"]["Stamina"];
$sta[3] = $data[86];
$staName[4] = $optionsLang["StateLookup"]["Intelect"];
$sta[4] = $data[87];
$staName[5] = $optionsLang["StateLookup"]["Spirit"];
$sta[5] = $data[93];
$statName[1] = $optionsLang["StateLookup"]["Health"];
$stat[1] = $data[23];
// получаем данные о статусе персонажа: ГМ уровень
mysql_connect($host.':'.$port,$user,$pass) or die(mysql_error());
mysql_select_db($dbr) or die(mysql_error());
$sqlr = mysql_query("SELECT `gmlevel` FROM `account` WHERE `id`='".$account."';");
if (mysql_num_rows($sqlr)!='1') {exit("Ошибка!! Персонаж не найден!");}
$rowr = mysql_fetch_array($sqlr, MYSQL_ASSOC);
$gmlevel = $rowr['gmlevel'];
// получаем название реалма
$realm_row = mysql_query("SELECT `name` FROM `realmlist` WHERE `id`='".$options["realm"]["realm_id"]."';");
$row = mysql_fetch_array($realm_row, MYSQL_ASSOC);
$realm = $row['name'];
// случай для серверов с несколькими реалмами, пока недоделано
// $sqlr2 = mysql_query("SELECT `realmid` FROM `realmcharacters` WHERE `acctid`='.$account.'");
// if (mysql_num_rows($sqlr2)!='1') {exit("Ошибка!!! Персонаж не найден!");}
// $rowr2 = mysql_fetch_array($sqlr2, MYSQL_ASSOC);
// $realmid = $rowr2['realmid'];
// $sqlr3 = mysql_query("SELECT `name` FROM `realmlist` WHERE `id`='".$realmid."';");
// if (mysql_num_rows($sqlr3)!='1') {exit("Ошибка!!!! Персонаж не найден!");}
// $rowr3 = mysql_fetch_array($sqlr3, MYSQL_ASSOC);
if ($honor <= 0) {$rank = 0;}
else if ($honor < 500) {$rank = 1;}
else if ($honor < 1500) {$rank = 2;}
else if ($honor < 3000) {$rank = 3;}
else if ($honor < 5000) {$rank = 4;}
else if ($honor < 7500) {$rank = 5;}
else if ($honor < 10000) {$rank = 6;}
else if ($honor < 15000) {$rank = 7;}
else if ($honor < 20000) {$rank = 8;}
else if ($honor < 30000) {$rank = 9;}
else if ($honor < 40000) {$rank = 10;}
else if ($honor < 50000) {$rank = 11;}
else if ($honor < 75000) {$rank = 12;}
else if ($honor < 100000) {$rank = 13;}
else if ($honor < 150000) {$rank = 14;}
else {$rank = 15;}
if ($gmlevel > 0)
{
if ($gmlevel == 1) {$gmlvl=$optionsLang["GMLevelLookup"]["moderator"];}
else if ($gmlevel == 2) {$gmlvl=$optionsLang["GMLevelLookup"]["gm"];}
else if ($gmlevel == 3) {$gmlvl=$optionsLang["GMLevelLookup"]["administrator"];}
}
else {$gmlvl = $optionsLang["GMLevelLookup"]["player_honor"]." ".$honor." ".$optionsLang["GMLevelLookup"]["player_kills"]." ".$kills." ".$optionsLang["GMLevelLookup"]["player_arena"]." ".$arenapoints;}
if ($gmlevel > 0)
{
$text_color_1 = $options["ColorsGM"]["text_color_1"];
$text_color_2 = $options["ColorsGM"]["text_color_2"];
$color_1 = $options["ColorsGM"]["color_1"];
$color_2 = $options["ColorsGM"]["color_2"];
}
else
if (in_array($race, array(1,3,4,7,11)))
{
$text_color_1 = $options["ColorsA"]["text_color_1"];
$text_color_2 = $options["ColorsA"]["text_color_2"];
$color_1 = $options["ColorsA"]["color_1"];
$color_2 = $options["ColorsA"]["color_2"];
}
else
{
$text_color_1 = $options["ColorsH"]["text_color_1"];
$text_color_2 = $options["ColorsH"]["text_color_2"];
$color_1 = $options["ColorsH"]["color_1"];
$color_2 = $options["ColorsH"]["color_2"];
}
// выводим характеристики чаров
if ($class == 1 || $class == 4) // воину и вору крит
{
$statName[2] = $optionsLang["StateLookup"]["CritMele"];
$ar = unpack("f", pack("V", $data[1321])); // for 2.4.1
$stat[2] = substr($ar[1],0,4)." %";
}
else // остальным ману
{
$statName[2] = $optionsLang["StateLookup"]["Mana"];
$stat[2] = $data[22];
}
if ($class == 1) // воину блок, броню и уклон
{
$statName[3] = $optionsLang["StateLookup"]["Block"];
$ar = unpack("f", pack("V", $data[1316])); // for 2.4.1
$stat[3] = substr($ar[1],0,4)." %";
$statName[4] = $optionsLang["StateLookup"]["Dodge"];
$ar = unpack("f", pack("V", $data[1317])); // for 2.4.1
$stat[4] = substr($ar[1],0,4)." %";
$statName[5] = $optionsLang["StateLookup"]["Defense"];
$stat[5] = $data[186];
}
if ($class == 2) // палу крит святой, блок и броню
{
$statName[3] = $optionsLang["StateLookup"]["HolyCritSpell"];
$ar = unpack("f", pack("V", $data[1325])); // for 2.4.1
$stat[3] = substr($ar[1],0,4)." %";
$statName[4] = $optionsLang["StateLookup"]["Block"];
$ar = unpack("f", pack("V", $data[1316])); // for 2.4.1
$stat[4] = substr($ar[1],0,4)." %";
$statName[5] = $optionsLang["StateLookup"]["Defense"];
$stat[5] = $data[186];
}
if ($class == 3) // охотнику крит стрелковым, крит и уклон
{
$statName[3] = $optionsLang["StateLookup"]["CritRange"];
$ar = unpack("f", pack("V", $data[1322])); // for 2.4.1
$stat[3] = substr($ar[1],0,4)." %";
$statName[4] = $optionsLang["StateLookup"]["CritMele"];
$ar = unpack("f", pack("V", $data[1321])); // for 2.4.1
$stat[4] = substr($ar[1],0,4)." %";
$statName[5] = $optionsLang["StateLookup"]["Dodge"];
$ar = unpack("f", pack("V", $data[1317])); // for 2.4.1
$stat[5] = substr($ar[1],0,4)." %";
}
if ($class == 4) // вору уклон, пари и блок
{
$statName[3] = $optionsLang["StateLookup"]["Dodge"];
$ar = unpack("f", pack("V", $data[1317])); // for 2.4.1
$stat[3] = substr($ar[1],0,4)." %";
$statName[4] = $optionsLang["StateLookup"]["Pary"];
$ar = unpack("f", pack("V", $data[1318])); // for 2.4.1
$stat[4] = substr($ar[1],0,4)." %";
$statName[5] = $optionsLang["StateLookup"]["Block"];
$ar = unpack("f", pack("V", $data[1316])); // for 2.4.1
$stat[5] = substr($ar[1],0,4)." %";
}
if ($class == 5) // жрецу крит темной, крит святой и спел/хмл дамаг
{
$statName[3] = $optionsLang["StateLookup"]["ShadowCritSpell"];
$ar = unpack("f", pack("V", $data[1329])); // for 2.4.1
$stat[3] = substr($ar[1],0,4)." %";
$statName[4] = $optionsLang["StateLookup"]["HolyCritSpell"];
$ar = unpack("f", pack("V", $data[1325])); // for 2.4.1
$stat[4] = substr($ar[1],0,4)." %";
//$statName[5] = $optionsLang["StateLookup"]["Defense"];
//$stat[5] = $data[186]; // зачем?
$statName[5] =$data[1483]; // бонус к хилу
$stat[5] =$data[1463]." /"; // бонус к спел дамагу
}
if ($class == 7) // шаману крит, крит природой и холодом
{
$statName[3] = $optionsLang["StateLookup"]["CritMele"];
$ar = unpack("f", pack("V", $data[1321])); // for 2.4.1
$stat[3] = substr($ar[1],0,4)." %";
$statName[4] = $optionsLang["StateLookup"]["NatureCritSpell"];
$ar = unpack("f", pack("V", $data[1327])); // for 2.4.1
$stat[4] = substr($ar[1],0,4)." %";
$statName[5] = $optionsLang["StateLookup"]["FrostCritSpell"];
$ar = unpack("f", pack("V", $data[1328])); // for 2.4.1
$stat[5] = substr($ar[1],0,4)." %";
}
if ($class == 8) // магу криты на огонь, холод и тайную
{
$statName[3] = $optionsLang["StateLookup"]["FireCritSpell"];
$ar = unpack("f", pack("V", $data[1326])); // for 2.4.1
$stat[3] = substr($ar[1],0,4)." %";
$statName[4] = $optionsLang["StateLookup"]["FrostCritSpell"];
$ar = unpack("f", pack("V", $data[1328])); // for 2.4.1
$stat[4] = substr($ar[1],0,4)." %";
//$statName[5] = $optionsLang["StateLookup"]["ArcaneCritSpell"];
//$ar = unpack("f", pack("V", $data[1330])); // for 2.4.1
//$stat[5] = substr($ar[1],0,4)." %";
$statName[5] ="spell dmg";
$stat[5] =$data[1463]; // бонус к спел дамагу
}
if ($class == 9) // колдуну криты на темную, огонь и броню
{
$statName[3] = $optionsLang["StateLookup"]["FireCritSpell"];
$ar = unpack("f", pack("V", $data[1326])); // for 2.4.1
$stat[3] = substr($ar[1],0,4)." %";
$statName[4] = $optionsLang["StateLookup"]["ShadowCritSpell"];
$ar = unpack("f", pack("V", $data[1329])); // for 2.4.1
$stat[4] = substr($ar[1],0,4)." %";
//$statName[5] = $optionsLang["StateLookup"]["Defense"];
//$stat[5] = $data[186];// зачем?
$statName[5] ="Spell dmg";
$stat[5] =$data[1463]; // бонус к спел дамагу
}
if ($class == 11) // друиду крит, крит природу и крит тайную
{
$statName[3] = $optionsLang["StateLookup"]["CritMele"];
$ar = unpack("f", pack("V", $data[1321])); // for 2.4.1
$stat[3] = substr($ar[1],0,4)." %";
$statName[4] = $optionsLang["StateLookup"]["NatureCritSpell"];
$ar = unpack("f", pack("V", $data[1327])); // for 2.4.1
$stat[4] = substr($ar[1],0,4)." %";
$statName[5] = $optionsLang["StateLookup"]["ArcaneCritSpell"];
$ar = unpack("f", pack("V", $data[1330])); // for 2.4.1
$stat[5] = substr($ar[1],0,4)." %";
}
// определяем профессии у игрока
for ($i=928; $i<1311; $i+=3)
{
if ($data[$i]==0) continue;
$skill = $data[$i];
if ($skill > 65536) $skill -= 65536;
$value = $data[$i+1];
$value = $value % 65536;
if(@$optionsLang["SkillLookup"][$skill])
{
$prof["name"] = $optionsLang["SkillLookup"][$skill];
$prof["value"] = $value;
$profs[] = $prof;
}
}
$gender = dechex($data[57]);
$gender = str_pad($gender,8, 0, STR_PAD_LEFT);
$gender = $gender{3};
// определяем название гильдии в которой состоит персонаж( если состиот )
mysql_select_db($dbc) or die(mysql_error());
$sql = mysql_query("SELECT `name` FROM `guild` g INNER JOIN `guild_member` gm ON g.guildid = gm.guildid WHERE gm.guid=".$guid.";");
$row = mysql_fetch_array($sql, MYSQL_ASSOC);
$guildName = $row['name'];
$char_name = strtoupper(substr($char_name,0,1)). strtolower(substr($char_name,1,strlen($char_name)-1));
// иконка ранга в зависимости от количества хонор очков
$titleImg = "";
if ($rank) $titleImg = "Pvprank$rank.png";
// определяем вид иконки рассы на баре в зависимости от уровня персонажа
if ($lvl < 60)
$portrait = ImageCreateFromGif("static/portraits/np/$gender-$race-$class.gif");
else
if($lvl < 70)
$portrait = ImageCreateFromGif("static/portraits/60/$gender-$race-$class.gif");
else
$portrait = ImageCreateFromGif("static/portraits/70/$gender-$race-$class.gif");
$white = ImageColorAllocate($img, 255, 255, 255);
$whitea = ImageColorAllocateAlpha($img, 255, 255, 255, 80);
$black = ImageColorAllocate($img, 0, 0, 0);
$blacka = ImageColorAllocateAlpha($img, 0, 0, 0, 100);
$text_r = 255;
$text_g = 210;
$text_b = 0;
$s_text_r = 255;
$s_text_g = 255;
$s_text_b = 255;
if($text_color_1) list($text_r, $text_g, $text_b) = getHexColors($text_color_1);
if($text_color_2) list($s_text_r, $s_text_g, $s_text_b) = getHexColors($text_color_2);
$textcolor = ImageColorAllocate($img, $text_r, $text_g, $text_b);
$secondaryTextColor = ImageColorAllocate($img, $s_text_r, $s_text_g, $s_text_b);
ImageFill($img, 0, 0, $black);
$base_r = 0;
$base_g = 0;
$base_b = 0;
$dest_r = 0;
$dest_g = 120;
$dest_b = 255;
if($color_1) list($base_r, $base_g, $base_b) = getHexColors($color_1);
if($color_2) list($dest_r, $dest_g, $dest_b) = getHexColors($color_2);
// цвет линии опыта основан на цвете градиента юзербара
$xplinecolor = ImageColorAllocate($img, $dest_r, $dest_g, $dest_b);
for($i=0; $i<ImageSY($img); $i++)
{
$r = min($base_r + (($dest_r - $base_r) / ImageSY($img) * $i) ,255);
$g = min($base_g + (($dest_g - $base_g) / ImageSY($img) * $i) ,255);
$b = min($base_b + (($dest_b - $base_b) / ImageSY($img) * $i) ,255);
$c = ImageColorAllocate($img, $r, $g, $b);
ImageLine($img, 0, $i, ImageSX($img), $i, $c);
ImageColorDeallocate($img, $c);
}
$offset = 3;
ImageFilledRectangle($img, $offset, $offset, ImageSX($img) - $offset - 1, ImageSY($img) - $offset - 1, $blacka);
ImageRectangle($img, $offset, $offset, ImageSX($img) - $offset - 1, ImageSY($img) - $offset - 1, $blacka);
ImageCopyResampled($img, $portrait, 0, 0, 0, 0, 64, 64, ImageSX($portrait), ImageSY($portrait));
ImageRectangle($img, 0, 0, ImageSX($img) - 1, ImageSY($img) - 1, $black);
$left = 0;
$RIGHT_EDGE = 0;
$fontSize = 21;
if(strlen($char_name) >= 10)
$fontSize = 18;
if($titleImg)
{
$rank = ImageCreateFromPNG("static/ranks/$titleImg");
ImageCopyResampled($img, $rank, 70, 9, 0, 0, 20, 20, ImageSX($rank), ImageSY($rank));
ImageTTFText($img, $fontSize, 0, 95, 30, $textcolor, $mainFont, $char_name);
//$left = width($char_name, $fontSize, $mainFont) + 60;
//$left = 180;
}
else
{
ImageTTFText($img, $fontSize, 0, 75, 30, $textcolor, $mainFont, $char_name);
//$left = width($char_name, $fontSize, $mainFont) + 80;
}
$textLeft = min(315, 325);
$count = sizeof($profs);
if($count > 3) $count = 3;
for($i=1; $i<=$count; $i++)
{
if($profs && sizeof($profs) > 0)
{
$prof = @$profs[$i-1];
$name = @$prof['name'];
$v = @$prof['value'];
$txt = "$v $name";
ImageTTFText($img, 7, 0, $textLeft-60, 10 + (($i-1) * 9), $textcolor, $plainFont, win2uni($txt));
}
}
$lineWidth = $textLeft - 60;
$y = 33;
ImageLine($img, 65, $y, 65+$lineWidth, $y, $textcolor);
ImageLine($img, 65, $y, 65+$lineWidth*$xp/$next_xp, $y, $xplinecolor);
/*for($i=0; $i<30; $i++)
{
$c = ImageColorAllocateAlpha($img, $text_r, $text_g, $text_b, floor(87 / 30 * $i)+40);
ImageLine($img, 100+$midWidth+$i, $y, 100+$midWidth+$i+1, $y, $c);
ImageLine($img, 100-$i, $y, 99-$i, $y, $c);
ImageColorDeallocate($img, $c);
}*/
ImageTTFText($img, 10, 0, 70, 46, $textcolor, $mainFont, "".win2uni($optionsLang["StateLookup"]["Level"])." $lvl ".win2uni($optionsLang["RaceLookup"][$race])." ".win2uni($optionsLang["ClassLookup"][$class]." - ". $status));
if($guildName)
{
ImageTTFText($img, 9, 0, 70, 59, $textcolor, $mainFont, "<" . $guildName . "> - " . $realm . " " . "");
}
else ImageTTFText($img, 9, 0, 70, 59, $textcolor, $mainFont, $realm . " сервер " . "");
ImageTTFText($img, 8, 0, 110, 10, $textcolor, $mainFont, $gmlvl);
// положение параметров справа
// 1 столбец
for($n = 1; $n <= 5; $n++)
{
$w = $sta[$n];
$texu = "$w";
$bbo = ImageTTFBBox(9, 0, $mainFont, $texu);
ImageTTFText($img, 9, 0, ImageSX($img) - $bbo[2] - 128, 3 + ($n*11), $secondaryTextColor, $mainFont, win2uni($texu));
}
// 2 столбец
for($n = 1; $n <= 5; $n++)
{
$nam = $staName[$n];
$texu2 = "$nam";
$bbo2 = ImageTTFBBox(9, 0, $mainFont, $texu2);
ImageTTFText($img, 9, 0, ImageSX($img) - $bbo2[2] - 105, 3 + ($n*11), $secondaryTextColor, $mainFont, win2uni($texu2));
}
// 3 столбец
for($i = 1; $i <= 5; $i++)
{
$v = $stat[$i];
$text = "$v";
$bbox = ImageTTFBBox(9, 0, $mainFont, $text);
ImageTTFText($img, 9, 0, ImageSX($img) - $bbox[2] - 65, 3 + ($i*11), $secondaryTextColor, $mainFont, win2uni($text));
}
// 4 столбец
for($i = 1; $i <= 5; $i++)
{
$name = $statName[$i];
$text2 = "$name";
$bbox2 = ImageTTFBBox(9, 0, $mainFont, $text2);
ImageTTFText($img, 9, 0, ImageSX($img) - 60, 3 + ($i*11), $secondaryTextColor, $mainFont, win2uni($text2));
}
$filename = $char_name;
$ext = "png";
if($options["General"]["RedirectUrl"]==1)
{
$url = "userbar";
header("Location: http://".$_SERVER['HTTP_HOST']."/".$url."/".$filename.".".$ext);
}
header("Content-disposition: inline; filename=$filename.$ext");
header("content-type: image/$ext");
header("cache-control: max-age=86400");
ImagePNG($img);
}
?>
Сообщений: 6,450
Тем: 262
Зарегистрирован: Nov 2007
Репутация:
44,165
Готового нет и не должно быть. Есть отличная таблица, которая описывает каждое значение, я Вам ее уже дал. Теперь подумайте, я за Вас делать не буду.
|