|
Web-обвязки Установка веб обвязки, настройка и её создание. |
Ссылки сообщества |
Изображения и альбомы |
Пользователи |
К странице... |
Опции темы |
03.04.2009, 18:52 | #1 |
Пользователь
|
Помогите с userbar
Вот я поставил userbar он не правильно отображает данные, потому что он под версию 2.х.х, а мне надо чтоб онтображал под 3.0.9 я знаю даже где править чтоб правильно отображал данные но не знаю какие значения ставить вот конфиг помогите
PHP код:
|
03.04.2009, 20:13 | #2 |
Администратор
Регистрация: 09.11.2007
Адрес: Украина, Кривбасс
Возраст: 38
Сообщений: 6,377
Отблагодарили 3,722 раз(а)
Рейтинг мнений:
578
|
Ответ: Помогите с userbar
Как бы ничего не упустил.
PHP код:
composer require laravel/framework yarn add vue |
03.04.2009, 20:28 | #3 | |
Пользователь
|
Ответ: Помогите с userbar
Цитата:
Да спасибо заработало,но не все не отображается мана,блок,броня... а дух пишет очень большое число... вот у меня еще есть такие строчки PHP код:
PHP код:
PHP код:
PHP код:
PHP код:
PHP код:
Если можно весь конфиг выложете пожалуйсто..... |
|
03.04.2009, 20:37 | #4 |
Администратор
Регистрация: 09.11.2007
Адрес: Украина, Кривбасс
Возраст: 38
Сообщений: 6,377
Отблагодарили 3,722 раз(а)
Рейтинг мнений:
578
|
Ответ: Помогите с userbar
composer require laravel/framework yarn add vue |
Сказали спасибо: |
03.04.2009, 20:46 | #5 | |
Пользователь
|
Ответ: Помогите с userbar
Цитата:
Код:
<?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); } ?> |
|
03.04.2009, 20:55 | #6 |
Администратор
Регистрация: 09.11.2007
Адрес: Украина, Кривбасс
Возраст: 38
Сообщений: 6,377
Отблагодарили 3,722 раз(а)
Рейтинг мнений:
578
|
Ответ: Помогите с userbar
Готового нет и не должно быть. Есть отличная таблица, которая описывает каждое значение, я Вам ее уже дал. Теперь подумайте, я за Вас делать не буду.
composer require laravel/framework yarn add vue |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|