Greasy Fork

PontuacaoMZ

Ferramenta que dá uma pontuação para seus jogadores para cada posição

目前为 2021-03-09 提交的版本。查看 最新版本

// ==UserScript==
// @name         PontuacaoMZ
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Ferramenta que dá uma pontuação para seus jogadores para cada posição
// @author       Gabriel Menezes (mz_seds)
// @match        https://www.managerzone.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    var players_container = document.getElementById("players_container");
    var players_html = players_container.children;


    var pesos =
        {
            "Goleiro": {
                "Velocidade":0.09,
                "Resistência":0.09,
                "Inteligência":0.09,
                "Passe Curto":0.02,
                "Chute":0,
                "Cabeceio":0,
                "Defesa a Gol":0.55,
                "Controle de Bola":0.09,
                "Desarme":0,
                "Passe Longo":0.02,
                "Bola Parada":0,
                "Experiência":0.05,
                "Forma":0
            },
            "Zagueiro": {
                "Velocidade":0.25,
                "Resistência":0.16,
                "Inteligência":0.07,
                "Passe Curto":0.02,
                "Chute":0,
                "Cabeceio":0,
                "Defesa a Gol":0.0,
                "Controle de Bola":0.08,
                "Desarme":0.3,
                "Passe Longo":0.07,
                "Bola Parada":0,
                "Experiência":0.05,
                "Forma":0
            },
            "Ancora": {
                "Velocidade":0.25,
                "Resistência":0.18,
                "Inteligência":0.05,
                "Passe Curto":0.05,
                "Chute":0,
                "Cabeceio":0.02,
                "Defesa a Gol":0.0,
                "Controle de Bola":0.1,
                "Desarme":0.25,
                "Passe Longo":0.05,
                "Bola Parada":0,
                "Experiência":0.05,
                "Forma":0
            },
            "Meio": {
                "Velocidade":0.15,
                "Resistência":0.15,
                "Inteligência":0.1,
                "Passe Curto":0.15,
                "Chute":0,
                "Cabeceio":0,
                "Defesa a Gol":0,
                "Controle de Bola":0.12,
                "Desarme":0.2,
                "Passe Longo":0.08,
                "Bola Parada":0,
                "Experiência":0.05,
                "Forma":0
            },
            "Ponta": {
                "Velocidade":0.25,
                "Resistência":0.2,
                "Inteligência":0.06,
                "Passe Curto":0.04,
                "Chute":0.05,
                "Cabeceio":0,
                "Defesa a Gol":0,
                "Controle de Bola":0.15,
                "Desarme":0.05,
                "Passe Longo":0.15,
                "Bola Parada":0,
                "Experiência":0.05,
                "Forma":0
            }
            ,
            "Atacante": {
                "Velocidade":0.2,
                "Resistência":0.15,
                "Inteligência":0.05,
                "Passe Curto":0.04,
                "Chute":0.25,
                "Cabeceio":0.11,
                "Defesa a Gol":0,
                "Controle de Bola":0.15,
                "Desarme":0,
                "Passe Longo":0,
                "Bola Parada":0,
                "Experiência":0.05,
                "Forma":0
            }
    }

    var habilidades = [
        "Velocidade",
        "Resistência",
        "Inteligência",
        "Passe Curto",
        "Chute",
        "Cabeceio" ,
        "Defesa a Gol",
        "Controle de Bola",
        "Desarme",
        "Passe Longo",
        "Bola Parada",
        "Experiência",
        "Forma"
    ]

    function calcularNotaPorPosicao(jogador, posicao) {
        let somatorioDaHabilidade = 0
        let somatorioDoPeso = 0
        habilidades.forEach(habilidade => {
            somatorioDaHabilidade = somatorioDaHabilidade + (jogador[habilidade] * pesos[posicao][habilidade])
            somatorioDoPeso = somatorioDoPeso + pesos[posicao][habilidade]
        })

        return somatorioDaHabilidade / somatorioDoPeso
    }

    function buscaHabilidadesDoJogador(allskillval) {
        let contador = 0
        let jogador = {}
        habilidades.forEach(habilidade => {
            jogador[habilidade] = allskillval[contador++].innerText.replace(/[()]/g, "")
        })
        return jogador
    }


    for (var i = 0; i < players_html.length; i++) {
        var player = players_html[i];
        var header = player.getElementsByClassName("subheader clearfix")[0];


        var allskillval = player.getElementsByClassName("skillval")

        var jogador = buscaHabilidadesDoJogador(allskillval)

        var goleiro = calcularNotaPorPosicao(jogador, "Goleiro")
        var zagueiro = calcularNotaPorPosicao(jogador, "Zagueiro")
        var ancora = calcularNotaPorPosicao(jogador, "Ancora")
        var meio = calcularNotaPorPosicao(jogador, "Meio")
        var ponta = calcularNotaPorPosicao(jogador, "Ponta")
        var atacante = calcularNotaPorPosicao(jogador, "Atacante")

        var nota = document.createElement("span");
        var novaLinha = document.createElement("br");
        var stringNota = `Goleiro: ${goleiro.toFixed(3)} || Zagueiro: ${zagueiro.toFixed(3)} || Ancora: ${ancora.toFixed(3)} || Meio: ${meio.toFixed(3)} || Ponta: ${ponta.toFixed(3)} || Atacante: ${atacante.toFixed(3)}`

        nota.textContent = stringNota

        header.appendChild(novaLinha);
        header.appendChild(nota);

    }

})();