Exemple #1
0
function BuildItemDefs()
{
    $itemDB2 = new Reader(__DIR__ . '/../DBC/current/enUS/Item.db2');
    $ids = $itemDB2->getIds();
    unset($itemDB2);
    $idMap = [];
    foreach ($ids as $id) {
        $idMap[$id] = $id;
    }
    DebugMessage("Item ID count: " . count($idMap));
    $sparseDB2 = new Reader(__DIR__ . '/../DBC/current/enUS/Item-sparse.db2', [13, 14, 15, 16, 17]);
    $ids = $sparseDB2->getIds();
    unset($sparseDB2);
    DebugMessage("Sparse ID count: " . count($ids));
    foreach ($ids as $id) {
        unset($idMap[$id]);
    }
    DebugMessage("Missing ID count: " . count($idMap));
    if (!count($idMap)) {
        return false;
    }
    $idMap = array_reverse($idMap);
    reset($idMap);
    $lastId = current($idMap);
    DebugMessage("Last item ID: {$lastId}");
    $lua = "local addonName, addonTable = ...\n";
    $lua .= "addonTable.missingItems = {" . implode(',', $idMap) . "}\n";
    return $lua;
}
Exemple #2
0
function AssertDB2LayoutHash(Reader $reader, $expectedHash, $filename = 'DB2')
{
    if ($reader->getLayoutHash() != $expectedHash) {
        LogLine("Warning: Expected {$filename} hash " . str_pad(dechex($expectedHash), 8, '0', STR_PAD_LEFT) . " but found " . str_pad(dechex($reader->getLayoutHash()), 8, '0', STR_PAD_LEFT));
        //exit(1);
    }
}
Exemple #3
0
<?php

require_once __DIR__ . '/../DBC/db2/src/autoload.php';
use Erorus\DB2\Reader;
$manifest = new Reader(__DIR__ . '/../DBC/current/enUS/ManifestInterfaceData.db2');
$manifest->setFieldNames(['path', 'name']);
foreach ($manifest->generateRecords() as $record) {
    if (strtolower($record['path']) == 'interface\\icons\\' && strtolower(substr($record['name'], -4)) == '.blp') {
        echo $record['path'], $record['name'], "\n";
    }
}
Exemple #4
0
     EchoProgress(++$x / $recordCount);
     $enchId = $id;
     $name = $rec['name'];
     if (!$name) {
         $name = null;
     }
     $stmt->execute();
 }
 $stmt->close();
 EchoProgress(false);
 unset($reader);
 $stmt = $db->prepare("insert ignore into tblDBCItemRandomSuffix (locale, suffix) (select distinct '{$locale}', name_{$locale} from tblDBCRandEnchants where trim(name_{$locale}) != '' and id < 0)");
 $stmt->execute();
 $stmt->close();
 LogLine("{$locale} tblDBCPet");
 $battlePetReader = new Reader($dirnm . '/BattlePetSpecies.db2');
 $battlePetReader->setFieldNames(['npc']);
 $creatureReader = new Reader($dirnm . '/Creature.db2');
 $creatureReader->setFieldNames([4 => 'name']);
 $stmt = $db->prepare("insert into tblDBCPet (id, name_{$locale}) values (?, ?) on duplicate key update name_{$locale} = values(name_{$locale})");
 $species = $name = null;
 $stmt->bind_param('is', $species, $name);
 $x = 0;
 $recordCount = count($battlePetReader->getIds());
 foreach ($battlePetReader->generateRecords() as $id => $rec) {
     EchoProgress(++$x / $recordCount);
     $species = $id;
     $creature = $creatureReader->getRecord($rec['npc']);
     if (is_null($creature)) {
         continue;
     }