db.js: +add all process.env var in db connection. overlaysNpc.js: +add id options in marker.
101 lines
2.5 KiB
JavaScript
101 lines
2.5 KiB
JavaScript
const mysql = require("mysql2");
|
|
const utilsMath = require("./utils/utilsMath.js");
|
|
|
|
const dbConfig = {
|
|
host: process.env.DB_HOST,
|
|
user: process.env.DB_USER,
|
|
password: process.env.DB_PASSWORD,
|
|
database: process.env.DB_DATABASE,
|
|
};
|
|
|
|
const con = mysql.createConnection(dbConfig);
|
|
|
|
con.connect((err) => {
|
|
if (err) {
|
|
console.error("Erreur de connexion à la base de données:", err);
|
|
process.exit(1);
|
|
}
|
|
console.log("Connected to Mysql");
|
|
});
|
|
|
|
//Get player position in Database
|
|
async function getCharacterPos() {
|
|
try {
|
|
const [result, fields] = await con.promise().query(`
|
|
SELECT woss.literalValue, wosp.landblockId, wosp.posX, wosp.posY
|
|
FROM characters c
|
|
INNER JOIN world_obj_stat_poss wosp ON c.objectId = wosp.objectId
|
|
INNER JOIN world_obj_stat_strinfo woss ON c.objectId = woss.objectId
|
|
`);
|
|
|
|
// Tableau pour stocker les données converties
|
|
let characterPositions = [];
|
|
|
|
// Manipuler les données résultantes
|
|
for (let row of result) {
|
|
// Convertir les coordonnées de jeu en coordonnées Leaflet
|
|
let leafletLoc = utilsMath.convertInGameLoctoLeafletLoc(
|
|
row.landblockId,
|
|
row.posX,
|
|
row.posY
|
|
);
|
|
|
|
// Ajouter les données converties au tableau
|
|
characterPositions.push({
|
|
literalValue: row.literalValue,
|
|
locx: leafletLoc.locx,
|
|
locy: leafletLoc.locy,
|
|
});
|
|
}
|
|
|
|
return characterPositions;
|
|
} catch (err) {
|
|
console.error(
|
|
"Erreur lors de la récupération des positions des personnages:",
|
|
err
|
|
);
|
|
return [];
|
|
}
|
|
}
|
|
|
|
//Get npc position in Database
|
|
async function getNpcPos() {
|
|
try {
|
|
const [result, fields] = await con.promise().query(`
|
|
SELECT entityDid, landblockId, posX, posY, objectName
|
|
FROM ac2re_map.map_npc;
|
|
`);
|
|
|
|
// Tableau pour stocker les données converties
|
|
let npcPosition = [];
|
|
|
|
// Manipuler les données résultantes
|
|
for (let row of result) {
|
|
// Convertir les coordonnées de jeu en coordonnées Leaflet
|
|
let leafletLoc = utilsMath.convertInGameLoctoLeafletLoc(
|
|
row.landblockId,
|
|
row.posX,
|
|
row.posY
|
|
);
|
|
|
|
// Ajouter les données converties au tableau
|
|
npcPosition.push({
|
|
entityid: row.entityDid,
|
|
literalValue: row.objectName,
|
|
locx: leafletLoc.locx,
|
|
locy: leafletLoc.locy,
|
|
});
|
|
}
|
|
|
|
return npcPosition;
|
|
} catch (err) {
|
|
console.error(
|
|
"Erreur lors de la récupération des positions des NPC:",
|
|
err
|
|
);
|
|
return [];
|
|
}
|
|
}
|
|
|
|
|
|
module.exports = { getCharacterPos, getNpcPos };
|