Сообщений: 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
	 
 
	
	
		Готового нет и не должно быть. Есть отличная таблица, которая описывает каждое значение, я Вам ее уже дал. Теперь подумайте, я за Вас делать не буду.
	 
	
	
	
	
 
 
	
 |