mirror of
https://gitlab.com/hashborgir/d2tools.git
synced 2024-11-30 04:26:03 +00:00
179 lines
6.7 KiB
PHP
179 lines
6.7 KiB
PHP
<?php
|
|
session_start();
|
|
ob_start();
|
|
|
|
require_once './config.php';
|
|
require_once './_pdo.php';
|
|
|
|
require_once './config.php';
|
|
require_once './src/D2Functions.php';
|
|
require_once './src/D2ByteReader.php';
|
|
require_once './src/D2BitReader.php';
|
|
|
|
//error_reporting(E_ALL);
|
|
set_time_limit(-1);
|
|
ini_set('max_input_time', '-1');
|
|
ini_set('max_execution_time', '0');
|
|
|
|
define('DB_FILE', $_SESSION['modname'] . ".db");
|
|
try {
|
|
PDO_Connect("sqlite:" . DB_FILE);
|
|
} catch (Exception $e) {
|
|
echo "Connection error: " . $e->getMessage();
|
|
}
|
|
|
|
$query = "SELECT Id,LevelName FROM levels WHERE Name != 'Expansion' AND Name != ''";
|
|
$levels = PDO_FetchAssoc($query);
|
|
|
|
$query = "SELECT * FROM levels WHERE Name != 'Expansion' AND Name != ''";
|
|
$levelsAll = PDO_FetchAll($query);
|
|
|
|
$query = "SELECT Id,Name FROM lvlwarp";
|
|
$lvlwarp = PDO_FetchAssoc($query);
|
|
|
|
$query = "SELECT monstats.Id, strings.String AS Name
|
|
FROM monstats
|
|
LEFT JOIN strings ON monstats.NameStr = strings.Key;";
|
|
$monstats = PDO_FetchAssoc($query);
|
|
|
|
//ddump($monstats);
|
|
|
|
|
|
$query = "SELECT LevelName,Vis0,Vis1,Vis2,Vis3,Vis4,Vis5,Vis6,Vis7 FROM levels WHERE Name != 'Expansion' AND Name != ''";
|
|
$res = PDO_FetchAll($query);
|
|
|
|
$output = [];
|
|
|
|
foreach ($res as $key => $item) {
|
|
$newItem = [];
|
|
$newItem['LevelName'] = $item['LevelName']; // Copy the LevelName to new item
|
|
foreach ($levelsAll[$key] as $levelsKey => $levelsValue) {
|
|
$newItem[$levelsKey] = isset($monstats[$levelsValue]) ? $monstats[$levelsValue] : $levelsValue;
|
|
}
|
|
|
|
|
|
$foundLevels = []; // Store found level names to avoid duplicates
|
|
|
|
foreach ($item as $subKey => $subItem) {
|
|
// Check if the key starts with 'Vis', has a corresponding level, is non-empty, and is not a duplicate
|
|
if (strpos($subKey, 'Vis') === 0 && isset($levels[$subItem]) && $levels[$subItem] !== '' && !in_array($levels[$subItem], $foundLevels)) {
|
|
$newItem[$subKey] = $subItem;
|
|
$foundLevels[] = $levels[$subItem]; // Add to found levels
|
|
}
|
|
}
|
|
$output[] = array_filter($newItem); // Add the modified item to the output array
|
|
}
|
|
|
|
|
|
unset($output[0]);
|
|
?>
|
|
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Level Viz/Warp Editor</title>
|
|
<link rel="stylesheet" href="/res/bootstrap.min.css">
|
|
<script src="/res/jquery-3.5.1.min.js"></script>
|
|
<script src="/res/popper.min.js"></script>
|
|
<script src="/res/bootstrap.min.js"></script>
|
|
<style>
|
|
.viz {
|
|
background-color: #fafafa;
|
|
}
|
|
.warp {
|
|
background-color: #eef;
|
|
}
|
|
</style>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
<table class="table table-bordered table-striped">
|
|
<thead class="thead-dark">
|
|
<tr>
|
|
<th>Id</th>
|
|
<th>LevelName</th>
|
|
<th>Name</th>
|
|
<?php for ($i = 0; $i <= 7; $i++): ?>
|
|
<th>Vis<?php echo $i; ?></th>
|
|
<?php endfor; ?>
|
|
<?php for ($i = 0; $i <= 7; $i++): ?>
|
|
<th>Warp<?php echo $i; ?></th>
|
|
<?php endfor; ?>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php foreach ($output as $level): ?>
|
|
<tr>
|
|
<td><?php echo $level['Id']; ?></td>
|
|
<td><?php echo $level['LevelName']; ?></td>
|
|
<td><?php echo $level['Name']; ?></td>
|
|
<?php for ($i = 0; $i <= 7; $i++): ?>
|
|
<td class="viz">
|
|
<select name="Vis<?php echo $i; ?>" data-id="<?php echo $level['Id']; ?>">
|
|
<?php foreach ($levels as $key => $value): ?>
|
|
<option value="<?php echo $key; ?>" <?php if (isset($level["Vis$i"]) && $level["Vis$i"] == $key) echo 'selected'; ?>>
|
|
<?php echo "$key - $value"; ?>
|
|
</option>
|
|
<?php endforeach; ?>
|
|
</select>
|
|
</td>
|
|
<?php endfor; ?>
|
|
|
|
<?php for ($i = 0; $i <= 7; $i++): ?>
|
|
<td class="warp">
|
|
<select name="Warp<?php echo $i; ?>" data-id="<?php echo $level['Id']; ?>">
|
|
<?php
|
|
// Check if the Warp value is -1 and add the custom option for it
|
|
if (isset($level["Warp$i"]) && $level["Warp$i"] == -1) {
|
|
echo '<option value="-1" selected>-1</option>';
|
|
}
|
|
?>
|
|
<?php foreach ($lvlwarp as $key => $value): ?>
|
|
<option value="<?php echo $key; ?>" <?php if (isset($level["Warp$i"]) && $level["Warp$i"] == $key) echo 'selected'; ?>>
|
|
<?php echo "$key - $value"; ?>
|
|
</option>
|
|
<?php endforeach; ?>
|
|
</select>
|
|
</td>
|
|
<?php endfor; ?>
|
|
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
</tbody>
|
|
</table>
|
|
|
|
<script>
|
|
$("select[name^='Vis'], select[name^='Warp']").change(function () {
|
|
var levelId = $(this).data('id');
|
|
var selectName = $(this).attr('name');
|
|
var selectedValue = $(this).val();
|
|
|
|
// For demonstration purposes, console log the data that will be posted
|
|
console.log(`Level ID: ${levelId}, ${selectName}: ${selectedValue}`);
|
|
|
|
// Define the data to be sent
|
|
var dataToSend = {
|
|
'levelId': levelId,
|
|
'selectName': selectName,
|
|
'selectedValue': selectedValue
|
|
};
|
|
|
|
// Send the POST request
|
|
$.post("LevelsEditor_Process.php", dataToSend)
|
|
.done(function (response) {
|
|
console.log("Data sent successfully");
|
|
console.log("Server Response: ", response); // Logging server's response for debugging
|
|
})
|
|
.fail(function () {
|
|
console.log("Error sending data");
|
|
});
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|