-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfindBadItemSets.php
80 lines (55 loc) · 2.25 KB
/
findBadItemSets.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
if (php_sapi_name() != "cli") die("Can only be run from command line!");
require("/home/uesp/secrets/esolog.secrets");
$db = new mysqli($uespEsoLogReadDBHost, $uespEsoLogReadUser, $uespEsoLogReadPW, $uespEsoLogDatabase);
if ($db->connect_error) exit("Could not connect to mysql database!");
print("Finding all mismatched item set names in mined item data...\n");
$TABLE_SUFFIX = "45";
$linesOutput = 0;
$luaFunctionCount = 1;
$START_ID = 1;
$END_ID = 220000;
$NUMCALLSPERFUNCTION = 300;
$output = "";
//$output .= "uespLog.MineSingleItemSafe_FinishCallback = uespLog.StartNextMineTest\n";
$output .= "function uespminetest1()\n";
file_put_contents("fixitems.lua", $output, FILE_APPEND);
$query = "SELECT itemId, setName from minedItemSummary$TABLE_SUFFIX;";
$result = $db->query($query);
if ($result->num_rows < 1) exit("Error querying mineditem data!\n");
$setNames = array();
while (($row = $result->fetch_assoc()))
{
$itemId = $row['itemId'];
$setNames[$itemId] = $row['setName'];
}
for ($itemId = $START_ID; $itemId <= $END_ID; ++$itemId)
{
if (($itemId % 1000) == 0) print("\t$itemId: Checking for mismatched item set names ($linesOutput bad items found so far)...\n");
$setName = $setNames[$itemId];
if ($setName == null) continue;
$query = "SELECT setName, internalLevel, internalSubtype from minedItem$TABLE_SUFFIX WHERE itemId=$itemId;";
$result = $db->query($query);
if ($result->num_rows < 1) continue;
$items = array();
$nameCount = array();
$prelinesOutput = $linesOutput;
while (($row = $result->fetch_assoc()))
{
$setName2 = $row['setName'];
if (strcasecmp($setName2, $setName) == 0) continue;
//print ("{$row['internalLevel']}, {$row['internalSubtype']}, $setName2, $setName\n");
$output = "\tuespLog.MineItemSingle($itemId, {$row['internalLevel']}, {$row['internalSubtype']}) \n";
++$linesOutput;
if (($linesOutput % $NUMCALLSPERFUNCTION) == 0)
{
++$luaFunctionCount;
$output .= "end\nfunction uespminetest$luaFunctionCount()\n";
}
file_put_contents("fixitems.lua", $output, FILE_APPEND);
}
$diffLinesOutput = $linesOutput - $prelinesOutput;
if ($diffLinesOutput > 0) print("\t$itemId: found $diffLinesOutput bad records!\n");
}
$output = "end\n";
file_put_contents("fixitems.lua", $output, FILE_APPEND);