Пример #1
0
function showPlayerEquip($guid, $char, $char_data, $char_stats)
{
    global $lang;
    $char_name = $char['name'];
    $powerType = $char_data[UNIT_FIELD_BYTES_0] >> 24 & 255;
    $genderId = $char['gender'];
    $class = $char['class'];
    $race = $char['race'];
    $money = $char['money'];
    $level = $char['level'];
    $health = $char['health'];
    $maxhealth = $char_stats['maxhealth'];
    $power = $char_stats['maxpower1'];
    $maxpower = $char_stats['maxpower1'];
    echo "<table cellSpacing=0 cellPadding=0 border=0px>";
    echo "<tbody><tr><td width=356px height=468px align=left valign=top>";
    echo "<div style=\"position: relative; border: 0px; left: 0px; top: 0px;\">";
    if (getRace($race)) {
        $frame = $genderId . "_" . $race . ".gif";
    } else {
        $frame = "TempPortrait.gif";
    }
    echo "<img src=images/player_info/characterframe/{$frame} style=\"position: absolute; border: 0px; left: 9px; top: 6px;\">";
    echo "<img src=images/player_info/characterframe/characterframe.png style=\"position: absolute; border: 0px; left: 0px; top: 0px;\">";
    echo "<table cellspacing=0 class=playerName style='position: absolute; left: 73px; top: 15px;'>";
    echo "<tbody>";
    echo "<tr><td class=name>{$char_name} - " . getClass($class) . " {$level} lvl</td></tr>";
    echo "</tbody>";
    echo "</table>";
    // Вычисление и генерация переменных $health и $maxhealth для создания изменяемой полоски
    if ($health > $maxhealth) {
        $health = $maxhealth;
    }
    $maxhealth != 0 ? $h_percent = round($health / $maxhealth * 100, 0) : ($h_percent = 0);
    $h_percent == 0 ? $h_l_on_off = "left-off" : ($h_l_on_off = "left-on");
    $h_percent == 100 ? $h_r_on_off = "right-on" : ($h_r_on_off = "right-off");
    echo "<table cellpadding='0' cellspacing='0' width=275px style='position:absolute; top:37px; left:73px'>";
    echo "<tbody>";
    echo "<tr>";
    echo "<td style='position:absolute; width: 275px; font-size:10px;' align = center><font color=white><b>{$health} / {$maxhealth}</b></font></td>";
    echo "<td style='width: 6px; background: url(images/bar/{$h_l_on_off}.gif) left no-repeat;'></td>";
    echo "<td style='width: " . $h_percent * 2.75 . "; height:13px; background: url(images/bar/bar-on.gif) repeat-x;'></td>";
    echo "<td style='width: " . (275 - $h_percent * 2.75) . "; height:13px; background: url(images/bar/bar-off.gif) repeat-x;'></td>";
    echo "<td style='width: 6px;background: url(images/bar/{$h_r_on_off}.gif) right no-repeat;'></td>";
    echo "</tr>";
    echo "</tbody>";
    echo "</table>";
    // Вычисление и генерация переменных $power и $maxpower для создания изменяемой полоски
    if ($power > $maxpower) {
        $power = $maxpower;
    }
    //Цвет полоски
    if ($powerType == 3) {
        $typeSlid = "energy";
    } elseif ($powerType == 1) {
        $typeSlid = "rage";
    } else {
        $typeSlid = "mana";
    }
    //Мана
    $m_percent = $maxpower != 0 ? round($power / $maxpower * 100, 0) : 0;
    $m_l_on_off = $m_percent == 0 ? "left-off" : "{$typeSlid}-left-on";
    $m_r_on_off = $m_percent == 100 ? "{$typeSlid}-right-on" : "right-off";
    echo "<table cellpadding='0' cellspacing='0' width=275px style='position:absolute; top:55px; left:73px'>";
    echo "<tbody>";
    echo "<tr>";
    echo "<td style='position:absolute; width: 275px; font-size:10px;' align = center><font color=white><b>{$power} / {$maxpower}</b></font></td>";
    echo "<td style='width: 6px; height:13px; background: url(images/bar/{$m_l_on_off}.gif) left no-repeat;'></td>";
    echo "<td style='width: " . $m_percent * 2.75 . "px; height:13px; background: url(images/bar/{$typeSlid}-bar-on.gif) repeat-x;'></td>";
    echo "<td style='width: " . (275 - $m_percent * 2.75) . "px; height:13px; background: url(images/bar/bar-off.gif) repeat-x;'></td>";
    echo "<td style='width: 6px; height:13px; background: url(images/bar/{$m_r_on_off}.gif) right no-repeat;'></td>";
    echo "</tr>";
    echo "</tbody>";
    echo "</table>";
    // Player stats render
    echo '<table class=playerstats cellSpacing=0 style="width: 230; position: absolute; left: 68; top: 78;">';
    echo '<tbody>';
    // Resistances render
    echo '<tr><td colspan=2 align=center>';
    echo '<table class=resistances cellSpacing=0>';
    echo '<tbody>';
    echo "<tr>\n";
    renderResist(SCHOOL_FIRE, $char_data);
    echo "\n";
    renderResist(SCHOOL_NATURE, $char_data);
    echo "\n";
    renderResist(SCHOOL_FROST, $char_data);
    echo "\n";
    renderResist(SCHOOL_SHADOW, $char_data);
    echo "\n";
    renderResist(SCHOOL_ARCANE, $char_data);
    echo "\n";
    echo "</tr>\n";
    echo '</tbody>';
    echo '</table>';
    echo '</td></tr>';
    echo '<tr><td class=head width=50%>' . $lang['player_page_base'] . '</td><td class=head width=50%>' . $lang['player_page_defense'] . '</td></tr>';
    echo '<tr>';
    // Base Stats render
    echo '<td>';
    echo '<div style="position: relative; left: 0; top: 0;">';
    echo '<table class=stattext cellSpacing=0>';
    echo "<tr><td>" . getStatTypeName(STAT_STRENGTH) . ":</td></tr>\n";
    echo "<tr><td>" . getStatTypeName(STAT_AGILITY) . ":</td></tr>\n";
    echo "<tr><td>" . getStatTypeName(STAT_STAMINA) . ":</td></tr>\n";
    echo "<tr><td>" . getStatTypeName(STAT_INTELLECT) . ":</td></tr>\n";
    echo "<tr><td>" . getStatTypeName(STAT_SPIRIT) . ":</td></tr>\n";
    echo "<tr><td>" . getResistance(SCHOOL_ARMOR) . ":</td></tr>\n";
    echo "</table>\n";
    echo "<table class=statvalue cellSpacing=0 style=\"position: absolute; left: 0; top: 0;\">\n";
    echo "<tr>";
    renderStatRow(STAT_STRENGTH, $char_data);
    echo "</tr>\n";
    echo "<tr>";
    renderStatRow(STAT_AGILITY, $char_data);
    echo "</tr>\n";
    echo "<tr>";
    renderStatRow(STAT_STAMINA, $char_data);
    echo "</tr>\n";
    echo "<tr>";
    renderStatRow(STAT_INTELLECT, $char_data);
    echo "</tr>\n";
    echo "<tr>";
    renderStatRow(STAT_SPIRIT, $char_data);
    echo "</tr>\n";
    echo "<tr>";
    renderResist(SCHOOL_ARMOR, $char_data);
    echo "</tr>\n";
    echo '</table>';
    echo '</div>';
    echo '</td>';
    // Defence render
    echo '<td>';
    echo '<div style="position: relative; left: 0; top: 0;">';
    echo '<table class=stattext cellSpacing=0>';
    echo '<tr><td>' . $lang['player_armor'] . '</td></tr>';
    echo '<tr><td>' . $lang['player_defense'] . '</td></tr>';
    echo '<tr><td>' . $lang['player_dodge'] . '</td></tr>';
    echo '<tr><td>' . $lang['player_parry'] . '</td></tr>';
    echo '<tr><td>' . $lang['player_block'] . '</td></tr>';
    echo '<tr><td>' . $lang['player_recilence'] . '</td></tr>';
    echo '</table>';
    echo '<table class=statvalue cellSpacing=0 style="position: absolute; left: 0; top: 0;">';
    echo "<tr>";
    @renderResist(SCHOOL_ARMOR, $char_data);
    echo "</tr>\n";
    echo "<tr>";
    @renderDefense($char_data);
    echo "</tr>\n";
    echo "<tr>";
    @renderDodge($char_data);
    echo "</tr>\n";
    echo "<tr>";
    @renderParry($char_data);
    echo "</tr>\n";
    echo "<tr>";
    @renderBlock($char_data);
    echo "</tr>\n";
    echo "<tr>";
    @renderRecilence($char_data);
    echo "</tr>\n";
    echo '</table>';
    echo '</div>';
    echo '</td>';
    echo '</tr>';
    echo '<tr><td class=head width=50%>' . $lang['player_melee'] . '</td><td class=head width=50%>' . $lang['player_ranged'] . '</td></tr>';
    echo '<tr>';
    // Melee render
    echo '<td>';
    echo '<div style="position: relative; left: 0; top: 0;">';
    echo '<table class=stattext cellSpacing=0>';
    echo '<tr><td>' . $lang['player_m_skill'] . '</td></tr>';
    echo '<tr><td>' . $lang['player_m_damage'] . '</td></tr>';
    echo '<tr><td>' . $lang['player_m_speed'] . '</td></tr>';
    echo '<tr><td>' . $lang['player_m_power'] . '</td></tr>';
    echo '<tr><td>' . $lang['player_m_hit'] . '</td></tr>';
    echo '<tr><td>' . $lang['player_m_crit'] . '</td></tr>';
    echo '</table>';
    echo '<table class=statvalue cellSpacing=0 style="position: absolute; left: 0; top: 0;">';
    echo "<tr>";
    @renderMeleeSkill($char_data);
    echo "</tr>\n";
    echo "<tr>";
    @renderMeleeDamage($char_data);
    echo "</tr>\n";
    echo "<tr>";
    @renderMeleeSpeed($char_data);
    echo "</tr>\n";
    echo "<tr>";
    @renderMeleeAP($char_data);
    echo "</tr>\n";
    echo "<tr>";
    @renderMeleeHit($char_data);
    echo "</tr>\n";
    echo "<tr>";
    @renderMeleeCrit($char_data);
    echo "</tr>\n";
    echo '</table>';
    echo '</div>';
    echo '</td>';
    // Ranged render
    echo '<td>';
    echo '<div style="position: relative; left: 0; top: 0;">';
    echo '<table class=stattext cellSpacing=0>';
    echo '<tr><td>' . $lang['player_r_skill'] . '</td></tr>';
    echo '<tr><td>' . $lang['player_r_damage'] . '</td></tr>';
    echo '<tr><td>' . $lang['player_r_speed'] . '</td></tr>';
    echo '<tr><td>' . $lang['player_r_power'] . '</td></tr>';
    echo '<tr><td>' . $lang['player_r_hit'] . '</td></tr>';
    echo '<tr><td>' . $lang['player_r_crit'] . '</td></tr>';
    echo '</table>';
    echo '<table class=statvalue cellSpacing=0 style="position: absolute; left: 0; top: 0;">';
    echo "<tr>";
    @renderRangedSkill($char_data);
    echo "</tr>\n";
    echo "<tr>";
    @renderRangedDamage($char_data);
    echo "</tr>\n";
    echo "<tr>";
    @renderRangedSpeed($char_data);
    echo "</tr>\n";
    echo "<tr>";
    @renderRangedAP($char_data);
    echo "</tr>\n";
    echo "<tr>";
    @renderRangedHit($char_data);
    echo "</tr>\n";
    echo "<tr>";
    @renderRangedCrit($char_data);
    echo "</tr>\n";
    echo '</table>';
    echo '</div>';
    echo '</td>';
    echo '</tr>';
    echo '<tr><td class=head colspan=2>' . $lang['player_spell'] . '</td></tr>';
    echo '<tr>';
    echo '<td>';
    // 1 part Spell render
    echo '<div style="position: relative; left: 0; top: 0;">';
    echo '<table class=stattext cellSpacing=0>';
    echo '<tr><td>' . $lang['player_s_damage'] . '</td></tr>';
    echo '<tr><td>' . $lang['player_s_healing'] . '</td></tr>';
    echo '<tr><td>' . $lang['player_s_hit'] . '</td></tr>';
    echo '</table>';
    echo '<table class=statvalue cellSpacing=0 style="position: absolute; left: 0; top: 0;">';
    echo "<tr>";
    @renderSpellDamage($char_data);
    echo "</tr>\n";
    echo "<tr>";
    @renderSpellHeal($char_data);
    echo "</tr>\n";
    echo "<tr>";
    @renderSpellHit($char_data);
    echo "</tr>\n";
    echo '</table>';
    echo '</div>';
    echo '</td>';
    // 2 part Spell render
    echo '<td>';
    echo '<div style="position: relative; left: 0; top: 0;">';
    echo '<table class=stattext cellSpacing=0>';
    echo '<tr><td>' . $lang['player_s_crit'] . '</td></tr>';
    echo '<tr><td>' . $lang['player_s_haste'] . '</td></tr>';
    echo '<tr><td>' . $lang['player_s_regen'] . '</td></tr>';
    echo '</table>';
    echo '<table class=statvalue cellSpacing=0 style="position: absolute; left: 0; top: 0;">';
    echo "<tr>";
    @renderSpellCrit($char_data);
    echo "</tr>\n";
    echo "<tr>";
    @renderSpellHaste($char_data);
    echo "</tr>\n";
    echo "<tr>";
    @renderManaRegen($char_data);
    echo "</td></tr>\n";
    echo '</table>';
    echo '</div>';
    echo '</td>';
    echo '</tr>';
    echo '</tbody>';
    echo '</table>';
    $imgsize = "armory";
    show_item_by_guid($char_data[PLAYER_SLOT_ITEM_HEAD], $imgsize, 22, 73);
    show_item_by_guid($char_data[PLAYER_SLOT_ITEM_NECK], $imgsize, 22, 114);
    show_item_by_guid($char_data[PLAYER_SLOT_ITEM_SHOULDER], $imgsize, 22, 155);
    show_item_by_guid($char_data[PLAYER_SLOT_ITEM_BACK], $imgsize, 22, 196);
    show_item_by_guid($char_data[PLAYER_SLOT_ITEM_CHEST], $imgsize, 22, 237);
    show_item_by_guid($char_data[PLAYER_SLOT_ITEM_SHIRT], $imgsize, 22, 278);
    show_item_by_guid($char_data[PLAYER_SLOT_ITEM_TABARD], $imgsize, 22, 319);
    show_item_by_guid($char_data[PLAYER_SLOT_ITEM_WRIST], $imgsize, 22, 360);
    show_item_by_guid($char_data[PLAYER_SLOT_ITEM_GLOVES], $imgsize, 306, 73);
    show_item_by_guid($char_data[PLAYER_SLOT_ITEM_BELT], $imgsize, 306, 114);
    show_item_by_guid($char_data[PLAYER_SLOT_ITEM_LEGS], $imgsize, 306, 155);
    show_item_by_guid($char_data[PLAYER_SLOT_ITEM_FEET], $imgsize, 306, 196);
    show_item_by_guid($char_data[PLAYER_SLOT_ITEM_FINGER1], $imgsize, 306, 237);
    show_item_by_guid($char_data[PLAYER_SLOT_ITEM_FINGER2], $imgsize, 306, 278);
    show_item_by_guid($char_data[PLAYER_SLOT_ITEM_TRINKET1], $imgsize, 306, 319);
    show_item_by_guid($char_data[PLAYER_SLOT_ITEM_TRINKET2], $imgsize, 306, 360);
    show_item_by_guid($char_data[PLAYER_SLOT_ITEM_MAIN_HAND], $imgsize, 122, 384);
    show_item_by_guid($char_data[PLAYER_SLOT_ITEM_OFF_HAND], $imgsize, 164, 384);
    show_item_by_guid($char_data[PLAYER_SLOT_ITEM_RANGED], $imgsize, 206, 384);
    // Bags
    //show_item_by_guid($char_data[PLAYER_SLOT_ITEM_TABARD+2],$imgsize,0,400);
    //show_item_by_guid($char_data[PLAYER_SLOT_ITEM_TABARD+4],$imgsize,40,400);
    //show_item_by_guid($char_data[PLAYER_SLOT_ITEM_TABARD+6],$imgsize,80,400);
    //show_item_by_guid($char_data[PLAYER_SLOT_ITEM_TABARD+8],$imgsize,120,400);
    //show_item_by_guid($char_data[OFFSET_EQU_RANGED+32],$imgsize,50,50);
    echo "</div>";
    echo "</td></tr></tbody>";
    echo "</table></td>\n";
    echo "<td valign=top>";
    show_player_auras_from_db($guid);
    echo "</td>";
    echo "</tr>";
    echo "</table>";
}
Пример #2
0
function showPlayerGuild($guid, $char_data)
{
    global $cDB;
    // Получение разрешений на просмотр
    $currentTabRights = array(0x0, 0x0, 0x0, 0x0, 0x0, 0x0);
    $guildid = $char_data[PLAYER_GUILDID];
    $rank = $char_data[PLAYER_GUILDRANK];
    if ($guildid == 0) {
        echo "Not in guild";
        return;
    }
    $gbrights = $cDB->select("SELECT * FROM `guild_bank_right` WHERE `guildid` = ?d AND `rid` = ?d", $guildid, $rank);
    foreach ($gbrights as $r) {
        $currentTabRights[$r['TabId']] |= $r['gbright'];
    }
    // Получаем данные о табах
    $tabinfo = $cDB->select("SELECT\n  `TabId` AS ARRAY_KEY,\n  `TabName`,\n  `TabIcon`,\n  `TabText`\n  FROM `guild_bank_tab`\n  WHERE guildid = ?d\n  ORDER BY `TabId`", $guildid);
    if ($tabinfo) {
        $bank_tabs = $cDB->select("SELECT\n    `TabId` AS ARRAY_KEY_1,\n    `SlotId` AS ARRAY_KEY_2,\n    `item_guid`,\n    `item_entry`\n    FROM `guild_bank_item`\n    WHERE guildid = ?d\n    ORDER BY `TabId`, `SlotId`", $guildid);
        // Скрипт смены табов в гильдбанке
        echo '<script type="text/javascript" id="guild_script">
     function showTab(tab){
      for(i=0;i<6;i++)
       if (div = document.getElementById("guildtab_" + i))
        div.style.visibility=(i==tab)?"visible":"hidden";
         return false;
     }
    </script>';
        // Отрисовываем гильд банк
        echo '<br><div id=guildbank style="color: #FFFFFF; position: relative; width: 765px; height: 424px;">';
        echo '<img src="images/player_info/bank/guildbank.gif" style="position: absolute; left: 0px; top: 0px;">';
        echo '<div style="position: absolute; left: 0px; top: 2px; width: 725px; text-align: center;"><b>Guild Bank</b></div>';
        $visible = "visible";
        foreach ($tabinfo as $tabid => $tab) {
            // Проверяем права на просмотр
            if ($currentTabRights[$tabid] & GUILD_BANK_RIGHT_VIEW_TAB) {
                // Выводим новый таб
                echo '<div id=guildtab_' . $tabid . ' style="visibility: ' . $visible . ';">';
                $visible = "hidden";
                if ($tabinfo) {
                    echo '<div style="position: absolute; left: 0px; top: 28px; width: 723px;"><b>' . $tab['TabName'] . '</b></div>';
                }
                // Вывод вещей в табе
                if (isset($bank_tabs[$tabid])) {
                    foreach ($bank_tabs[$tabid] as $slot => $tabslot) {
                        show_item_by_guid($tabslot['item_guid'], "guildb", 49 * intval($slot / 7) + 23, 44 * intval($slot % 7) + 61);
                    }
                }
                echo '</div>';
                // Иконка таба
                $img = 'images/icons/' . ($tab['TabIcon'] ? strtolower($tab['TabIcon']) : 'wowunknownitem01') . '.jpg';
                // Описание таба
                $tip = $tab['TabName'] ? addTooltip($tab['TabName']) : '';
                echo '<a href=# onclick="return showTab(' . $tabid . ');">';
                echo '<img src="images/player_info/bank/guildbanktab.gif" style="position: absolute; left: 724px; top: ' . (55 + $tabid * 50) . 'px; border: 0px;">';
                echo '<img width=32px src="' . $img . '" ' . $tip . ' style="position: absolute; left: 727px; top: ' . (66 + $tabid * 50) . 'px;border: 0px;">';
                echo '</a>';
            } else {
                echo '<img src="images/player_info/bank/guildbanktab.gif" ' . addTooltip('no rights') . ' style"position: absolute; left: 724px; top: ' . (55 + $tabid * 50) . 'px; border: 0px;">';
            }
        }
        echo '</div>';
    } else {
        echo "No guild bank present";
    }
}
function showPlayerInventory($guid, $char_data)
{
    global $lang, $cDB;
    $inventory = $cDB->select("SELECT\n  `bag` AS ARRAY_KEY_1,\n  `slot` AS ARRAY_KEY_2,\n  `item`,\n  `item_template`\n  FROM `character_inventory`\n  WHERE `guid` = ?d\n  ORDER BY `bag`, `slot`", $guid);
    echo "<table width=100%><tbody><tr><td>";
    if ($inventory) {
        foreach ($inventory as $id => $bag) {
            if ($id == 0) {
                drawBankFrame($bag);
                drawBackPack($bag);
                drawKeyRing($bag);
                foreach ($bag as $slot => $container) {
                    show_item_by_guid($container['item']);
                }
            } else {
                echo "<span  style=\"float: left;\">";
                drawContainer($id, $bag);
                echo "</span>";
            }
        }
    }
    echo "</td></tr></tbody></table>";
}