<!DOCTYPE html>
<html lang=”es”>
<head>
<meta charset=”UTF-8″>
<meta name=”viewport” content=”width=device-width, initial-scale=1.0″>
<title>Tabla de Personajes</title>
<link rel=”stylesheet” href=”https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css”>
<script src=”https://code.jquery.com/jquery-3.6.0.min.js”></script>
<style>
.estado-icon {
width: 24px; /* Cambia este valor según el tamaño deseado */
height: 24px; /* Cambia este valor según el tamaño deseado */
}
#characterTableContainer table th:first-child,
#characterTableContainer table td:first-child {
display: none;
}
body {
background-color: white; /* Cambia el color de fondo a uno oscuro */
color: #333; /* Cambia el color del texto a blanco para que sea legible */
}
h1 {
color: #fff; /* Cambia el color del título si es necesario */
}
.table {
background-color: white; /* Cambia el color de fondo de la tabla */
color: #333; /* Cambia el color del texto en la tabla */
}
.table th, .table td {
border: 1px solid #666; /* Añade bordes a las celdas de la tabla */
color: #333; /* Cambia el color del texto en las celdas de la tabla */
}
.table img {
max-width: 60px; /* Limita el ancho de las imágenes en la tabla */
height: auto;
}
#characterTableContainer table thead {
background-color: #D76440;
color: white; /* Cambia el color del texto en la cabecera si es necesario */
}
</style>
</head>
<body data-rsssl=1 data-rsssl=1 data-rsssl=1>
<div class=”container mt-5″>
<h1>Tabla de Personajes</h1>
<div id=”characterTableContainer”></div>
</div>
<script>
$(document).ready(function() {
// URLs de los archivos CSV en tu servidor
var characterCsvUrl = ‘/Donpro/wp-content/uploads/db/top5.csv’;
var membStatCsvUrl = ‘/Donpro/wp-content/uploads/db/memb_stat.csv’;
var membinfocsvUrl = ‘/Donpro/wp-content/uploads/db/membinfo_content.csv’;
// Función para cargar y procesar archivos CSV
function loadAndProcessCSV(url, processDataFunction) {
$.ajax({
type: “GET”,
url: url + ‘?cache=’ + Date.now(),
dataType: “text”,
success: function(data) {
processDataFunction(data);
},
error: function() {
console.log(“Error al cargar el archivo CSV desde ” + url);
}
});
}
// Función para obtener la URL de la imagen según el valor de “Raza” o “Clase”
function GetClassImage(classValue) {
var classImages = {
“0”: “https://i.servimg.com/u/f48/11/98/27/84/0513.gif”,
“1”: “http://i48.servimg.com/u/f48/11/98/27/84/0216.gif”,
“2”: “URL_de_la_imagen_para_Grand_Master”,
“16”: “http://i48.servimg.com/u/f48/11/98/27/84/0114.gif”,
“17”: “http://i49.servimg.com/u/f49/12/59/37/02/bkpa010.gif”,
“18”: “https://doninformatico.com/muextasis/wp-content/uploads/sites/6/2024/05/bm.gif”,
“32”: “http://i48.servimg.com/u/f48/11/98/27/84/0211.gif”,
“33”: “http://i48.servimg.com/u/f48/11/98/27/84/0410.gif”,
“48”: “http://i48.servimg.com/u/f48/11/98/27/84/0219.gif”,
“49”: “https://doninformatico.com/muextasis/wp-content/uploads/sites/6/2024/05/duelmaster.gif”,
“64”: “https://wiki-ex.devilzmu.net/assets/images/380_dl-e66f87c01f56981d79636a4b5617e5eb.gif”,
“81”: “https://doninformatico.com/muextasis/wp-content/uploads/sites/6/2024/05/blody-summoner.jpg”
};
if (classImages.hasOwnProperty(classValue)) {
return classImages[classValue];
}
return “https://e7.pngegg.com/pngimages/292/247/png-clipart-mu-online-mu-legend-game-mu-online-3d-computer-graphics-video-game-thumbnail.png”;
}
// Procesar el archivo CSV de personajes
function processCharacterCSV(data) {
var lines = data.split(‘\n’);
var characterTableContainer = $(“#characterTableContainer”);
var table = $(“<table>”).addClass(“table table-striped”);
var tbody = $(“<tbody>”).appendTo(table);
var headerRow = $(“<tr>”).append(
“<th>ID de Cuenta</th>”,
“<th>Personaje</th>”,
“<th>Nivel</th>”,
“<th>Raza</th>”,
“<th>Reset</th>”,
“<th>Estado en línea</th>”,
“<th>Region</th>”
);
$(“<thead>”).append(headerRow).appendTo(table);
var characters = []; // Array para almacenar los personajes
for (var i = 0; i < lines.length; i++) {
var line = lines[i].trim();
if (line !== “”) {
var values = line.split(‘,’);
var classValue = values[3];
var imageUrl = GetClassImage(classValue);
values[3] = ‘<img src=”‘ + imageUrl + ‘” alt=”‘ + classValue + ‘”>’;
characters.push({
id: values[0],
personaje: values[1],
nivel: values[2],
raza: values[3],
reset: parseInt(values[4]), // Convertir a entero para ordenar
estado: values[5],
region: values[6]
});
}
}
// Ordenar los personajes por el número de resets de mayor a menor
characters.sort((a, b) => b.reset – a.reset);
// Agregar las filas ordenadas a la tabla
characters.forEach(character => {
var row = [
“<td>” + character.id + “</td>”,
“<td>” + character.personaje + “</td>”,
“<td>” + character.nivel + “</td>”,
“<td>” + character.raza + “</td>”,
“<td>” + character.reset + “</td>”,
// “<td>” + character.estado + “</td>”,
// “<td>” + character.region + “</td>”
];
$(“<tr>”).append(row.join(“”)).appendTo(tbody);
});
table.appendTo(characterTableContainer);
}
// Llamada AJAX para cargar el archivo CSV de personajes
loadAndProcessCSV(characterCsvUrl, processCharacterCSV);
// Llamada AJAX para cargar el archivo CSV de memb_stat
loadAndProcessCSV(membStatCsvUrl, function(data) {
var lines = data.split(‘\n’);
for (var i = 1; i < lines.length; i++) {
var line = lines[i].trim();
if (line !== “”) {
var values = line.split(‘,’);
var accountId = values[0];
var characterRow = $(“#characterTableContainer table tbody”).find(“tr”).filter(function() {
return $(this).find(“td:first”).text() === accountId;
});
if (characterRow.length > 0) {
// Modifica el valor de la columna “Estado en línea” y agrega el ícono correspondiente
var estadoEnLinea = values[1] === ‘1’ ? ‘on’ : ‘off’;
var iconoURL = estadoEnLinea === ‘on’ ? ‘https://doninformatico.com/Paomedia-Small-N-Flat-Switch-on.ico’ : ‘https://doninformatico.com/Paomedia-Small-N-Flat-Switch-off.ico’;
// Agrega la clase CSS ‘estado-icon’ a la imagen
characterRow.append(“<td><img src='” + iconoURL + “‘ alt='” + estadoEnLinea + “‘ class=’estado-icon’></td>”);
}
}
}
});
// Llamada AJAX para cargar el archivo CSV de memb_info
loadAndProcessCSV(membinfocsvUrl, function(data) {
var lines = data.split(‘\n’);
for (var i = 1; i < lines.length; i++) {
var line = lines[i].trim();
if (line !== “”) {
var values = line.split(‘,’);
var accountId = values[1];
var characterRow = $(“#characterTableContainer table tbody”).find(“tr”).filter(function() {
return $(this).find(“td:first”).text() === accountId;
});
if (characterRow.length > 0) {
var countryAbbreviation = values[22];
var countryFlagEmoji = countryFlagEmojis[countryAbbreviation];
characterRow.append(“<td>” + (countryFlagEmoji || countryAbbreviation) + “</td>”);
}
}
}
});
var countryFlagEmojis = {
‘MX’: ‘🇲🇽’, // México
‘VE’: ‘🇻🇪’, // Venezuela
‘BS’: ‘🇧🇷’, // Brasil
‘AR’: ‘🇦🇷’, // Argentina
‘CO’: ‘🇨🇴’, // Colombia
‘CL’: ‘🇨🇱’, // Chile
‘PR’: ‘🇵🇪’, // Perú
‘EC’: ‘🇪🇨’, // Ecuador
‘GT’: ‘🇬🇹’, // Guatemala
‘CU’: ‘🇨🇺’, // Cuba
‘DO’: ‘🇩🇴’, // República Dominicana
‘HN’: ‘🇭🇳’, // Honduras
‘SV’: ‘🇸🇻’, // El Salvador
‘NI’: ‘🇳🇮’, // Nicaragua
‘CR’: ‘🇨🇷’, // Costa Rica
‘PA’: ‘🇵🇦’, // Panamá
‘UY’: ‘🇺🇾’, // Uruguay
‘PY’: ‘🇵🇾’, // Paraguay
‘BO’: ‘🇧🇴’, // Bolivia
‘GY’: ‘🇬🇾’, // Guyana
‘SR’: ‘🇸🇷’, // Surinam
‘VE’: ‘🇻🇪’, // Venezuela
‘TT’: ‘🇹🇹’, // Trinidad y Tobago
‘JM’: ‘🇯🇲’, // Jamaica
‘HT’: ‘🇭🇹’, // Haití
‘BB’: ‘🇧🇧’, // Barbados
‘BS’: ‘🇧🇸’, // Bahamas
‘BZ’: ‘🇧🇿’, // Belice
‘GD’: ‘🇬🇩’, // Granada
‘LC’: ‘🇱🇨’, // Santa Lucía
‘VC’: ‘🇻🇨’, // San Vicente y las Granadinas
‘AG’: ‘🇦🇬’, // Antigua y Barbuda
‘DM’: ‘🇩🇲’, // Dominica
‘KN’: ‘🇰🇳’, // San Cristóbal y Nieves
‘AW’: ‘🇦🇼’, // Aruba
‘CUW’: ‘🇨🇼’, // Curazao
‘SX’: ‘🇸🇽’, // Sint Maarten
‘BQ’: ‘🇧🇶’, // Bonaire, San Eustaquio y Saba
// Agrega más abreviaciones y emojis aquí
};
});
</script>
<script src=”https://code.jquery.com/jquery-3.6.0.min.js”></script>
</body>
</html>