Exemplo n.º 1
0
function createSpellDetails($spell)
{
    global $lang;
    echo '<table class=details width=600><tbody>';
    echo '<tr><td colspan=4 class=head>' . $lang['detail_info'] . '</td></tr>';
    echo '<tr><th>Name</th><td colspan=2>' . $spell['SpellName'] . '</td><td align=right>' . $spell['Rank'] . '</td></tr>';
    if ($spell['Description']) {
        echo '<tr><th width=60>Info:</th><td colspan=3>' . getSpellDesc($spell) . '</td></tr>';
    }
    if ($spell['ToolTip']) {
        echo '<tr><th>Buff:</th><td colspan=3>' . getSpellBuff($spell) . '</td></tr>';
    }
    // Стоимость и длительность
    $cost = getSpellCostText($spell);
    $duration = getSpellDurationText($spell);
    if ($cost or $duration) {
        echo '<tr><th>Cost</th><td>' . ($cost ? $cost : 'No Cost') . '</td><th>Duration</th><td>' . $duration . '</td></tr>';
    }
    echo '<tr>';
    echo '<th width=13%>Level</th>';
    echo '<td width=37%>Base ' . $spell['baseLevel'] . ', Max ' . $spell['maxLevel'] . ', Spell ' . $spell['spellLevel'] . '</td>';
    echo '<th width=20%>Range</th>';
    echo '<td width=30%>' . getRangeText($spell['rangeIndex']) . '</td>';
    echo '</tr>';
    // Время квста и школа (выводятся всегда)
    echo '<tr><th>Cast time</th><td>' . getCastTimeText($spell) . '</td><th>School</th><td>' . getSpellSchool($spell['SchoolMask']) . '</td></tr>';
    $skillAbility = getSkillLineAbility($spell['id']);
    if ($skillAbility or $spell['Category']) {
        echo '<tr>';
        echo '<th>Skill</th>';
        if ($skillAbility) {
            echo '<td>' . getSkillName($skillAbility['skillId']) . '</td>';
        } else {
            echo '<td>n/a</td>';
        }
        echo '<th>Category</th>';
        if ($spell['Category']) {
            echo '<td>' . getCategoryName($spell['Category']) . '</td>';
        } else {
            echo '<td>n/a</td>';
        }
        echo '</tr>';
    }
    // Вывод механики и диспелла
    if ($spell['Mechanic'] or $spell['Dispel']) {
        echo '<tr>';
        echo '<th>Mechanic</th><td>' . getMechanicName($spell['Mechanic']) . '</td>';
        echo '<th>Dispel type</th><td>' . getDispelName($spell['Dispel']) . '</td>';
        echo '</tr>';
    }
    // Вывод кулдаунов
    $cooldown = getSpellCooldown($spell);
    if ($cooldown or $spell['StartRecoveryCategory'] or $spell['StartRecoveryTime']) {
        echo '<tr>';
        echo '<th>Cooldown</th>';
        if ($cooldown) {
            echo '<td>' . getTimeText($cooldown / 1000) . '</td>';
        } else {
            echo '<td>No cooldown</td>';
        }
        echo '<th>Global cooldown</th>';
        if ($spell['StartRecoveryCategory'] or $spell['StartRecoveryTime']) {
            echo '<td>';
            echo 'Affected';
            if ($spell['StartRecoveryTime']) {
                echo ', ' . getTimeText($spell['StartRecoveryTime'] / 1000);
            } else {
                echo ', Not start';
            }
            echo '</td>';
        } else {
            echo '<td>n/a</td>';
        }
        echo '</tr>';
    }
    // Вывод требований форм
    $stances = $spell['Stances'];
    $stancesNot = $spell['StancesNot'];
    if ($stances or $stancesNot) {
        echo '<tr>';
        echo '<th>Req form</th>';
        if ($stances) {
            echo '<td>' . getAllowableForm($stances) . '</td>';
        } else {
            echo '<td>n/a</td>';
        }
        echo '<th>Not in form</th>';
        if ($stancesNot) {
            echo '<td>' . getAllowableForm($stancesNot) . '</td>';
        } else {
            echo '<td>n/a</td>';
        }
        echo '</tr>';
    }
    // Вывод требований одетого снаряжения
    $itemClass = $spell['EquippedItemClass'];
    $itemSubClass = $spell['EquippedItemSubClassMask'];
    $inventoryTypeMask = $spell['EquippedItemInventoryTypeMask'];
    if ($itemClass >= 0 or $inventoryTypeMask) {
        echo '<tr>';
        echo '<th>Req item</th>';
        if ($itemClass >= 0) {
            echo '<td>';
            if ($itemSubClass) {
                echo getClassName($itemClass, 0) . ': ' . getSubclassList($itemClass, $itemSubClass);
            } else {
                echo getClassName($itemClass);
            }
            echo '</td>';
        } else {
            echo '<td>n/a</td>';
        }
        echo '<th>Inv type</th>';
        if ($inventoryTypeMask) {
            echo '<td>' . getInventoryTypeList($inventoryTypeMask) . '</td>';
        } else {
            echo '<td>n/a</td>';
        }
        echo '</tr>';
    }
    // Вывод тотм категорий и спеллфокуса
    $totem1 = $spell['TotemCategory_1'];
    $totem2 = $spell['TotemCategory_2'];
    $focus = $spell['RequiresSpellFocus'];
    if ($totem1 or $totem2 or $focus) {
        echo '<tr>';
        echo '<th>Tools</th>';
        if ($totem1 or $totem2) {
            echo '<td>';
            if ($totem1) {
                echo getTotemCategory($totem1);
            }
            if ($totem2) {
                echo ', ' . getTotemCategory($totem2);
            }
            echo '</td>';
        } else {
            echo '<td>n/a</td>';
        }
        echo '<th>Spell Focus</th>';
        if ($focus) {
            echo '<td>' . getSpellFocusName($focus, 2) . '</td>';
        } else {
            echo '<td>n/a</td>';
        }
        echo '</tr>';
    }
    $area = $spell['AreaGroupId'];
    if ($area) {
        echo '<tr>';
        echo '<th>Area</th>';
        if ($area) {
            echo '<td>' . $area . '</td>';
        } else {
            echo '<td>n/a</td>';
        }
        echo '</tr>';
    }
    // Вывод требований целей
    $targets = $spell['Targets'];
    $targetCreature = $spell['TargetCreatureType'];
    if ($targets or $targetCreature) {
        echo '<tr>';
        echo '<th>Targets</th>';
        if ($targets) {
            echo '<td>' . getTargetsList($targets) . '</td>';
        } else {
            echo '<td>n/a</td>';
        }
        echo '<th>Creature type</th>';
        if ($targetCreature) {
            echo '<td>' . getCreatureTypeList($targetCreature) . '</td>';
        } else {
            echo '<td>n/a</td>';
        }
        echo '</tr>';
    }
    if ($spell['Reagent_1'] or $spell['Reagent_2'] or $spell['Reagent_3'] or $spell['Reagent_4'] or $spell['Reagent_5'] or $spell['Reagent_6'] or $spell['Reagent_7'] or $spell['Reagent_8']) {
        echo '<tr>';
        echo '<th>Reagents</th>';
        echo '<td colspan=3>';
        r_spellReagents($spell);
        echo '</td>';
        echo '</tr>';
    }
    // Вывод эффектов
    showEffectData($spell, 1);
    showEffectData($spell, 2);
    showEffectData($spell, 3);
    echo '</tbody></table>';
}
function r_spellSkill($data)
{
    global $lang;
    r_spellName($data);
    if ($data['RequiresSpellFocus']) {
        echo '<div class=reqfocus>' . sprintf($lang['spell_req_focus'], getSpellFocusName($data['RequiresSpellFocus'], 2)) . '</div>';
    }
    if ($data['TotemCategory_1'] or $data['TotemCategory_2']) {
        $text = '';
        if ($data['TotemCategory_1']) {
            $text = getTotemCategory($data['TotemCategory_1']);
        }
        if ($data['TotemCategory_2']) {
            $text .= ", " . getTotemCategory($data['TotemCategory_2']);
        }
        echo '<div class=reqfocus>' . sprintf($lang['spell_req_totem'], $text) . '</div>';
    }
}
Exemplo n.º 3
0
     echo "<tr><th>autoCloseTime</th><td>" . $obj['data6'] / 1000 . " sec</td>";
     echo "<th>startDelay</th><td>" . $obj['data7'] . " sec</td></tr>";
     echo "<tr><th>serverOnly</th><td>" . $obj['data8'] . "</td>";
     echo "<th>stealthed</th><td>" . $obj['data9'] . "</td></tr>";
     echo "<tr><th>large</th><td>" . $obj['data10'] . "</td>";
     echo "<th>stealthAffected</th><td>" . $obj['data11'] . "</td></tr>";
     echo "<tr><th>openTextID</th><td>" . $obj['data12'] . "</td>";
     echo "<th>closeTextID</th><td>" . $obj['data13'] . "</td></tr>";
     break;
 case GAMEOBJECT_TYPE_CHAIR:
     echo "<tr><th>slots</th><td>" . $obj['data0'] . "</td></tr>";
     echo "<tr><th>height</th><td>" . $obj['data1'] . "</td></tr>";
     echo "<tr><th>onlyCreatorUse</th><td>" . $obj['data2'] . "</td></tr>";
     break;
 case GAMEOBJECT_TYPE_SPELL_FOCUS:
     echo "<tr><th>focusId</th><td>" . ($obj['data0'] ? getSpellFocusName($obj['data0'], 1) : "n/a") . "</td>";
     echo "<th>dist</th><td>" . $obj['data1'] . "</td></tr>";
     echo "<tr><th>linkedTrapId</th><td>" . ($obj['data2'] ? getGameobjectName($obj['data2']) : "n/a") . "</td>";
     echo "<th>serverOnly</th><td>" . $obj['data3'] . "</td></tr>";
     echo "<tr><th>questID</th><td>" . ($obj['data4'] ? getQuestName($obj['data4']) : "n/a") . "</td>";
     echo "<td colspan=2></td></tr>";
     break;
 case GAMEOBJECT_TYPE_TEXT:
     echo "<tr><th>pageID</th><td>" . $obj['data0'] . "</td></tr>";
     echo "<tr><th>language</th><td>" . $obj['data1'] . "</td></tr>";
     echo "<tr><th>pageMaterial</th><td>" . $obj['data2'] . "</td></tr>";
     echo "<tr><th>allowMounted</th><td>" . $obj['data3'] . "</td></tr>";
     break;
 case GAMEOBJECT_TYPE_GOOBER:
     echo "<tr><th>lockId</th><td>" . $obj['data0'] . "</td>";
     echo "<th>questId</th><td>" . ($obj['data1'] ? getQuestName($obj['data1']) : "n/a") . "</td></tr>";
