Xtense + Gestion des RE + Gestion des inactifs

Démarré par Holder, 08 Juin 2017, 14:37:18

« précédent - suivant »

Holder

Bonjour à tous,

Je reviens vers vous suite à la découverte d'un autre petit "bug" qui me pose problème lors de l'import des rapports d'espionnages dans la BDD.

Lorsque je scanne une personne, j'ouvre le RE au complet pour voir ses bâtiments, sa défense, ses recherches etc... afin que Xtense envoie toutes les données collectées au serveur, jusque là tout fonctionne super.

Le problème intervient quand je regarde de plus près au niveau de la BDD, lorsqu'une information est manquante, il est inséré "-1" à la place de 0 dans les différentes catégories :



Lorsque le RE apparait et que Xtense le trouve, s'il ne trouve pas d'information concernant un type, alors -1 est inséré, ce qui me fait penser que la ligne 590 du fichier MessagesParser.js peut être en cause, à ce niveau :

if (types.snapshotItem(z).textContent.trim().match(new RegExp(spyStrings['groups'][units], 'gi'))) {
                                finish = true;
                                k = z - 1;
                                break;


Si z = 0 (admettons un LM), alors k sera égal à -1, et c'est l'information qui sera placée dans la BDD.

Là ou ça me pose problème, c'est que dans le module de gestion des inactifs, lors de l'analyse des mines il est indiqué un "Total défense" qui est le suivant :

      $sub_request = " ,
      ( LM + LLE + LLO+ CG+ AI+ LP+ GT+ PT+ CLE+ CLO+ CR+ VB+ VC+ REC+ BMD+ DST+ EDLM+ TRA) AS totaldef      ";


Si toutes les données sont en négatif (ou presque), j'obtiens parfois un total de défense qui est négatif, du type :


LM + LLE + LLO + CG + AI + LP + GT + PT + CLE + CLO + CR + VB + VC + REC + BMD + DST + EDLM + TRA
-1 +  -1 +  -1 + -1 + -1 +  2 + -1 + -1 +  -1 +  -1 + -1 + -1 + -1 +  -1 +  -1 +  -1 +    2 +  -1 = -12


Alors est-ce qu'il vaut mieux corriger l'information rentrée dans la BDD ? Ou est-ce qu'il est plus judicieux que je fasse un test sur les valeurs LM LLE etc... directement dans l'analyse des inactifs ?

Je souhaiterai aller plus loin par la suite en indiquant, à la place du nombre d'unités, la valeur de défense, mais ça j'essayerai de le gérer seul :)

J'espère avoir été clair, si il y a des choses que j'ai oublié et qui peuvent vous aider, n'hésitez pas à me le dire.

A bientôt,

Holder

Holder

Bon, ce n'est pas du codage très propre mais j'ai fini par régler mon problème au niveau du mod Inactifs en passant la requête par des CASE :

A la place du subrequest mis en place pour le mod :

      $sub_request = " ,
      ( LM + LLE + LLO+ CG+ AI+ LP+ GT+ PT+ CLE+ CLO+ CR+ VB+ VC+ REC+ BMD+ DST+ EDLM+ TRA) AS totaldef      ";


J'ai mis en place des CASE pour chaque type, ce qui me permet de virer les -1 et de calculer le total de défense en terme de points de structure :

$sub_request = " ,
              CASE
WHEN LM < 0
THEN 0
ELSE LM*2000
END
+
CASE
WHEN LLE <0
THEN 0
ELSE LLE*2000
END
[...]
AS totaldef   ";


Donc voilà, au pire on dire que le problème est reglé, au mieux on essaye de voir si on peut modifier le MessagesParse.js pour que les -1 n'apparaissent pas dans la BDD. :)

DarkNoon

Hello,

Merci pour ton post très précis qui explique bien le problème.

Concernant le -1 c'est la valeur par défaut du nombre d'unités de chaque type. Cela permet de donner une valeurs aux éléments absent notamment dans le cas où le joueur n'a pas le niveau d'espionnage requis pour afficher tous les éléments.

Je penses que la modifications que tu as réalisé dans le mod inactifs est du coup la meilleure possible.

Tu pourras la pousser sur Github je t'ajoutes au groupe de dev si tu veux pour que tu aies accès à tous les dépôts ;-)
Héberger votre OGSpy : Hébergement

Holder

Salut Anthony et merci pour ta réponse :)

Je peux bien sur pousser ma version du mod inactif au moins pour le mode Inactifs, pour la partie "Analyse mine inactif".

Je n'ai pas les compétences techniques pour gérer énormément de choses, et ce genre de changements me demandent beaucoup de temps pour apprendre et appliquer. Mais je pense qu'on peut faire vraiment (mais vraiment!!!) mieux sur le module inactifs :)

Si j'ai un peu de temps libre, j'essayerai de proposer des idées pour ce module qui me semble super bien, mais également pour OGSpy d'une manière générale (j'ai beaucoup d'idées utiles! :) )

Si tu veux je peux t'envoyer le fichier à remplacer dans le module inactif pour mettre à jour le Github :)

A bientôt,

Holder

DarkNoon

Oui je peux aussi mettre les modifications sur Github ;-) Normalement tu peux attacher le fichier à un message sur le forum.

Après oui il y a des choses à apprendre à faire mais nous sommes là pour t'aider ! Si tu cherches des tutoriels j'en trouve pas mal sur Youtube comme celui ci : https://www.youtube.com/watch?v=Yxloxm55lag

Et l'avantage de Github c'est qu'on ne peut pas faire d'erreur vu que l'on peut revenir en arrière à tout moment.

Pour les idées, oui n'hésites pas à les proposer sur le forum nous pourrons en discuter tranquillement ;-)

Héberger votre OGSpy : Hébergement

Holder

Bonjour Anthony et désolé pour le temps de réponse,

Tu trouveras en PJ le fichier analyseMI.php avec ma modification, ce qui donne sur la vue correspondante du MOD :



Le valeur de la défense correspond aux points de structure, par exemple : (10 LM * 2000 de métal) + (1 gauss * (20.000 M + 15.000C + 2000 D)) = 57.000

Le calcul prend en compte tous les type de def + vaisseaux à quai lors de l'import du RE, si pas de def ou pas de vaisseaux à quai alors la def est bien égale à 0.

Voilà pour cette petite mise à jour :)

A bientôt,

Holder

Holder

Petite correction sur le fichier, j'ai modifié le calcul des PT nécessaires en nombre de GT, ça me semblait plus adapté pour mon usage (j'espère que l'avis sera partagé)