[Tip For Geeks] Script de calcul des niveaux en match

Suivez toute l'actualité et les dernières nouveautés du jeu !

Modérateurs: antoninio, Représentant du jeu Defifoot Manager

[Tip For Geeks] Script de calcul des niveaux en match

Messagede stand by me » Mer Déc 29, 2021 16:30 pm

Bonsoir les dosés,

ci-joint un bout de code Javascript provisoire permettant d'évaluer les niveaux en match d'un joueur.

C'est basé sur les coefficients que j'avais présentés dans le topic-tuto Funny Stadium United (HS : pourquoi a-t-il été archivé ??).

L'évaluation est extrêmement fiable sauf pour le niveau Gardien des joueurs de champ (chose qui n'a heureusement presque aucun intérêt).

Code: Tout sélectionner
var items = {};
var levels = [];

var levelNames = [
    "Tête",
    "Frappe",
    "Contrôle",
    "Dribble",
    "Récupération",
    "Passe",
    "Endurance",
    "Gardien"
];

class LevelElement {
    constructor(label, value) {
        this.label = label;
        this.value = value;
    }
};

myRadarChart.datasets[0].points.forEach(p => items[p.label] = p.value);

// Useless ?
var isGoalKeeper = items["Réflexe"] != null;

function getItem(itemName) {
    return items[itemName] != null ? items[itemName] : 0;
}

function evaluateLevel(levelName, decimal = 2) {
    let levelValue = 0;
    switch (levelName) {
        case "Tête":
            levelValue =
                0.67*getItem("Tête") +
                0.22*getItem("Physique") +
                0.11*getItem("Flair");
            break;
        case "Récupération":
            levelValue =
                0.4*getItem("Tacle") +
                0.27*getItem("Physique") +
                0.2*getItem("Vitesse") +
                0.13*getItem("Flair");
            break;
        case "Gardien":
            levelValue =
                0.15*getItem("Réflexe") +
                0.138*getItem("Prise balle") +
                0.138*getItem("Détente") +
                0.125*getItem("Expérience") +
                0.115*getItem("Flair") +
                0.11*getItem("Contrôle") +
                0.085*getItem("Passe") +
                0.06*getItem("Endurance") +
                0.05*getItem("Vitesse") +
                0.02*getItem("Dribble") +
                0.02*getItem("Tir");
            break;
        case "Frappe":
            levelValue =
                0.52*getItem("Tir") +
                0.18*getItem("Contrôle") +
                0.16*getItem("Flair") +
                0.08*getItem("Dribble") +
                0.06*getItem("Vitesse");
            break;
        case "Contrôle":
            levelValue =
                0.57*getItem("Contrôle") +
                0.2*getItem("Dribble") +
                0.12*getItem("Physique") +
                0.08*getItem("Vitesse") +
                0.03*getItem("Flair");
            break;
        case "Dribble":
            levelValue =
                0.52*getItem("Dribble") +
                0.2*getItem("Vitesse") +
                0.16*getItem("Flair") +
                0.1*getItem("Contrôle") +
                0.02*getItem("Physique");
            break;
        case "Passe":
            levelValue =
                0.67*getItem("Passe") +
                0.16*getItem("Flair") +
                0.09*getItem("Tir") +
                0.08*getItem("Contrôle");
            break;
        case "Endurance":
            levelValue =
                0.46*getItem("Endurance") +
                0.31*getItem("Physique") +
                0.23*getItem("Forme");
            break;
        default:
            // Unknown ...
    }
    return levelValue.toFixed(decimal);
}

levelNames.forEach(levelName => levels.push(new LevelElement(levelName, evaluateLevel(levelName))));

var msg = `${document.title} \n\n`;
levels.forEach(lvl => msg += `${lvl.label} : ${lvl.value}\n`);
console.log(msg);


Comment l'utiliser ?

Uniquement sur navigateur web.

Dans votre navigateur, ouvrir les outils de développements (F12 ou Ctrl+Shit+J).

Aller dans l'onglet "Snippets" / "Extraits".
Cliquer sur "+ New snippet" / "+ Nouvel extrait".
Recopier le code dans la zone droite et enregistrer le script.

snippet2.PNG
snippet2.PNG (92.28 Kio) Vu 1654 fois


Si vous changez de navigateur, de machine ou réinitialisez le navigateur il faut réitérer l'opération donc venir ici. Ça aurait été mieux de pouvoir le sauvegarder dans un bloc-notes sur Defifoot.

Pour faire tourner le script, aller sur la fiche d'un joueur.
Ouvrir les outils de développement et exécuter le snippet : le résultat est affiché dans la console (et sera effacé au prochain changement de page !).

snippet1.PNG
snippet1.PNG (240.62 Kio) Vu 1654 fois


:chinois:
Avatar de l’utilisateur
stand by me
Forumiste
Forumiste
 
Messages: 2029
Inscription: Lun Mai 17, 2010 16:19 pm
Localisation: très précise, merci google

Re: [Tip For Geeks] Script de calcul des niveaux en match

Messagede pierre97 » Mer Jan 12, 2022 22:49 pm

Jako a dû confondre avec le topic équipe :mrgreen:
Pseudos Defifoot : poule -- Foss Trantchil °~° padbol -- Dream Team

Organisateur de la CRAZY League TM
Avatar de l’utilisateur
pierre97
Entraîneur confirmé
Entraîneur confirmé
 
Messages: 9181
Inscription: Lun Nov 01, 2010 15:28 pm
Localisation: Quelque part


Retourner vers Débats et présentation des nouveautés sur défifoot

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 6 invités