Exemplo n.º 4
0
     echo "<br>";
     //********************************************************************************
     // Вывод данных по спеллу
     //********************************************************************************
     createSpellDetails($spell);
 }
 createReportTab();
 //********************************************************************************
 // Кастуется рядом с обьектом
 //********************************************************************************
 if ($spell['RequiresSpellFocus']) {
     $focus =& new GameobjectReportGenerator();
     $fields = array('GO_REPORT_NAME', 'GO_REPORT_MAP');
     if ($focus->Init($fields, $baseLink, 'focusLIST', $config['fade_limit'], 'name')) {
         $focus->spellFocus($spell['RequiresSpellFocus']);
         $focus->createReport(sprintf($lang['spell_req_focus'], getSpellFocusName($spell['RequiresSpellFocus'])));
     }
 }
 //********************************************************************************
 // Скорее всего спелл может быть улучшен - ищем чем..
 //********************************************************************************
 if ($spell['SpellFamilyFlags_1'] || $spell['SpellFamilyFlags_2'] || $spell['SpellFamilyFlags_3']) {
     $affected =& new SpellReportGenerator();
     $fields = array('SPELL_REPORT_ICON', 'SPELL_REPORT_NAME');
     if ($affected->Init($fields, $baseLink, 'affectLIST', $config['fade_limit'], 'name')) {
         $affected->affectedBySpells($spell['SpellFamilyName'], $spell['SpellFamilyFlags_1'], $spell['SpellFamilyFlags_2'], $spell['SpellFamilyFlags_3']);
         $affected->createReport($lang['spell_affected_by']);
     }
 }
 //******************* Ищем кто или что обучает этому спеллу *********************************
 // Этому спеллу обучают свитки: