mirror of
https://gitlab.com/hashborgir/d2tools.git
synced 2025-10-13 16:34:23 -05:00
need to debug d2s skills
This commit is contained in:
214
TCEX.php
Normal file
214
TCEX.php
Normal file
@@ -0,0 +1,214 @@
|
||||
<?php
|
||||
session_start();
|
||||
ob_start();
|
||||
|
||||
require_once './config.php';
|
||||
require_once './_pdo.php';
|
||||
|
||||
require_once './src/D2Functions.php';
|
||||
require_once './src/D2ByteReader.php';
|
||||
require_once './src/D2BitReader.php';
|
||||
|
||||
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 * FROM treasureclassex WHERE `Treasure Class` != ''";
|
||||
$res = array_filter(PDO_FetchAll($query));
|
||||
|
||||
$dropChances = [];
|
||||
|
||||
foreach ($res as $r) {
|
||||
$total = (int) $r['NoDrop'];
|
||||
|
||||
for ($i = 1; $i <= 10; $i++) {
|
||||
if (!empty($r["Item$i"])) {
|
||||
$total += (int) $r["Prob$i"];
|
||||
$ic = $r["Item$i"];
|
||||
$prob = (int) $r["Prob$i"];
|
||||
$dropChances[$r['Treasure Class']]["nd"] = $r['NoDrop'];
|
||||
$dropChances[$r['Treasure Class']]["nodrop"] = round(((int) $r['NoDrop'] / $total) * 100, 2);
|
||||
$dropChances[$r['Treasure Class']]["items"]["Item$i"]["code"] = $ic;
|
||||
$dropChances[$r['Treasure Class']]["items"]["Item$i"]["prob"] = $prob;
|
||||
$dropChances[$r['Treasure Class']]["items"]["Item$i"]["chance"] = round(($prob / $total) * 100, 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
header("Content-Type: text/html");
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Drop Chances Table</title>
|
||||
<script src="https://code.jquery.com/jquery-3.7.0.min.js" integrity="sha256-2Pmvv0kuTBOenSvLm6bvfBSSHrUJ+3A7x6P5Ebd07/g=" crossorigin="anonymous"></script>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$('input.no-drop, input.prob').on('input', function () {
|
||||
var row = $(this).closest('.first-table-row');
|
||||
var noDrop = +row.find('input.no-drop').val();
|
||||
var total = noDrop;
|
||||
row.find('input.prob').each(function () {
|
||||
total += +$(this).val();
|
||||
});
|
||||
row.find('span.no-drop-chance').text((noDrop / total * 100).toFixed(2));
|
||||
row.find('td').each(function () {
|
||||
var probInput = $(this).find('input.prob');
|
||||
if (probInput.length) {
|
||||
var prob = +probInput.val();
|
||||
$(this).find('span.chance').text((prob / total * 100).toFixed(2));
|
||||
}
|
||||
});
|
||||
|
||||
// Update the database
|
||||
var treasureClass = row.find('.tc').text();
|
||||
var data = {
|
||||
'treasureClass': treasureClass,
|
||||
'noDrop': row.find('input.no-drop').val(),
|
||||
};
|
||||
row.find('input.prob').each(function (index) {
|
||||
data[`prob${index + 1}`] = $(this).val();
|
||||
});
|
||||
|
||||
$.post("TCEX_Process.php", data, function (response) {
|
||||
console.log(response); // Log the response from the server
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: 'ExocetHeavy';
|
||||
src: url('/fonts/ExocetHeavy.eot'),
|
||||
url('/fonts/ExocetHeavy.eot?#iefix') format('embedded-opentype'),
|
||||
url('/fonts/ExocetHeavy.woff2') format('woff2'),
|
||||
url('/fonts/ExocetHeavy.woff') format('woff'),
|
||||
url('/fonts/ExocetHeavy.ttf') format('truetype'),
|
||||
url('/fonts/ExocetHeavy.svg#ExocetHeavy') format('svg');
|
||||
font-weight: 900;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'ExocetLight';
|
||||
src: url('/fonts/ExocetLight.ttf') format('truetype');
|
||||
font-weight: 900;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Lato';
|
||||
src: url('/fonts/Lato-Regular.ttf') format('truetype');
|
||||
font-weight: 900;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
body {
|
||||
font-family: Lato;
|
||||
font-size: 12px;
|
||||
}
|
||||
table {
|
||||
border-collapse: separate;
|
||||
border-spacing: 0 15px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#second-table th {
|
||||
border: 1px solid #ccc;
|
||||
padding: 2px;
|
||||
}
|
||||
#second-table tr {
|
||||
text-align: center;
|
||||
}
|
||||
td {
|
||||
border-right: 1px solid #ccc;
|
||||
}
|
||||
|
||||
/* Color even rows in the first table */
|
||||
#first-table .first-table-row:nth-child(even) {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
/* Color odd rows in the first table (if you want a different color than even rows) */
|
||||
#first-table .first-table-row:nth-child(odd) {
|
||||
background-color: #e5e5e5;
|
||||
}
|
||||
|
||||
#second-table td {
|
||||
border: none;
|
||||
|
||||
}
|
||||
|
||||
#first-table-row {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
input {
|
||||
padding: 2px;
|
||||
height: 24px;
|
||||
width: 64px;
|
||||
margin-bottom: 5px;
|
||||
border: none;
|
||||
}
|
||||
.chance, .no-drop-chance {
|
||||
color: red;
|
||||
font-weight: bold;
|
||||
font-size: 22px;
|
||||
font-family: ExocetHeavy;
|
||||
}
|
||||
.tc {
|
||||
color: blue;
|
||||
}
|
||||
tr:nth-child(even) td:nth-child(odd),
|
||||
tr:nth-child(odd) td:nth-child(even) {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Drop Chances Calculator by HCB (Hash Borgir)</h1>
|
||||
<form id="dropChancesForm">
|
||||
<table id="first-table">
|
||||
<!-- Existing Table Content -->
|
||||
<!-- ... -->
|
||||
<tbody>
|
||||
<?php
|
||||
foreach ($dropChances as $treasureClass => $row) {
|
||||
$nodrop = $row['nodrop'];
|
||||
echo "<tr class='first-table-row'>";
|
||||
echo "<td class='tc'>$treasureClass</td>";
|
||||
echo "<td><input class='no-drop' type='number' value='{$row["nd"]}'><span class='no-drop-chance'>$nodrop</span>%</td>";
|
||||
foreach ($row['items'] as $item => $values) {
|
||||
echo "<td>
|
||||
<table id='second-table'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>code</th>
|
||||
<th>prob</th>
|
||||
<th>chance</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td>{$values["code"]}</td>
|
||||
<td><input class='prob' type='number' value='{$values["prob"]}'></td>
|
||||
<td><span class='chance'>{$values["chance"]}</span>%</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>";
|
||||
}
|
||||
echo "</tr>";
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user