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()); $sql = mysql_query("SELECT `guid`, `account`, `data`, `race`, `class`, `online`, `pending_honor` 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[34]; $honor = ceil($data[1432] + $row['pending_honor']); $kills = $data[1387]; // õî÷ó ÷òîáû ïîëîñà ïîä èìåíåì ïîêàçûâàëà ñêîëüêî îñòàëîñü èãðîêó äî ñëåäóþùåãî óðîâíÿ, åñëè òîëüêî îí íå ìàêñèìàëüíîãî óðîâíÿ // $xp = $data[856]; // íå ðåâàëèçîâàë åùå // $next_xp = $data[857]; // íå ðåâàëèçîâàë åùå $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]; $sta[4] = $data[174]; $staName[4] = $optionsLang["StateLookup"]["Intelect"]; $sta[5] = $data[175]; $staName[5] = $optionsLang["StateLookup"]["Spirit"]; $stat[1] = $data[28]; $statName[1] = $optionsLang["StateLookup"]["Health"]; // ïîëó÷àåì äàííûå î ñòàòóñå ïåðñîíàæà: ÃÌ óðîâåíü 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;} 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[1256])); $stat[2] = substr($ar[1],0,4)."%"; } else // îñòàëüíûì ìàíó { $statName[2] = $optionsLang["StateLookup"]["Mana"]; $stat[2] = $data[29]; } if ($class == 1) // âîèíó áëîê, áðîíþ è óêëîí { $statName[3] = $optionsLang["StateLookup"]["Block"]; $ar = unpack("f", pack("V", $data[1252])); $stat[3] = substr($ar[1],0,4)."%"; $statName[4] = $optionsLang["StateLookup"]["Dodge"]; $ar = unpack("f", pack("V", $data[1253])); $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[1260])); $stat[3] = substr($ar[1],0,4)."%"; $statName[4] = $optionsLang["StateLookup"]["Block"];// $ar = unpack("f", pack("V", $data[1252])); $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[1257])); $stat[3] = substr($ar[1],0,4)."%"; $statName[4] = $optionsLang["StateLookup"]["CritMele"]; $ar = unpack("f", pack("V", $data[1256])); $stat[4] = substr($ar[1],0,4)."%"; $statName[5] = $optionsLang["StateLookup"]["Dodge"]; $ar = unpack("f", pack("V", $data[1253])); $stat[5] = substr($ar[1],0,4)."%"; } if ($class == 4) // âîðó óêëîí, ïàðè è áðîíþ { $statName[3] = $optionsLang["StateLookup"]["Dodge"]; $ar = unpack("f", pack("V", $data[1253])); $stat[3] = substr($ar[1],0,4)."%"; $statName[4] = $optionsLang["StateLookup"]["Pary"]; $ar = unpack("f", pack("V", $data[1254])); $stat[4] = substr($ar[1],0,4)."%"; $statName[5] = $optionsLang["StateLookup"]["Defense"]; $stat[5] = $data[186]; } if ($class == 5) // æðåöó êðèò òåìíîé, êðèò ñâÿòîé è áðîíþ { $statName[3] = $optionsLang["StateLookup"]["ShadowCritSpell"]; $ar = unpack("f", pack("V", $data[1264])); $stat[3] = substr($ar[1],0,4)."%"; $statName[4] = $optionsLang["StateLookup"]["HolyCritSpell"]; $ar = unpack("f", pack("V", $data[1260])); $stat[4] = substr($ar[1],0,4)."%"; $statName[5] = $optionsLang["StateLookup"]["Defense"]; $stat[5] = $data[186]; // çà÷åì? } if ($class == 7) // øàìàíó êðèò, êðèò ïðèðîäîé è áðîíþ (à âîîáùå íå ïëîõî áû êðèòû íà îãîíü, õîëîä...) { $statName[3] = $optionsLang["StateLookup"]["CritMele"]; $ar = unpack("f", pack("V", $data[1256])); $stat[3] = substr($ar[1],0,4)."%"; $statName[4] = $optionsLang["StateLookup"]["NatureCritSpell"]; $ar = unpack("f", pack("V", $data[1262])); $stat[4] = substr($ar[1],0,4)."%"; $statName[5] = $optionsLang["StateLookup"]["Defense"]; $stat[5] = $data[186]; } if ($class == 8) // ìàãó êðèòû íà îãîíü, õîëîä è òàéíóþ { $statName[3] = $optionsLang["StateLookup"]["FireCritSpell"]; $ar = unpack("f", pack("V", $data[1261])); $stat[3] = substr($ar[1],0,4)."%"; $statName[4] = $optionsLang["StateLookup"]["FrostCritSpell"]; $ar = unpack("f", pack("V", $data[1263])); $stat[4] = substr($ar[1],0,4)."%"; $statName[5] = $optionsLang["StateLookup"]["ArcaneCritSpell"]; $ar = unpack("f", pack("V", $data[1265])); $stat[5] = substr($ar[1],0,4)."%"; } if ($class == 9) // êîëäóíó êðèòû íà òåìíóþ, îãîíü è áðîíþ { $statName[3] = $optionsLang["StateLookup"]["FireCritSpell"]; $ar = unpack("f", pack("V", $data[1261])); $stat[3] = substr($ar[1],0,4)."%"; $statName[4] = $optionsLang["StateLookup"]["ShadowCritSpell"]; $ar = unpack("f", pack("V", $data[1264])); $stat[4] = substr($ar[1],0,4)."%"; $statName[5] = $optionsLang["StateLookup"]["Defense"]; $stat[5] = $data[186]; } if ($class == 11) // äðóèäó êðèò, êðèò ïðèðîäó è êðèò òàéíóþ { $statName[3] = $optionsLang["StateLookup"]["CritMele"]; $ar = unpack("f", pack("V", $data[1256])); $stat[3] = substr($ar[1],0,4)."%"; $statName[4] = $optionsLang["StateLookup"]["NatureCritSpell"]; $ar = unpack("f", pack("V", $data[1262])); $stat[4] = substr($ar[1],0,4)."%"; $statName[5] = $optionsLang["StateLookup"]["ArcaneCritSpell"]; $ar = unpack("f", pack("V", $data[1265])); $stat[5] = substr($ar[1],0,4)."%"; } // îïðåäåëÿåì ïðîôåññèè ó èãðîêà for ($i=858; $i<1241; $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[36]); $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); for($i=0; $i= 10) $fontSize = 16; 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($left + 150, 335); $lineWidth = $textLeft - 120; for($i=1; $i<=3; $i++) { if($profs && sizeof($profs) > 0) { $prof = @$profs[$i-1]; $name = @$prof['name']; $v = @$prof['value']; $txt = "$v $name"; ImageTTFText($img, 8, 0, $textLeft - width($txt, 8, $plainFont), 11 + (($i-1) * 11), $textcolor, $plainFont, win2uni($txt)); } } $midWidth = $lineWidth; $y = 33; ImageLine($img, 100, $y, 100+$midWidth, $y, $textcolor); 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 . " server " . ""); ImageTTFText($img, 9, 0, 5, 15, $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] - 110, 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] - 62, 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"; header("Content-disposition: inline; filename=$filename.$ext"); header("content-type: image/$ext"); header("cache-control: max-age=86400"); ImagePNG($img); } ?>
* - code copy of your browser's address bar! To obtain the signature should be inserted in the forum received a link between [IMG] and [/ IMG]