[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

Répondre
Avatar du membre
stand by me
Forumiste
Forumiste
Messages : 2039
Enregistré le : lun. mai 17, 2010 16:19 pm
Localisation : très précise, merci google
Contact :

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

Message par stand by me »

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 2019 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 2019 fois
:chinois:
[/b]
Avatar du membre
pierre97
Entraîneur confirmé
Entraîneur confirmé
Messages : 9181
Enregistré le : lun. nov. 01, 2010 15:28 pm
Localisation : Quelque part
Contact :

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

Message par pierre97 »

Jako a dû confondre avec le topic équipe :mrgreen:
Pseudos Defifoot : poule -- Foss Trantchil °~° padbol -- Dream Team
Organisateur de la CRAZY League TM[/police]
Répondre

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 1 invité