// ==UserScript== // @name van.mz.playerAdvanced // @namespace van // @version 4.27 // @description Player display optimization 球员着色插件 // @author van // @match https://www.managerzone.com/* // @grant GM_setValue // @grant GM_getValue // @grant GM_listValues // @grant GM_deleteValue // @grant GM_setClipboard // @grant GM_xmlhttpRequest // @connect www.x2x.fun // @connect sgj.x2x.fun // @require https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/pako/1.0.5/pako.min.js // @require https://lf6-cdn-tos.bytecdntp.com/cdn/expire-20-M/dexie/3.2.0/dexie.min.js // @require https://lf9-cdn-tos.bytecdntp.com/cdn/expire-20-M/blueimp-md5/2.14.0/js/md5.min.js // @require https://unpkg.com/vple/base64js.min.js // @require https://unpkg.com/vple/vple.min.js // @require https://unpkg.com/vple/echarts.min.js // @downloadURL https://update.greasyfork.cloud/scripts/373382/vanmzplayerAdvanced.user.js // @updateURL https://update.greasyfork.cloud/scripts/373382/vanmzplayerAdvanced.meta.js // ==/UserScript== var vanGmMzModel = { language: { zh: { Name: "中文", GetPlayersHtml: "获取球员页面HTML", GetPlayersHtml2: "获取球员页面HTML(不用缓存)", Clear: "清空缓存", Save: "保存", Setting: "设置", Test: "测试", SettingTitle: "点击可对语言和XML导出进行设置", Language: "语言", XmlMode: "战术导出模式", XmlMode1: "顺序选择球员", XmlMode2: "根据位置选择球员(需提交数据到后台)", TacConf: "位置系数设置", AutoRun: "自动着色", AutoRun0: "仅打开页面时自动执行一次", AutoRun1: "随系统刷新自动着色(如果浏览器变卡请关闭此选项)", Pay: "如果你觉得好用,可通过打赏支持作者。", NotSureEx: "挂牌后属性可能有变动,不确定转会市场显示是否是真实属性,请自行甄别。
属性变动时间", NotSure: "属性不确定", ManualColorTitle: "点击可手动着色 快捷键:ALT + A", ManualColor: "手动着色", Jijing: "比赛集锦", dongzuo: "球员动作", Copyxml1: "复制主队战术", Copyxml2: "复制客队战术", CopyXml: "数据已复制到剪切板", CopyXmlMsg: "战术已复制到剪切板", CopyXmlMsgError: "战术复制失败", BA_NORMAL: "BA_NORMAL", BA_WALL: "站人墙", BA_HOLD: "抱着球", BA_DOWN: "倒地", BA_HOLD_THROWIN: "界外球准备", BA_THROWIN: "界外球", BA_LEFT_FOOT_SHOT_FWD: "射门/长传(L)", BA_LEFT_FOOT_SHOT_BACK: "BA_LEFT_FOOT_SHOT_BACK", BA_LEFT_FOOT_SHOT_RIGHT: "BA_LEFT_FOOT_SHOT_RIGHT", BA_LEFT_FOOT_SHOT_LEFT: "BA_LEFT_FOOT_SHOT_LEFT", BA_RIGHT_FOOT_SHOT_FWD: "射门/长传(R)", BA_RIGHT_FOOT_SHOT_BACK: "BA_RIGHT_FOOT_SHOT_BACK", BA_RIGHT_FOOT_SHOT_RIGHT: "BA_RIGHT_FOOT_SHOT_RIGHT", BA_RIGHT_FOOT_SHOT_LEFT: "BA_RIGHT_FOOT_SHOT_LEFT", BA_LEFT_FOOT_PASS_FWD: "短传(L)", BA_LEFT_FOOT_PASS_BACK: "BA_LEFT_FOOT_PASS_BACK", BA_LEFT_FOOT_PASS_RIGHT: "BA_LEFT_FOOT_PASS_RIGHT", BA_LEFT_FOOT_PASS_LEFT: "BA_LEFT_FOOT_PASS_LEFT", BA_RIGHT_FOOT_PASS_FWD: "短传(R)", BA_RIGHT_FOOT_PASS_BACK: "BA_RIGHT_FOOT_PASS_BACK", BA_RIGHT_FOOT_PASS_RIGHT: "BA_RIGHT_FOOT_PASS_RIGHT", BA_RIGHT_FOOT_PASS_LEFT: "BA_RIGHT_FOOT_PASS_LEFT", BA_PICK_UP_BALL: "捡起球", BA_DROP_BALL: "放下球", BA_HEADER: "争顶", BA_TRIP: "丢失球权", BA_CELEBRATE: "庆祝进球", BA_GK_READY: "准备扑救", BA_GK_ACRO_LEFT: "ACRO(L)", BA_GK_ACRO_LEFT_HOLD: "ACRO_HOLD(L)", BA_GK_ACRO_RIGHT: "ACRO(R)", BA_GK_ACRO_RIGHT_HOLD: "ACRO_HOLD(R)", BA_GK_SIDESTEP_LEFT: "移动(L)", BA_GK_SIDESTEP_RIGHT: "移动(R)", BA_GK_KICK: "BA_GK_KICK", BA_GK_THROW_BALL: "BA_GK_THROW_BALL", BA_GK_STRETCH_LEFT: "BA_GK_STRETCH_LEFT", BA_GK_STRETCH_LEFT_HOLD: "BA_GK_STRETCH_LEFT_HOLD", BA_GK_STRETCH_RIGHT: "BA_GK_STRETCH_RIGHT", BA_GK_STRETCH_RIGHT_HOLD: "BA_GK_STRETCH_RIGHT_HOLD", BA_BALL_OWNER: "控球", BA_TACKLE: "上抢", BA_SLIDING_TACKLE: "BA_SLIDING_TACKLE", BA_SLIDING_TACKLE_STAND: "BA_SLIDING_TACKLE_STAND", BA_MAX: "BA_MAX", BA_MY_1001: "头球攻门(L)", BA_MY_1002: "头球攻门(R)", BA_MY_1003: "卸下球", BA_MY_1011: "上抢(成功)", BA_MY_1012: "上抢(失败)", Unknown: "未知" , training_pos: "无教练", training_camp: "进营", training_coach: "有教练", training_ycc: "调整", training_itc: "强化", training_neg: "掉球", training_unit: "格", training_unknown: "未知训练类型", training_ball_day: "离下一次涨球训练天数", training_part: "分段训练效率", training_total: "进度", training_avg: "平均", training_now: "当前训练进度", SkillsAnalysisTitle: "点击可手动着色和分析训练效率 快捷键:ALT + S", SkillsAnalysis: "训练效率分析" , sug_T0: "首选:", sug_T1: "次选:", sug_T2: "可尝试:", sug_T3: "默认:", Pos9: "后卫", Pos7: "门将", Pos10: "边锋", Pos5: "前锋", Pos4: "中场", Pos56: "中锋", Pos21: "后腰", Pos22: "边卫", Pos23: "前腰", PosScores: "位置评分", Scores: "评分", sug_Loser: "关键属性容易早死,尽早交换或开除。", sug_PRI: "训练顺序:", attrName1: "速度", attrName2: "耐力", attrName3: "意识", attrName4: "传球", attrName5: "射门", attrName6: "头球", attrName7: "守门", attrName8: "控球", attrName9: "抢断", attrName10: "传中", attrName11: "定位" , scoutReport: "球探报告" , now: "当前", future: "可达", max: "最大可能" } , en: { Name: "English", GetPlayersHtml: "Get players page", GetPlayersHtml2: "Get players page(No cache)", Clear: "Clear Cache", Save: "Save", Setting: "Setting", Test: "Test", SettingTitle: "Click setting language", Language: "Language", XmlMode: "Tactical Export Model", XmlMode1: "Sequential selection", XmlMode2: "Choose by location(need submit data to server)", TacConf: "Tactical Coefficient Setting", AutoRun: "Auto Colorable", AutoRun0: "By page loaded(Once)", AutoRun1: "By MZ Refresh", Pay: "Support the author.", NotSureEx: "Skills may change after entering the transfer market.
Change time ", NotSure: "Uncertain skill", ManualColorTitle: "Click the Colorable Skill. Shortcut key : ALT + A", ManualColor: "Colorable Skill", Jijing: "Events", dongzuo: "PlayerStatus", Copyxml1: "CopyXML(home)", Copyxml2: "CopyXML(away)", CopyXml: "The data has been copied to the clipboard!", CopyXmlMsg: "The tactic was copied to the Clipboard!", CopyXmlMsgError: "Copy error!", BA_NORMAL: "Normal", BA_WALL: "Wall", BA_HOLD: "Hold", BA_DOWN: "Down", BA_HOLD_THROWIN: "HoldThrowin", BA_THROWIN: "Throwin", BA_LEFT_FOOT_SHOT_FWD: "FootShot(L)", BA_LEFT_FOOT_SHOT_BACK: "FootShotBack(L)", BA_LEFT_FOOT_SHOT_RIGHT: "FootShotRight(L)", BA_LEFT_FOOT_SHOT_LEFT: "FootShotLeft(L)", BA_RIGHT_FOOT_SHOT_FWD: "FootShot(R)", BA_RIGHT_FOOT_SHOT_BACK: "FootShotBack(R)", BA_RIGHT_FOOT_SHOT_RIGHT: "FootShotRight(R)", BA_RIGHT_FOOT_SHOT_LEFT: "FootShotLeft(R)", BA_LEFT_FOOT_PASS_FWD: "FootPass(L)", BA_LEFT_FOOT_PASS_BACK: "FootPassBack(L)", BA_LEFT_FOOT_PASS_RIGHT: "FootPassRight(L)", BA_LEFT_FOOT_PASS_LEFT: "FootPassLeft(L)", BA_RIGHT_FOOT_PASS_FWD: "FootPass(R)", BA_RIGHT_FOOT_PASS_BACK: "FootPassBack(R)", BA_RIGHT_FOOT_PASS_RIGHT: "FootPassRight(R)", BA_RIGHT_FOOT_PASS_LEFT: "FootPassLeft(R)", BA_PICK_UP_BALL: "PickUpBall", BA_DROP_BALL: "DropBall", BA_HEADER: "Header", BA_TRIP: "Trip", BA_CELEBRATE: "Celebrate", BA_GK_READY: "GkReady", BA_GK_ACRO_LEFT: "GkAcroLeft", BA_GK_ACRO_LEFT_HOLD: "GkAcroLeftHold", BA_GK_ACRO_RIGHT: "GkAcroRight", BA_GK_ACRO_RIGHT_HOLD: "GkAcroRightHold", BA_GK_SIDESTEP_LEFT: "GkSidestepLeft", BA_GK_SIDESTEP_RIGHT: "GkSidestepRight", BA_GK_KICK: "GkKick", BA_GK_THROW_BALL: "GkThrowBall", BA_GK_STRETCH_LEFT: "GkStretchLeft", BA_GK_STRETCH_LEFT_HOLD: "GkStretchLeftHold", BA_GK_STRETCH_RIGHT: "GkStretchRight", BA_GK_STRETCH_RIGHT_HOLD: "GkStretchRightHold", BA_BALL_OWNER: "BallOwner", BA_TACKLE: "Tackle", BA_SLIDING_TACKLE: "SlidingTackle", BA_SLIDING_TACKLE_STAND: "SlidingTackleStand", BA_MAX: "Max", BA_MY_1001: "HeadGoal(L)", BA_MY_1002: "HeadGoal(R)", BA_MY_1003: "StopTheBall", BA_MY_1011: "Tackle(Success)", BA_MY_1012: "Tackle(Fail)", Unknown: "Unknown" , training_pos: "No coach", training_camp: "CAMP", training_coach: "Coach", training_ycc: "Ycc", training_itc: "Itc", training_neg: "Neg", training_unit: "↑", training_unknown: "Unknown training", training_ball_day: "Next ball days", training_part: "Training efficiency", training_total: "Total", training_avg: "Avg", training_now: "Now", SkillsAnalysisTitle: "Colorable Skill and Analysis of Training Efficiency Shortcut key :ALT + S", SkillsAnalysis: "Colorable By Graphs" , sug_T0: "First plan:", sug_T1: "Second plan:", sug_T2: "May try:", sug_T3: "Default:", Pos9: "CB", Pos7: "GK", Pos10: "WF", Pos5: "ST", Pos4: "MF", Pos56: "CF", Pos21: "DM", Pos22: "WB", Pos23: "AMF", PosScores: "Tactics score", Scores: "Scores", sug_Loser: "Key skills too low.Exchange or dismiss as soon as possible.", sug_PRI: "Training order:", attrName1: "Speed", attrName2: "Stamina", attrName3: "Play Intelligence", attrName4: "Passing", attrName5: "Shooting", attrName6: "Heading", attrName7: "Keeping", attrName8: "Ball Control", attrName9: "Tackling", attrName10: "Aerial Passing", attrName11: "Set Plays" , scoutReport: "Scout Report", now: "now", future: "attainable", max: "max" } , es: { Name: "Español", GetPlayersHtml: "Página de jugadores", GetPlayersHtml2: "Página de jugadores(sin caché)", Clear: "Vaciar el caché", Save: "Guardar", Setting: "Ajustes", Test: "Test", SettingTitle: "Haga clic en configuración Idioma", Language: "Idioma", XmlMode: "Tactical Export Model", XmlMode1: "Secuencia de selección", XmlMode2: "Elegir por locación (necesita suministrar datos al servidor)", TacConf: "Tactical Coefficient Setting", AutoRun: "Auto Coloreable", AutoRun0: "Por página cargada (sólo una vez)", AutoRun1: "Por recargar MZ", Pay: "Apoya al autor.", NotSureEx: "Las skills pueden cambiar después de ingresar al mercado.
Cambiar hora ", NotSure: "Skill incierta", ManualColorTitle: "Haga clic en la skill para colorear. Acceso directo: ALT + A", ManualColor: "Color de la skill", Jijing: "Eventos", dongzuo: "PlayerStatus", Copyxml1: "CopiarXML(local)", Copyxml2: "CopiarXML(visitante)", CopyXml: "Los datos se han copiado al portapapeles", CopyXmlMsg: "La táctica fue copiada al portapapeles", CopyXmlMsgError: "¡Error al copiar!", BA_NORMAL: "Normal", BA_WALL: "Wall", BA_HOLD: "Hold", BA_DOWN: "Down", BA_HOLD_THROWIN: "HoldThrowin", BA_THROWIN: "Throwin", BA_LEFT_FOOT_SHOT_FWD: "FootShot(L)", BA_LEFT_FOOT_SHOT_BACK: "FootShotBack(L)", BA_LEFT_FOOT_SHOT_RIGHT: "FootShotRight(L)", BA_LEFT_FOOT_SHOT_LEFT: "FootShotLeft(L)", BA_RIGHT_FOOT_SHOT_FWD: "FootShot(R)", BA_RIGHT_FOOT_SHOT_BACK: "FootShotBack(R)", BA_RIGHT_FOOT_SHOT_RIGHT: "FootShotRight(R)", BA_RIGHT_FOOT_SHOT_LEFT: "FootShotLeft(R)", BA_LEFT_FOOT_PASS_FWD: "FootPass(L)", BA_LEFT_FOOT_PASS_BACK: "FootPassBack(L)", BA_LEFT_FOOT_PASS_RIGHT: "FootPassRight(L)", BA_LEFT_FOOT_PASS_LEFT: "FootPassLeft(L)", BA_RIGHT_FOOT_PASS_FWD: "FootPass(R)", BA_RIGHT_FOOT_PASS_BACK: "FootPassBack(R)", BA_RIGHT_FOOT_PASS_RIGHT: "FootPassRight(R)", BA_RIGHT_FOOT_PASS_LEFT: "FootPassLeft(R)", BA_PICK_UP_BALL: "Toma la pelota", BA_DROP_BALL: "Tira la pelota al césped", BA_HEADER: "Cabezazo", BA_TRIP: "Trip", BA_CELEBRATE: "Celebración", BA_GK_READY: "Arquero preparado", BA_GK_ACRO_LEFT: "GkAcroLeft", BA_GK_ACRO_LEFT_HOLD: "GkAcroLeftHold", BA_GK_ACRO_RIGHT: "GkAcroRight", BA_GK_ACRO_RIGHT_HOLD: "GkAcroRightHold", BA_GK_SIDESTEP_LEFT: "Arquero da un paso a la izquierda", BA_GK_SIDESTEP_RIGHT: "Arquero da un paso a la derecha", BA_GK_KICK: "Arquero da una patada", BA_GK_THROW_BALL: "GkThrowBall", BA_GK_STRETCH_LEFT: "GkStretchLeft", BA_GK_STRETCH_LEFT_HOLD: "GkStretchLeftHold", BA_GK_STRETCH_RIGHT: "GkStretchRight", BA_GK_STRETCH_RIGHT_HOLD: "GkStretchRightHold", BA_BALL_OWNER: "Con la pelota en los pies", BA_TACKLE: "Entrada", BA_SLIDING_TACKLE: "Barrida", BA_SLIDING_TACKLE_STAND: "SlidingTackleStand", BA_MAX: "Max", BA_MY_1001: "HeadGoal(L)", BA_MY_1002: "HeadGoal(R)", BA_MY_1003: "Frena la pelota", BA_MY_1011: "Entrada(acertada)", BA_MY_1012: "Entrada(fallida)", Unknown: "Desconocido" , training_pos: "Sin entrenador", training_camp: "CAMP", training_coach: "Coach", training_ycc: "YCC", training_itc: "ITC", training_neg: "Neg", training_unit: "↑", training_unknown: "Entrenamiento desconocido", training_ball_day: "Días para ganar una pelotita", training_part: "Eficacia de entrenamiento", training_total: "Total", training_avg: "Avg", training_now: "Ahora", SkillsAnalysisTitle: "Skills y análisis de eficacia de entrenamiento coloreables al presionar: ALT + S", SkillsAnalysis: "Coloreable por gráficos" , sug_T0: "Primera opción:", sug_T1: "Segunda opción:", sug_T2: "Podrías intentar:", sug_T3: "Predeterminado:", Pos9: "Centro defensor", Pos7: "Arquero", Pos10: "Delantero lateral", Pos5: "Segundo delantero", Pos4: "Centrocampista", Pos56: "Miediocampista/Anchor", Pos21: "DM", Pos22: "WB", Pos23: "AMF", PosScores: "Puntuación táctica", Scores: "Puntuación", sug_Loser: "Habilidades clave demasiado bajas. Intercambialo lo más antes posible.", sug_PRI: "Orden de entrenamiento:", attrName1: "Velocidad", attrName2: "Resistencia", attrName3: "Inteligencia", attrName4: "Pases", attrName5: "Remates", attrName6: "Cabezazos", attrName7: "Atajando", attrName8: "Control de balón", attrName9: "Entradas", attrName10: "Pases Largos", attrName11: "Balón Parado" , scoutReport: "REPORTE DE SCOUTEO", now: "ahora", future: "realizable", max: "máximo" } , br: { Name: "Português", GetPlayersHtml: "Página de jogadores", GetPlayersHtml2: "Página de jugadores(sem cache)", Clear: "Esvaziar o cache", Save: "Salvar", Setting: "Configurações", Test: "Teste", SettingTitle: "Clique para configurar linguagem", Language: "Linguagem", XmlMode: "Exportar Modelo Tático", XmlMode1: "Seleção Sequencial", XmlMode2: "Escolha localização (precisa submeter dados ao servidor)", TacConf: "Configuração de Coeficiente Tático", AutoRun: "Auto Colorir", AutoRun0: "Por página carregada(Uma vez)", AutoRun1: "Recarregada do MZ", Pay: "Apoie o autor.", NotSureEx: "Habilidades podem mudar depois de entrar no mercado de transferências.
Hora da mudança ", NotSure: "Habilidade incerta", ManualColorTitle: "Clique na habilidade colorida. Tecla de atalho: ALT + A", ManualColor: "Habilidade colorida", Jijing: "Eventos", dongzuo: "Status do jogador", Copyxml1: "Copiar XML(mandante)", Copyxml2: "Copiar XML(visitante)", CopyXml: "Os dados foram copiados para a área de transferência!", CopyXmlMsg: "A tática foi copiada para a área de transferências!", CopyXmlMsgError: "Erro na cópia!", BA_NORMAL: "Normal", BA_WALL: "Wall", BA_HOLD: "Hold", BA_DOWN: "Down", BA_HOLD_THROWIN: "HoldThrowin", BA_THROWIN: "Throwin", BA_LEFT_FOOT_SHOT_FWD: "FootShot(L)", BA_LEFT_FOOT_SHOT_BACK: "FootShotBack(L)", BA_LEFT_FOOT_SHOT_RIGHT: "FootShotRight(L)", BA_LEFT_FOOT_SHOT_LEFT: "FootShotLeft(L)", BA_RIGHT_FOOT_SHOT_FWD: "FootShot(R)", BA_RIGHT_FOOT_SHOT_BACK: "FootShotBack(R)", BA_RIGHT_FOOT_SHOT_RIGHT: "FootShotRight(R)", BA_RIGHT_FOOT_SHOT_LEFT: "FootShotLeft(R)", BA_LEFT_FOOT_PASS_FWD: "FootPass(L)", BA_LEFT_FOOT_PASS_BACK: "FootPassBack(L)", BA_LEFT_FOOT_PASS_RIGHT: "FootPassRight(L)", BA_LEFT_FOOT_PASS_LEFT: "FootPassLeft(L)", BA_RIGHT_FOOT_PASS_FWD: "FootPass(R)", BA_RIGHT_FOOT_PASS_BACK: "FootPassBack(R)", BA_RIGHT_FOOT_PASS_RIGHT: "FootPassRight(R)", BA_RIGHT_FOOT_PASS_LEFT: "FootPassLeft(R)", BA_PICK_UP_BALL: "Pega a bola", BA_DROP_BALL: "Deixa a bola", BA_HEADER: "Cabeceio", BA_TRIP: "Trip", BA_CELEBRATE: "Celebração", BA_GK_READY: "Goleiro pronto", BA_GK_ACRO_LEFT: "GkAcroLeft", BA_GK_ACRO_LEFT_HOLD: "GkAcroLeftHold", BA_GK_ACRO_RIGHT: "GkAcroRight", BA_GK_ACRO_RIGHT_HOLD: "GkAcroRightHold", BA_GK_SIDESTEP_LEFT: "Goleiro dá passo à esquerda", BA_GK_SIDESTEP_RIGHT: "Goleiro dá passo à direita", BA_GK_KICK: "Goleiro chuta", BA_GK_THROW_BALL: "GkThrowBall", BA_GK_STRETCH_LEFT: "GkStretchLeft", BA_GK_STRETCH_LEFT_HOLD: "GkStretchLeftHold", BA_GK_STRETCH_RIGHT: "GkStretchRight", BA_GK_STRETCH_RIGHT_HOLD: "GkStretchRightHold", BA_BALL_OWNER: "Com a bola nos pés", BA_TACKLE: "Desarme", BA_SLIDING_TACKLE: "Carrinho", BA_SLIDING_TACKLE_STAND: "SlidingTackleStand", BA_MAX: "Max", BA_MY_1001: "HeadGoal(L)", BA_MY_1002: "HeadGoal(R)", BA_MY_1003: "Pára a bola", BA_MY_1011: "Desarme(Sucesso)", BA_MY_1012: "Desarme(Falha)", Unknown: "Desconhecido" , training_pos: "Sem treinador", training_camp: "CAMP", training_coach: "Coach", training_ycc: "Ycc", training_itc: "Itc", training_neg: "Neg", training_unit: "↑", training_unknown: "Treinamento desconhecido", training_ball_day: "Dias para ganhar bola", training_part: "Eficiência de treinamento", training_total: "Total", training_avg: "Avg", training_now: "Agora", SkillsAnalysisTitle: "Tecla de atalho de Habilidades coloridas e Análise de Eficiência de treinamento: ALT + S", SkillsAnalysis: "Colorir por gráficos" , sug_T0: "Primeira opção:", sug_T1: "Segunda opção:", sug_T2: "Pode tentar:", sug_T3: "Padrão:", Pos9: "Zagueiro central", Pos7: "Goleiro", Pos10: "Ponta", Pos5: "Segundo atacante", Pos4: "Meia Central", Pos56: "Meio-campo/Volante", Pos21: "DM", Pos22: "WB", Pos23: "AMF", PosScores: "Pontuação tática", Scores: "Pontuação", sug_Loser: "Habilidades principais muito baixas. Troque ou dispense o mais breve possível.", sug_PRI: "Ordem de treinamento:", attrName1: "Velocidade", attrName2: "Resistência", attrName3: "Inteligência", attrName4: "Passe Curto", attrName5: "Chute", attrName6: "Cabeceio", attrName7: "Defesa a Gol", attrName8: "Controle de Bola", attrName9: "Desarme", attrName10: "Passe Longo", attrName11: "Bola Parada" , scoutReport: "Relatório de Observador", now: "agora", future: "realizável", max: "máximo" } } , scoutLocList: { "9": { "Prop": { "1": 0, "2": 0, "9": 1, "10": 2, "8": 2, "3": 2, "4": 2, "6": 2 }, "Order": [1, 2, 9, 10, 8, 3, 4, 6], "CampKey": "9" }, "7": { "Prop": { "2": 0, "7": 1, "3": 1, "1": 1, "10": 2, "11": 2, "8": 2 }, "Order": [2, 7, 3, 1, 10, 11, 8], "CampKey": "7" }, "10": { "Prop": { "1": 0, "2": 0, "10": 1, "8": 1, "9": 2, "4": 2, "5": 2, "6": 2 }, "Order": [1, 2, 10, 8, 9, 4, 5, 6], "CampKey": "10" }, "5": { "Prop": { "1": 0, "2": 0, "5": 1, "8": 1, "6": 1, "3": 2, "4": 2, "10": 2, "9": 2 }, "Order": [1, 2, 5, 8, 6, 3, 4, 10, 9], "CampKey": "5" }, "4": { "Prop": { "1": 0, "2": 0, "4": 1, "8": 1, "3": 1, "10": 2, "9": 2, "5": 2, "6": 2 }, "Order": [1, 2, 4, 8, 3, 10, 9, 5, 6], "CampKey": "4" }, "5,6": { "Prop": { "2": 0, "1": 0, "5": 1, "6": 1, "8": 1, "3": 2, "4": 2, "10": 2, "9": 2 }, "Order": [2, 1, 5, 8, 6, 3, 4, 10, 9], "CampKey": "56" } } , OKeys: ["9", "7", "10", "5", "4", "5,6"] , CTable: function () { //key value this.data = {}; //keys this.keys = new Array(); this.addData = function (key, value) { if (this.data[key] == undefined) { this.keys.push(key); this.keys.sort(function (a, b) { return a - b; }); } this.data[key] = value; }; this.getVal = function (i) { if (this.data[i] == undefined) { // } else { return this.data[i]; } }; this.GetX = function (i) { let rv = this.getVal(i); rv = Math.floor(rv * 214 / 1000) - 3; return rv; }; this.GetY = function (i) { let rv = this.getVal(i); rv = Math.floor(rv * 328 / 1000) - 1; return rv; }; } , mzcamp: function () { this.data = {}; this.name = null; this.keys = new Array(); this.index = 0; this.add = function (begin, end) { if (end > begin + 2937600000) { end = begin + 2937600000; } if (this.data[begin] == undefined) { this.keys.push(begin); this.keys.sort(function (a, b) { return a - b; }); } this.data[begin] = { begin: begin, end: end }; }; this.getItem = function (begin) { return this.data[begin]; }; this.resetIndex = function () { this.index = 0; }; this.inYTC = function (x) { while (this.index < this.keys.length) { let item = this.data[this.keys[this.index]]; if (x < item.begin) { return false; } else if (x <= item.end) { if (/\d/.test(item.name)) { return false; } return true; } if (x > item.end) { this.index++; } } return false; }; } , playerTrainingBySkill: function () { //涨球时间 this.ballDay = 0; //训练统计 this.stat = new vanGmMzModel.trainingStat(); //当前球数 this.skill = 0; //最后一次训练 this.lt = 0; } , trainingStat: function () { //所有 不包含掉球 this.all = new vanGmMzModel.trainingDay(); ////普通训练 无教练 //this.pos = new vanGmMzModel.trainingDay(); ////强化营 //this.itc = new vanGmMzModel.trainingDay(); ////调整营 //this.ycc = new vanGmMzModel.trainingDay(); ////掉球 //this.neg = new vanGmMzModel.trainingDay(); ////理疗 //this.physio = new vanGmMzModel.trainingDay(); ////有教练 //this.coach = new vanGmMzModel.trainingDay(); ////训练营 //this.camp = new vanGmMzModel.trainingDay(); //对某类型加1 this.add = function (type, tn) { if (!this[type]) { this[type] = new vanGmMzModel.trainingDay(); } this[type][tn] += 1; }; this.getSum = function (canOver100) { let ret = 0; if (this.neg) { ret = this.all.getSum() - this.neg.getSum(); } else { ret = this.all.getSum(); } if (!canOver100) { if (ret >= 100) { ret = 99.99; } } return ret; }; this.getAvg = function () { //let ret = this.getSum() / (this.t1 * 1 + this.t2 * 1 + this.t3 * 1 + this.t4 * 1 + this.t5 * 1 + this.t6 * 1 + this.t7 * 1 + this.t8 * 1 + this.t9 * 1 + this.t10 * 1); //ret = parseFloat(ret).toFixed(1); //return ret; if (this.neg) { return -this.neg.getAvg(); } else { return this.all.getAvg(); } }; this.getTnText = function (now_language) { let str = ""; if (this.pos) { str += " " + now_language.training_pos + this.pos.getTnText(now_language); } if (this.camp) { str += " " + now_language.training_camp + this.camp.getTnText(now_language); } if (this.coach) { str += " " + now_language.training_coach + this.coach.getTnText(now_language); } if (this.ycc) { str += " " + now_language.training_ycc + this.ycc.getTnText(now_language); } if (this.itc) { str += " " + now_language.training_itc + this.itc.getTnText(now_language); } if (this.neg) { str += " " + now_language.training_neg + this.neg.getTnText(now_language); } return str; }; //this.getAvgAndText = function () { // //let ret = this.getSum() / (this.t1 * 1 + this.t2 * 1 + this.t3 * 1 + this.t4 * 1 + this.t5 * 1 + this.t6 * 1 + this.t7 * 1 + this.t8 * 1 + this.t9 * 1 + this.t10 * 1); // //ret = parseFloat(ret).toFixed(1); // //return ret; // let ret = this.getAvg(); // let str = ""; // if (ret <= 0.4) { // str = "1格"; // } // else if (ret > 0.4 && ret <= 1.1) { // str = "2格"; // } // else if (ret > 0.4 && ret <= 2.1) { // str = "2格"; // } // this.t1 * 0.4 * 1 // + this.t2 * 0.55 * 2 // + this.t3 * 0.7 * 3 // + this.t4 * 0.85 * 4 // + this.t5 * 1 * 5 // + this.t6 * 1.15 * 6 // + this.t7 * 1.3 * 7 // + this.t8 * 1.45 * 8 // + this.t9 * 1.6 * 9 // + this.t10 * 1.75 * 10; //}; this.getDayByAvg = function (avg) { let ret = (100 - this.getSum()) / avg; ret = parseFloat(ret).toFixed(1); return ret; }; this.getDay = function () { if (this.coach) { return this.getDayByAvg(this.coach); } else if (this.pos) { return this.getDayByAvg(this.pos); } return undefined; }; } , trainingDay: function () { this.t1 = 0; this.t2 = 0; this.t3 = 0; this.t4 = 0; this.t5 = 0; this.t6 = 0; this.t7 = 0; this.t8 = 0; this.t9 = 0; this.t10 = 0; this.getSum = function () { let ret = this.t1 * 0.645 * 1 + this.t2 * 0.55 * 2 + this.t3 * 0.7 * 3 + this.t4 * 0.85 * 4 + this.t5 * 0.96 * 5 + this.t6 * 1.111 * 6 + this.t7 * 1.3 * 7 + this.t8 * 1.6 * 8 + this.t9 * 2.02 * 9 + this.t10 * 2.4 * 10; ret = parseFloat(ret).toFixed(1); return ret; }; this.getAvg = function () { let ret = this.getSum() / (this.t1 * 1 + this.t2 * 1 + this.t3 * 1 + this.t4 * 1 + this.t5 * 1 + this.t6 * 1 + this.t7 * 1 + this.t8 * 1 + this.t9 * 1 + this.t10 * 1); ret = parseFloat(ret).toFixed(1); return ret; }; this.getTnText = function (now_language) { let str = ""; if (this.t1 > 0) { str += " 1" + now_language.training_unit + "(" + this.t1 + ")"; } if (this.t2 > 0) { str += " 2" + now_language.training_unit + "(" + this.t2 + ")"; } if (this.t3 > 0) { str += " 3" + now_language.training_unit + "(" + this.t3 + ")"; } if (this.t4 > 0) { str += " 4" + now_language.training_unit + "(" + this.t4 + ")"; } if (this.t5 > 0) { str += " 5" + now_language.training_unit + "(" + this.t5 + ")"; } if (this.t6 > 0) { str += " 6" + now_language.training_unit + "(" + this.t6 + ")"; } if (this.t7 > 0) { str += " 7" + now_language.training_unit + "(" + this.t7 + ")"; } if (this.t8 > 0) { str += " 8" + now_language.training_unit + "(" + this.t8 + ")"; } if (this.t9 > 0) { str += " 9" + now_language.training_unit + "(" + this.t9 + ")"; } if (this.t10 > 0) { str += " 10" + now_language.training_unit + "(" + this.t10 + ")"; } return str; }; } , mzreg: { td_skill_val: /(\d+)/, img_val: /(\d+)\.gif/, playerMax: /trainingField.players\s*=\s*({.+})/, playerId: /player_id_(\d+)/, bar_itc: /bar_itc_(\d+)/, bar_ycc: /bar_ycc_(\d+)/, bar_pos: /bar_pos_(\d+)/, bar_neg: /bar_neg_(\d+)/, trainingType: /&t=([^)]+)/, data2d_url: /matchviewer\/media/, shortlist_url: /\/?p=shortlist/, ruok_url: /\/?p=team&tid=572357/, playerId_tac: /pid=(\d+)/, matchResult: /\/?p=match&sub=result&mid=(\d+)/, nocache: /nocache-\d+/ //data2d_url: /matchviewer\/getMatchFiles.php\?type=data&mid=\d+/ }, mzImg: { g: "data:image/gif;base64,R0lGODlhDAAKAJEDAP///8zM/wAA/////yH5BAEAAAMALAAAAAAMAAoAAAIk3CIpYZ0BABJtxvjMgojTIVwKpl0dCQbQJX3T+jpLNDXGlDUFADs=", r: "data:image/gif;base64,R0lGODlhDAAKAJEDAP////8AAMyZmf///yH5BAEAAAMALAAAAAAMAAoAAAIk3BQZYp0CAAptxvjMgojTEVwKpl0dCQrQJX3T+jpLNDXGlDUFADs=", b: "data:image/gif;base64,R0lGODlhDAAKAJEDAP///5mZmQAAAP///yH5BAEAAAMALAAAAAAMAAoAAAIk3CIpYZ0BABJtxvjMgojTIVwKpl0dCQbQJX3T+jpLNDXGlDUFADs=", p: "data:image/gif;base64,R0lGODlhDAAKAJEDAP///5lm/5kzzP///yH5BAEAAAMALAAAAAAMAAoAAAIk3CIpYZ0BABJtxvjMgojTIVwKpl0dCQbQJX3T+jpLNDXGlDUFADs=", x: "data:image/gif;base64,R0lGODlhBgAKAJEDAJnMZpmZmQAAAP///yH5BAEAAAMALAAAAAAGAAoAAAIRXCRhApAMgoPtVXXS2Lz73xUAOw==" }, hImg: { g: "data:image/gif;base64,R0lGODlhDAAKALMNAOnt/+Xr/9ri/6/A/6G1/73L/52x/8/Z/4Wf/32Z/1x9/0Rr/x9N/////wAAAAAAACH5BAEAAA0ALAAAAAAMAAoAAAQwsDXD2FJB6sot0UnHLYckdoJ5VmmzWoi0nAuxSIEyW0qxJBrFAAAYKCoaSYgD1EQAADs=", r: "data:image/gif;base64,R0lGODlhDAAKANUkAOXq//8pKunt//ZTVPz19dXZ+tzk/+NAV+bl+Ojs//4wMeWkreXp/f4tLvRMT+Dm/+Xr/7lra/4vMepKSv7///ZRUvz8/tmHhs/Z/+xKSfVeYNCJkfhFRPUxOuBUZvRsb9ri//39//hDQv8oKf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACQALAAAAAAMAAoAAAZCQBLpMhqJMgiLkEQoOkeDwnLzdIowwuoTlNUWDRSSF/oIkUQBZ6BRAWiEkIlopPgsEhzPMgIQCBgOEiNLQh1PB4RBADs=", b: "data:image/gif;base64,R0lGODlhDAAKAMQUALW1teLi4oCAgMDAwB0dHevr6+3t7aCgoDMzM9nZ2bOzs0pKSszMzC0tLX9/f19fXz8/P5qamhISEgAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABQALAAAAAAMAAoAAAU1IEUpkgQ5hahObNsAatTOTyLOMxHcOKvzvcdB1Oi9FqKCA1I6MR4RlWBgMAwEiIlKJGtFVSEAOw==", p: "data:image/gif;base64,R0lGODlhDAAKALMNAOnt/+Xr/9ri/6/A/6G1/73L/52x/8/Z/4Wf/32Z/1x9/4tQ/30+/////wAAAAAAACH5BAEAAA0ALAAAAAAMAAoAAAQwsDXD2FJB6sot0UnHLYckdoJ5VmmzWoi0nAuxSIEyW0qxJBrFAAAYKCoaSYgD1EQAADs=", x: "data:image/gif;base64,R0lGODlhBgAKAJEDAJnMZpmZmQAAAP///yH5BAEAAAMALAAAAAAGAAoAAAIRXCRhApAMgoPtVXXS2Lz73xUAOw==" } , //以下为2D比赛辅助 MatchEvent: function () { this.data = new Array(); this.setAllPlayerEvent = function (team, tc) { for (let i = 0; i < tc.length; i++) { this.data.push(tc[i]); } for (let i = 0; i < team.m_players.length; i++) { let len = team.m_players[i].m_events.getLength(); for (let j = 0; j < len; j++) { this.data.push(team.m_players[i].m_events.at(j)); } } }; this.Sort = function () { this.data.sort(function (a, b) { return a.m_frame - b.m_frame; }); }; } , OutOfPlay: function () { this.data = new Array(); this.add = function (begin, end) { this.data.push({ begin: begin, end: end }); }; this.resetIndex = function () { this.index = 0; }; this.notin = function (frame) { while (this.index < this.data.length) { let item = this.data[this.index]; if (frame < item.begin) { return true; } else if (frame <= item.end) { return false; } if (frame > item.end) { this.index++; } } return true; }; this.Sort = function () { this.data.sort(function (a, b) { return a.begin - b.begin; }); } } }; var vanGmMz = { now_sport: "soccer", now_language: vanGmMzModel.language.en , pmax: {}, tacP: {}, tacCof: {}, trainingInfo: {}, vv: "", getMax: function (callback) { vple.ajax( "/?p=training&sport=" + vanGmMz.now_sport, function (data) { let result = data.match(vanGmMzModel.mzreg.playerMax); if (result) { vanGmMz.pmax = JSON.parse(result[1]); callback(vanGmMz.pmax); } else { return true; } }); return false; } , setSrc: function (transfer, img, skill, maxed, skillBallDay, pid, k) { img.skill = skill; img.maxed = maxed; let old = true; let p_tr = $(img).parents("tr:first"); if (p_tr.length == 0 || p_tr.attr("class")) { p_tr = $(img).nextAll(".skill_exact:first"); old = false; } if (skill > 0) { let flag_exit = false; if (transfer && skillBallDay) { if (new Date().getTime() - skillBallDay < 345600000) { vanGmMz.getTrainingGraphsBySkill_id(pid, k, function (data) { let result = data.match(new RegExp('{"x":' + skillBallDay + ',"y":(\\d+),[^}]*"marker"')); if (result && result.length) { $(img).parents("tr:first").find("td.skillval").html("(" + result[1] + ")"); vanGmMz.setSrc(false, img, parseInt(result[1]), maxed, false, pid, k); flag_exit = true; return true; } else { return false; } }); //$(img).parent().find("span").remove(); //$(img).parent().append("?"); } } if (flag_exit) { return; } if (pid && vanGmMz.trainingInfo[pid][k]) { let extmp = p_tr.find(".skill_exact2"); if (extmp.length > 0) { extmp.remove(); } let sum = 0; if (vanGmMz.trainingInfo[pid][k].neg && vanGmMz.trainingInfo[pid][k].neg[skill + 1]) { sum = vanGmMz.trainingInfo[pid][k].neg[skill + 1].stat.getSum(); } else if (vanGmMz.trainingInfo[pid][k][skill]) { sum = vanGmMz.trainingInfo[pid][k][skill].stat.getSum(); } if (old) { p_tr.append("
" + sum + "%
"); } else { p_tr.append("
" + sum + "%
"); } } if (img.isYtc) { p_tr.children().eq(0).addClass("gm_ytc"); } } let strdiv; if (old) { strdiv = "
"; } else { strdiv = "
"; } let tmpImg = vanGmMzModel.mzImg; if (vanGmMz.now_sport != "soccer") { tmpImg = vanGmMzModel.hImg; } for (let i = 0; i < skill; i++) { if (maxed === "red") { strdiv += ""; } else if (maxed === "green") { strdiv += ""; } else { strdiv += ""; } } if (/blevel_/.test(img.src)) { strdiv += ""; } strdiv += "
"; $(img).hide(); if (old) { $(img).parent().find("div").remove(); } else { $(img).nextAll("div.skilladd:first").remove(); } $(img).after(strdiv); } , showMax: function (GraphsType) { let players = $(".playerContainer"); for (let i = 0; i < players.length; i++) { let pdom = players.eq(i); let pid = pdom.html().match(vanGmMzModel.mzreg.playerId)[1]; let player = vanGmMz.pmax[pid]; let imgs = pdom.find("div.player-skills").find("img.ignore-fluid"); if (imgs.length == 0) { imgs = pdom.find("img.skill"); } if (GraphsType == 0 && player) { this.setPlayerImgs(imgs, player); if (pdom.find(".scout_report").length > 0) { vanGmMz.getScoutReport(pid, pdom); } } else if (pdom.find(".training_graphs").length > 0 && imgs.length > 0) { if (pdom.find(".scout_report").length > 0) { vanGmMz.getScoutReport(pid, pdom); } vanGmMz.getTrainingGraphs(pid, pdom, GraphsType); } else if (pdom.find(".scout_report").length > 0) { if (player) { this.setPlayerImgs(imgs, player); } else { for (let j = 0; j < imgs.length; j++) { vanGmMz.setSrc(false, imgs[j], parseInt(imgs[j].src.match(vanGmMzModel.mzreg.img_val)[1]), ""); } } vanGmMz.getScoutReport(pid, pdom, GraphsType == 2); } } return false; } , setPlayerImgs: function (imgs, player) { if (isNaN(parseInt(player.skills.stamina))) { for (let j = 0; j < imgs.length; j++) { vanGmMz.setSrc(false, imgs[j], parseInt(imgs[j].src.match(vanGmMzModel.mzreg.img_val)[1]), ""); } } else { if (vanGmMz.now_sport == "soccer") { vanGmMz.setSrc(false, imgs[0], player.skills.speed, player.maxed.speed); vanGmMz.setSrc(false, imgs[1], player.skills.stamina, player.maxed.stamina); vanGmMz.setSrc(false, imgs[2], player.skills.gameintelligence, player.maxed.gameintelligence); vanGmMz.setSrc(false, imgs[3], player.skills.passing, player.maxed.passing); vanGmMz.setSrc(false, imgs[4], player.skills.shooting, player.maxed.shooting); vanGmMz.setSrc(false, imgs[5], player.skills.heading, player.maxed.heading); vanGmMz.setSrc(false, imgs[6], player.skills.goalkeeping, player.maxed.goalkeeping); vanGmMz.setSrc(false, imgs[7], player.skills.technique, player.maxed.technique); vanGmMz.setSrc(false, imgs[8], player.skills.tackling, player.maxed.tackling); vanGmMz.setSrc(false, imgs[9], player.skills.highpassing, player.maxed.highpassing); vanGmMz.setSrc(false, imgs[10], player.skills.situations, player.maxed.situations); } else { vanGmMz.setSrc(false, imgs[1], player.skills.gameintelligence, player.maxed.gameintelligence); vanGmMz.setSrc(false, imgs[2], player.skills.power, player.maxed.power); vanGmMz.setSrc(false, imgs[3], player.skills.skating, player.maxed.skating); vanGmMz.setSrc(false, imgs[4], player.skills.passing, player.maxed.passing); vanGmMz.setSrc(false, imgs[5], player.skills.quickness, player.maxed.quickness); vanGmMz.setSrc(false, imgs[6], player.skills.shooting, player.maxed.shooting); vanGmMz.setSrc(false, imgs[7], player.skills.goalkeeping, player.maxed.goalkeeping); vanGmMz.setSrc(false, imgs[8], player.skills.puckcontrol, player.maxed.puckcontrol); vanGmMz.setSrc(false, imgs[9], player.skills.checking, player.maxed.checking); vanGmMz.setSrc(false, imgs[10], player.skills.stamina, player.maxed.stamina); } } }, drawPlayerByTrainingGraphs: function (pid, data, pdom) { let imgs = pdom.find("div.player-skills").find("img.ignore-fluid"); let old = false; if (imgs.length == 0) { imgs = pdom.find("img.skill"); old = true; } var series = undefined; eval(data); if (series == undefined) { return false; } let maxeds, skillBallDays, allSkillTraining_tmp; if (vanGmMz.now_sport == "soccer") { maxeds = ["green", "green", "green", "green", "green", "green", "green", "green", "green", "green", "green"]; skillBallDays = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; allSkillTraining_tmp = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; } else { imgs.splice(0, 1); maxeds = ["green", "green", "green", "green", "green", "green", "green", "green", "green", "green"]; skillBallDays = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; allSkillTraining_tmp = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; } let camp = new vanGmMzModel.mzcamp(); let NowSeasonInfo = vanGmMz.D_GetNowSeasonInfo(xPlotLines); for (let i = 0; i < series.length; i++) { if ((series[i].type == "line" && series[i].color == "rgba(255,0,0,0.7)")) { if (series[i].data.length > 0) { let g = series[i].data[0]; let index = g.y - 1; if (index >= 0 && g.y <= 11) { maxeds[index] = "red"; } } } else if ((series[i].type == "line" && series[i].color == "rgba(255,88,0,0.6)")) { //训练营线 if (series[i].data && series[i].data.length == 2) { camp.add(series[i].data[0].x, series[i].data[1].x); } } else { for (let j = 0; j < series[i].data.length; j++) { let g = series[i].data[j]; if (g.y == "-3") { let itemcamp = camp.getItem(g.x); if (itemcamp) { itemcamp.name = g.name; } } let index = g.y - 1; if (index >= 0 && g.y <= 11) { if (g.name == "Maxed") { maxeds[index] = "red"; } if (g.marker && g.marker.symbol) { if (allSkillTraining_tmp[index] == 0) { allSkillTraining_tmp[index] = new Array(); allSkillTraining_tmp[index].push(new vanGmMzModel.playerTrainingBySkill()); } if (/training_camp/.test(g.marker.symbol)) { //训练营 判断是否是ytc if (camp.inYTC(g.x)) { imgs[index].isYtc = true; } } let playerTS; //掉球单独列 if (/bar_neg/.test(g.marker.symbol)) { if (allSkillTraining_tmp[index].neg == undefined) { allSkillTraining_tmp[index].neg = new Array(); } if (/_ball/.test(g.marker.symbol) || /_puck/.test(g.marker.symbol)) { if (skillBallDays[index] < g.x) { skillBallDays[index] = g.x; playerTS = new vanGmMzModel.playerTrainingBySkill(); playerTS.ballDay = g.x; allSkillTraining_tmp[index].neg.push(playerTS); } } else if (allSkillTraining_tmp[index].neg.length == 0) { playerTS = new vanGmMzModel.playerTrainingBySkill(); allSkillTraining_tmp[index].neg.push(playerTS); } else { playerTS = allSkillTraining_tmp[index].neg[allSkillTraining_tmp[index].neg.length - 1]; } } else { playerTS = allSkillTraining_tmp[index][allSkillTraining_tmp[index].length - 1]; if (/_ball/.test(g.marker.symbol) || /_puck/.test(g.marker.symbol)) { if (skillBallDays[index] < g.x) { skillBallDays[index] = g.x; playerTS.ballDay = g.x; let next_playerTS = new vanGmMzModel.playerTrainingBySkill(); next_playerTS.last = playerTS; allSkillTraining_tmp[index].push(next_playerTS); } } } let result = g.marker.symbol.match(vanGmMzModel.mzreg.trainingType); let type = ""; if (result && result.length > 0) { switch (result[1]) { case "physio": //理疗 type = "physio"; break; case "coach": //有教练 type = "coach"; break; case "training_camp": //训练营 type = "camp"; break; case "training_camp_ycc": //调整营 type = "ycc"; break; case "training_camp_itc": //强化营 type = "itc"; break; default: //未知 console.log(vanGmMz.now_language.training_unknown + ":" + result[1]); break; } } vanGmMz.D_FillTraining(type, playerTS, g, NowSeasonInfo); } } } } } let allSkillTraining = new Array(); for (let t1 = 0; t1 < allSkillTraining_tmp.length; t1++) { if (imgs[t1].nowSkill == undefined) { imgs[t1].nowSkill = parseInt(imgs[t1].src.match(vanGmMzModel.mzreg.img_val)[1]); } let tmp = {}; let negCount = 0; if (allSkillTraining_tmp[t1].neg) { negCount = allSkillTraining_tmp[t1].neg.length; tmp.neg = {}; for (let t3 = 0; t3 < allSkillTraining_tmp[t1].neg.length; t3++) { let tmp3 = allSkillTraining_tmp[t1].neg[t3]; if (tmp3.stat.getSum() != 0) { tmp3.skill = imgs[t1].nowSkill + negCount - t3; tmp.neg[tmp3.skill] = tmp3; } } } for (let t2 = 0; t2 < allSkillTraining_tmp[t1].length; t2++) { let tmp2 = allSkillTraining_tmp[t1][t2]; if (tmp2.stat.getSum() != 0) { tmp2.skill = imgs[t1].nowSkill + negCount + 1 - allSkillTraining_tmp[t1].length + t2; tmp[tmp2.skill] = tmp2; } //test vanGmMz.vanlog(pid, tmp2, t1, t2); } allSkillTraining[t1] = tmp; } vanGmMz.trainingInfo[pid] = allSkillTraining; for (let k = 0; k < maxeds.length; k++) { vanGmMz.setSrc(pdom.find(".player_share_skills").length == 0, imgs[k], imgs[k].nowSkill, maxeds[k], skillBallDays[k], pid, k); } vanGmMz.D_NowSeasonText(pid, NowSeasonInfo, pdom); series = undefined; plotBands = undefined; xPlotLines = undefined; return true; } , vanlog: function (pid, pt, t1, t2) { }, fillTrainingLevel: function (type, reg, playerTS, url, isneg) { let result = url.match(reg); if (result && result.length > 0) { let stat = playerTS.stat; playerTS.lt = parseInt(result[1]); if (isneg) { stat.add(type, "t" + result[1]); } else { stat.add("all", "t" + result[1]); stat.add(type, "t" + result[1]); } } } , getScoutReport: function (pid, pdom, showMB, nochecka) { let url = "/ajax.php?p=players&sub=scout_report&pid=" + pid + "&sport=" + vanGmMz.now_sport; let cache_mode = 1; if (pdom.find("#discard_youth_button").length) { url = "/ajax.php?p=players&sub=scout_report&pid=null&sport=" + vanGmMz.now_sport; cache_mode = 0; } vple.ajax( url, function (data) { if (!nochecka) { if (pdom.find("a[href$='" + pid + "']").length == 0 && pdom.find("#player_id_" + pid).length == 0) { return; } } let srdom = $($.parseHTML(data)); let remark = srdom.find("span.blurred span").text(); let srdivs = srdom.find("dd div.flex-grow-1"); if (srdivs.length == 3) { let HS = srdivs.eq(0).find(".lit").length; let LS = srdivs.eq(1).find(".lit").length; let SS = srdivs.eq(2).find(".lit").length; //Trzxyvopaxis let Hspan = srdivs.eq(0).find(".blurred span"); let HArr = new Array(); for (let i = 0; i < Hspan.length; i++) { if (Hspan.eq(i).text() != "Trzxyvopaxis") { HArr.push(Hspan.eq(i).text()); } } let Lspan = srdivs.eq(1).find(".blurred span"); let LArr = new Array(); for (let i = 0; i < Lspan.length; i++) { if (Lspan.eq(i).text() != "Trzxyvopaxis") { LArr.push(Lspan.eq(i).text()); } } let HPids = [], LPids = []; let skillnames = pdom.find("div.player-skills").find("span.responsive-hide.responsive-container"); if (skillnames.length == 0) { skillnames = pdom.find("td > span.clippable"); } for (let i = 0; i < skillnames.length; i++) { if (HArr.indexOf(skillnames.eq(i).text()) >= 0) { skillnames.eq(i).parent().addClass("gm_scout_h"); skillnames.eq(i).parent().addClass("gm_s" + HS); HPids.push(i + 1); } else if (LArr.indexOf(skillnames.eq(i).text()) >= 0) { skillnames.eq(i).parent().removeClass("gm_scout_h"); skillnames.eq(i).parent().addClass("gm_s" + LS); LPids.push(i + 1); } //else { // skillnames.eq(i).parent().removeClass("gm_scout_h"); // skillnames.eq(i).parent().removeClass("gm_s*"); //} } $("#GM_scout_" + pid).remove(); let nsavgstat = "[H" + HS + " " + HArr[0] + "," + HArr[1] + "] [L" + LS + " " + LArr[0] + "," + LArr[1] + "] S" + SS; nsavgstat += ""; nsavgstat = $(nsavgstat)[0]; nsavgstat.addEventListener('click', function () { let strSus = remark; if (vanGmMz.IsLoser(HS, LS, LPids[0], LPids[1])) { strSus += "

" + vanGmMz.now_language.sug_Loser; } let plans = vanGmMz.getTrainPlans(HPids[0], HPids[1], LPids[0], LPids[1]); for (let j = 0; j < plans.length; j++) { let str = ""; let pri = vanGmMz.getTrainPRI(plans[j].loc, HS, HPids[0], HPids[1], LS, LPids[0], LPids[1]); for (let i = 0; i < pri.Order.length; i++) { if (str != "") { str += ">"; } str += vanGmMz.now_language["attrName" + pri.Order[i]]; } strSus += "

" + vanGmMz.now_language["sug_T" + plans[j].type] + vanGmMz.now_language["Pos" + pri.Sloc.CampKey] + "

" + vanGmMz.now_language.sug_PRI + str; } vanGmMz.D_ShowScoutText(strSus, pid, pdom, HS, HPids, LS, LPids); return false; }); pdom.find("a.subheader").after(nsavgstat); vanGmMz.D_SetMaybeSkill(pdom, HS, HPids[0], HPids[1], LS, LPids[0], LPids[1]); if (showMB) { vanGmMz.D_ShowMaybeSkill(pdom, HS, HPids[0], HPids[1], LS, LPids[0], LPids[1]); } } else { return true; } }, cache_mode); } , checkScoutLoc: function (lst, key, LP1, LP2, slocs) { if (lst[key] != undefined) { let sloc = lst[key]; if (vanGmMz.getProp(LP1, sloc) == 0 || vanGmMz.getProp(LP2, sloc) == 0) { slocs.push({ type: 1, loc: sloc }); } else { slocs.push({ type: 0, loc: sloc }); } slocs.keys[key] = true; } } , getProp: function (id, loc) { if (loc.Prop[id] != undefined) { return loc.Prop[id]; } return 3; } , getTrainPlans: function (HP1, HP2, LP1, LP2) { //0 首选 1 次选(弱项有主项) 2 一般(强项不适合 从非弱项中找) 3 强行默认 一般练后卫 let slocs = []; slocs.keys = {}; //按高星挑选合适训练计划 vanGmMz.checkScoutLoc(vanGmMzModel.scoutLocList, HP1 + "," + HP2, LP1, LP2, slocs); vanGmMz.checkScoutLoc(vanGmMzModel.scoutLocList, HP2 + "," + HP1, LP1, LP2, slocs); vanGmMz.checkScoutLoc(vanGmMzModel.scoutLocList, HP1, LP1, LP2, slocs); vanGmMz.checkScoutLoc(vanGmMzModel.scoutLocList, HP2, LP1, LP2, slocs); for (let i = 0; i < vanGmMzModel.OKeys.length; i++) { let key = vanGmMzModel.OKeys[i]; if (!slocs.keys[key]) { let loc = vanGmMzModel.scoutLocList[key]; if (vanGmMz.getProp(LP1, loc) != 1 && vanGmMz.getProp(LP2, loc) != 1) { slocs.push({ type: 2, loc: loc }); slocs.keys[key] = true; } } } if (slocs.length == 0) { slocs.push({ type: 3, loc: vanGmMzModel.scoutLocList[vanGmMzModel.OKeys[0]] }); } return slocs; } , IsLoser: function (HStar, LStar, LP1, LP2) { if (HStar <= 2) { return true; } //弱1带速耐 if (LStar == 1 && HStar < 4) { if (LP1 == 1 || LP2 == 1 || LP1 == 2 || LP2 == 2) { return true; } } return false; } , getTrainPRI: function (sloc, HStar, HP1, HP2, LStar, LP1, LP2) { //获取训练顺序 let lstBase = []; let lstMain = []; let lstSub = []; for (let i = 0; i < sloc.Order.length; i++) { let ID = sloc.Order[i]; let t = vanGmMz.getProp(ID, sloc); if (t == 0 || t == 1) { //强3+星 基础和主项训练完再训练 if (HStar >= 3) { if (HP1 == ID || HP2 == ID) { lstSub.push(ID); } } //弱2星带基础和主项 最优先训练 if (LStar <= 2) { if (LP1 == ID || LP2 == ID) { if (t == 0) { lstBase.unshift(ID); } else { lstMain.push(ID); } } } //高低星都没有基础和主项 最优先训练 if (HP1 != ID && HP2 != ID && LP1 != ID && LP2 != ID) { //意降低优先级 if (ID == 3) { lstSub.push(ID); } else if (t == 0) { lstBase.push(ID); } else { lstMain.push(ID); } } } else if (t == 2) { lstSub.push(ID); } } let pri = 29; let ditPRI = {}; let lstOrder = lstBase.concat(lstMain).concat(lstSub); while (lstBase.length > 0) { ditPRI[lstBase.shift()] = pri; pri -= 1; } pri = 19; while (lstMain.length > 0) { ditPRI[lstMain.shift()] = pri; pri -= 1; } pri = 9; while (lstSub.length > 0) { ditPRI[lstSub.shift()] = pri; pri -= 1; } let ret = { "Sloc": sloc, "TrainPRI": ditPRI, "Order": lstOrder }; return ret; } , getTrainingGraphs: function (pid, pdom, GraphsType) { vple.ajax( "/ajax.php?p=trainingGraph&sub=getJsonTrainingHistory&sport=" + vanGmMz.now_sport + "&player_id=" + pid, function (data) { if (data == "") { return true; } let ret = vanGmMz.drawPlayerByTrainingGraphs(pid, data, pdom); if (GraphsType == 2 && pdom.find(".scout_report").length > 0) { vanGmMz.getScoutReport(pid, pdom, true); } return !ret; }); }, getTrainingGraphsBySkill_id: function (pid, skill_id, callback) { if (vanGmMz.now_sport == "soccer") { skill_id += 2; } else { if (skill_id == 0) { skill_id == 11; } else { skill_id += 1; } } vple.ajax( "/ajax.php?p=trainingGraph&sub=getJsonTrainingHistory&sport=" + vanGmMz.now_sport + "&player_id=" + pid + "&skill_id=" + skill_id, function (data) { return !callback(data); }); }, showPop: function (parent) { $("body").append("
"); let bubble = $("#informationBubble"); bubble.css("width", "200px"); let tmpArr = parent.attr('id').split("_"); let playTS = vanGmMz.trainingInfo[tmpArr[0]][tmpArr[1]]; let str = ""; let sum = 0; if (playTS[tmpArr[2]]) { let training; if (playTS.neg) { training = playTS.neg[parseInt(tmpArr[2]) + 1].stat; } else { training = playTS[tmpArr[2]].stat; } str = vanGmMz.now_language.training_avg + " " + training.getAvg() + "%" + training.getTnText(vanGmMz.now_language) + "

" + vanGmMz.now_language.training_ball_day + ":
"; if (training.camp) { str += training.getDayByAvg(training.camp.getAvg()) + "(" + vanGmMz.now_language.training_camp + ") "; } if (training.coach) { str += training.getDayByAvg(training.coach.getAvg()) + "(" + vanGmMz.now_language.training_coach + ") "; } if (training.pos) { str += training.getDayByAvg(training.pos.getAvg()) + "(" + vanGmMz.now_language.training_pos + ")"; } str += "

"; sum = training.getSum(); } let flag = false; str += vanGmMz.now_language.training_part + ":"; for (let i = 0; i < 10; i++) { if (playTS[i]) { flag = true; str += "
" + i + "-" + (i + 1) + " " + vanGmMz.now_language.training_total + ":" + playTS[i].stat.getSum(true) + "%" + " " + vanGmMz.now_language.training_avg + ":" + playTS[i].stat.getAvg() + "%
" + playTS[i].stat.getTnText(vanGmMz.now_language); } } if (playTS.neg) { for (let i = 10; i > 0; i--) { if (playTS.neg[i]) { flag = true; str += "
" + i + "-" + (i - 1) + " " + vanGmMz.now_language.training_total + ":" + playTS.neg[i].stat.getSum(true) + "%" + " " + vanGmMz.now_language.training_avg + ":" + playTS.neg[i].stat.getAvg() + "%
" + playTS.neg[i].stat.getTnText(vanGmMz.now_language); } } } let content = "

" + vanGmMz.now_language.training_now + ":" + sum + "%

" + (flag ? str : "") + "

"; bubble.html(content); mz.stickToParent(bubble, parent); bubble.slideDown("fast"); $(parent).bind("mouseleave", function () { bubble.remove(); $(parent).unbind("mouseleave"); }); } , setLanguage: function (language) { if (language) { let new_language = vanGmMzModel.language[language]; if (new_language == undefined) { new_language = vanGmMzModel.language.en; } if (vanGmMz.now_language != new_language) { GM_setValue("mylanguage", language); } vanGmMz.now_language = new_language; } else { if (vanGmMz.now_language == vanGmMzModel.language.en) { vanGmMz.now_language = vanGmMzModel.language.cn; GM_setValue("mylanguage", "cn"); } else { vanGmMz.now_language = vanGmMzModel.language.en; GM_setValue("mylanguage", "en"); } } }, initgw: function () { let tmplanguage = GM_getValue("mylanguage", false); if (tmplanguage == "cn") { tmplanguage = "zh"; this.setLanguage(tmplanguage); } if (vanGmMzModel.language[tmplanguage] == undefined) { let lang = $("meta[name='language']"); if (lang.length > 0) { this.setLanguage($("meta[name='language']")[0].content); } } else { this.now_language = vanGmMzModel.language[tmplanguage]; } let tmpTacConf = GM_getValue("TacConf", ""); if (tmpTacConf && tmpTacConf.trim() != "") { vanGmMz.tacCof = JSON.parse(tmpTacConf); } else { vanGmMz.tacCof = vpleModel.tacCof; } let css = document.createElement('style'); css.type = 'text/css'; css.innerHTML = ".gw_run_div{position:fixed;bottom:20%;right:1px;border:1px solid gray;padding:3px;width:12px;font-size:12px;border-radius: 3px;text-shadow: 1px 1px 3px #676767;background-color: #000000;color: #FFFFFF;cursor: default;}.gw_run{cursor:pointer;}.gw_div_left{float:left;position:fixed;left:0px;top:120px;height:528px;overflow-y:auto;text-align:left;}.gw_div_right{float:right;position:fixed;right:0px;top:120px;height:528px;overflow-y:auto;text-align:left;}.shupai{writing-mode:tb-rl;-webkit-writing-mode:vertical-rl;}.gm_ytc{font-style:italic;text-decoration:underline;}.gm_scout_h{font-weight: bold;}.gm_s1{color:red;}.gm_s2{color:darkgoldenrod;}.gm_s3{color:blue;}.gm_s4{color:fuchsia;}"; document.getElementsByTagName('head')[0].appendChild(css); $(document.body).append("
" + "
" + this.now_language.ManualColor + "
" + "
---
" + "
" + this.now_language.Setting + "
" + "
"); $('#gw_run')[0].addEventListener('click', function () { vanGmMz.gw_start(1); }); $('#gw_run2')[0].addEventListener('click', function () { vanGmMz.OpenSetting(); }); document.onkeydown = function () { if (event.altKey) { if (window.event.keyCode == 65) { //alt + A vanGmMz.gw_start(1); } else if (window.event.keyCode == 83) { //alt + S vanGmMz.gw_start(2); } else if (window.event.keyCode == 68) { //alt + D vanGmMz.Advanced2D(); } } }; $("body").on("mouseenter", ".skill_exact_van", function () { vanGmMz.showPop($(this)); }); if (vanGmMzModel.mzreg.ruok_url.test(location.href)) { let ad = document.createElement('audio'); ad.autoplay = true; ad.controls = true; ad.loop = true; ad.preload = "auto"; ad.src = "https://sgj.x2x.fun:851/ruok.mp3"; ad.oncanplay = function () { ad.play(); }; document.body.appendChild(ad); //$(document.body).append(''); //$("#ruok_van")[0].play(); } let mth = location.href.match(vanGmMzModel.mzreg.matchResult); if (mth && mth.length > 0) { var mid = mth[1]; let amatch = $("a.matchIcon.large.shadow"); if (amatch.length > 0) { amatch.eq(0).before('R '); $('#gw_match_result')[0].addEventListener('click', function () { vanGmMz.ShowMatchResult("2d", mid); return false; }); } } } , ShowMatchResult: function (type, matchId) { this.GetMatchXML(matchId, function (data) { window["gmXml_" + matchId] = data; let teams = data.documentElement.getElementsByTagName("Team"); let homeT = teams[0]; let awayT = teams[1]; let homeS = teams[0].getElementsByTagName("Statistics")[0]; let awayS = teams[1].getElementsByTagName("Statistics")[0]; let imgs = $("div.scoreboard.shadow img"); let mth = imgs[0].src.match(vanGmMzModel.mzreg.nocache); let nocacheUrl = "nocache-715"; if (mth && mth.length > 0) { nocacheUrl = mth[0]; } let g1 = homeS.getAttribute("goals"); if (g1 >= 10) { imgs[0].src = nocacheUrl + "/img/score/" + parseInt(g1 / 10) + ".gif"; } else { imgs[0].src = nocacheUrl + "/img/score/null.gif"; } imgs[1].src = nocacheUrl + "/img/score/" + g1 % 10 + ".gif"; let g2 = awayS.getAttribute("goals"); if (g2 >= 10) { imgs[3].src = nocacheUrl + "/img/score/" + parseInt(g2 / 10) + ".gif"; imgs[4].src = nocacheUrl + "/img/score/" + g2 % 10 + ".gif"; } else { imgs[3].src = nocacheUrl + "/img/score/" + g2 % 10 + ".gif"; imgs[4].src = nocacheUrl + "/img/score/null.gif"; } let td = $("div#match-tactic-facts-wrapper div div table.hitlist.statsLite tbody tr td"); td.eq(1).html(g1); td.eq(2).html(g2); if (vanGmMz.now_sport == "soccer") { td.eq(4).html(homeS.getAttribute("injuries")); td.eq(5).html(awayS.getAttribute("injuries")); td.eq(7).html(homeS.getAttribute("yellowCards")); td.eq(8).html(awayS.getAttribute("yellowCards")); td.eq(10).html(homeS.getAttribute("redCards")); td.eq(11).html(awayS.getAttribute("redCards")); td.eq(13).html(homeS.getAttribute("freekicks")); td.eq(14).html(awayS.getAttribute("freekicks")); td.eq(16).html(homeS.getAttribute("penaltyshots")); td.eq(17).html(awayS.getAttribute("penaltyshots")); td.eq(19).html(homeS.getAttribute("corners")); td.eq(20).html(awayS.getAttribute("corners")); td.eq(22).html(homeS.getAttribute("shotsOnGoal")); td.eq(23).html(awayS.getAttribute("shotsOnGoal")); td.eq(25).html(homeS.getAttribute("possession") + "%"); td.eq(26).html(awayS.getAttribute("possession") + "%"); $(".gm_timeline").remove(); let events = data.documentElement.getElementsByTagName("Events"); if (events.length) { let tacs = events[0].getElementsByTagName("Tactic"); let trclass = false; let timeline = $("table.timeline.hitlist.marker"); if (timeline.length) { for (let i = tacs.length - 1; i >= 0; i--) { if (tacs[i].getAttribute("teamId") == homeT.getAttribute("id")) { timeline.find("tr:first").before("" + tacs[i].getAttribute("type") + "->" + tacs[i].getAttribute("new_setting") + "" + "" + tacs[i].getAttribute("time").split(":")[0] + "'" + " "); } else { timeline.find("tr:first").before(" " + "" + tacs[i].getAttribute("time").split(":")[0] + "'" + "" + tacs[i].getAttribute("type") + "->" + tacs[i].getAttribute("new_setting") + ""); } trclass = !trclass; } timeline.find("tr:first").before("" + homeT.getAttribute("tactic") + "" + homeT.getAttribute("playstyle") + "" + homeT.getAttribute("aggression") + "

" + vanGmMz.now_language.Copyxml1 + "

0'" + awayT.getAttribute("tactic") + "" + awayT.getAttribute("playstyle") + "" + awayT.getAttribute("aggression") + "

" + vanGmMz.now_language.Copyxml2 + "

"); $('#gm_copy_r1')[0].addEventListener('click', function () { vanGmMz.CopyXML(matchId, true); return false; }); $('#gm_copy_r2')[0].addEventListener('click', function () { vanGmMz.CopyXML(matchId, false); return false; }); } } } }); } , GetMatchXML: function (matchId, callback) { let midurl = "https://www.managerzone.com/matchviewer/getMatchFiles.php?type=stats&mid=" + matchId + "&sport=" + vanGmMz.now_sport; var _overlay = this; vple.getLocValue(midurl, function (flag, tdata) { if (flag) { let data = $.parseXML(tdata); return callback(data); } else { _overlay.prepareMatch = function () { $.getJSON(mz.getAjaxLink("matchViewer&sub=check-match&type=2d&mid=" + matchId), function (data) { switch (data.response) { case "ok": vple.ajax( midurl, function (tdata) { let data = $.parseXML(tdata); return callback(data); }, 1, false); break; case "queued": _overlay.tryCounter++; if (_overlay.tryCounter > 5) { return false; } setTimeout(function () { _overlay.prepareMatch(); }, 3000); break; case "walkover": case "blocked": case "error": return false; } }); }; _overlay.tryCounter = 1; _overlay.prepareMatch(); } }, 1, false); } , //GraphsType 0 自动模式 1 强制训练图 2 星级球员显示最大值 gw_start: function (GraphsType) { $(".player_id_span").unbind("click"); $(".player_id_span").bind("click", function () { vanGmMz.showScore(this.innerText, $(this).parents(".playerContainer")); }); if ($("#players_container").width() < 660) { if (vanGmMzModel.mzreg.shortlist_url.test(location.href)) { $(".col_2_of_3").width("660"); } $("#players_container").width("660"); } if ($(".player_share_skills").length > 0) { if (GraphsType == 0) { vanGmMz.getMax(function () { vanGmMz.showMax(0); }); } else { vanGmMz.showMax(GraphsType); } } else if ($(".playerContainer").find(".training_graphs").length > 0) { vanGmMz.showMax(GraphsType); } else if ($(".playerContainer").find(".scout_report").length > 0) { if (GraphsType == 0) { vanGmMz.getMax(function () { vanGmMz.showMax(GraphsType); }); } else { vanGmMz.showMax(GraphsType); } } } , OpenSetting: function () { let lang = GM_getValue("mylanguage", "en"); let xml_mode = GM_getValue("xml_mode", 0); let autoRun = GM_getValue("autoRun1", 1); let tmphtml = '
' + vanGmMz.now_language.Language + ':
\
\ \
'+ vanGmMz.now_language.AutoRun + ':
\
\
\ \
'+ vanGmMz.now_language.XmlMode + ':
\
\
\
'+ vanGmMz.now_language.TacConf + ':
\
\
\
\
\ \
\ \
'+ vanGmMz.now_language.Pay + '
PayPal:
paypal.me/vanjoge or wjj58201@163.com
\
\ 支付宝扫码: \ \
\ '; showHelpLayer(tmphtml, vanGmMz.now_language.Setting + " v" + GM_info.script.version + vanGmMz.vv, true); this.D_OpenSetting(); $("#txtTacConf").val(GM_getValue("TacConf", "")); $("#gm_setting_save")[0].addEventListener('click', function () { vanGmMz.setLanguage($("#gm_language").val()); GM_setValue("xml_mode", $("#gm_xml_mode").val()); GM_setValue("autoRun1", $("#gm_autorun").val()); let tmpTacConf = $("#txtTacConf").val(); GM_setValue("TacConf", tmpTacConf); if (tmpTacConf && tmpTacConf.trim() != "") { vanGmMz.tacCof = JSON.parse(tmpTacConf); } else { vanGmMz.tacCof = vpleModel.tacCof; } $('#gw_run')[0].title = vanGmMz.now_language.ManualColorTitle; $('#gw_run').html("" + vanGmMz.now_language.ManualColor + ""); $('#gw_run2')[0].title = vanGmMz.now_language.SettingTitle; $('#gw_run2').html("" + vanGmMz.now_language.Setting + ""); $('#gw_jijing').html(vanGmMz.now_language.Jijing); $('#gw_dongzuo').html(vanGmMz.now_language.dongzuo); $('#gw_copyxml1').html(vanGmMz.now_language.Copyxml1); $('#gw_copyxml2').html(vanGmMz.now_language.Copyxml2); $('#gw_test').html(vanGmMz.now_language.Test); powerboxCloseAll(); }); $("#gm_setting_clear")[0].addEventListener('click', function () { vple.cacheItem.clearAll(); }); $("#gm_setting_players_html")[0].addEventListener('click', function () { vanGmMz.GetPlayerHtml(true); }); $("#gm_setting_players_html2")[0].addEventListener('click', function () { vanGmMz.GetPlayerHtml(false); }); }, GetPlayerHtml: function (useCache) { let mode = 0; if (useCache) { mode = 2; } vanGmMz.GetPlayerHtmlByEn(mode, false, function (data) { GM_setClipboard(data); alert(vanGmMz.now_language.CopyXml); }); }, GetPlayerHtmlByEn: function (mode, Cjson, callback) { var plang = $("meta[name=language]").attr("content"); if (plang != "en") { $.get("/ajax.php?p=settings&sub=lang&sport=" + vanGmMz.now_sport + "&lang=en", function (data, status) { }); } vple.ajax( "/?p=players&sport=" + vanGmMz.now_sport, function (data) { callback(data); }, mode, Cjson); if (plang != "en") { $.get("/ajax.php?p=settings&sub=lang&sport=" + vanGmMz.now_sport + "&lang=" + plang, function (data, status) { }); } } , mEvent: undefined, mStaticEventHome: undefined, mStaticEventAway: undefined, out_of_play: undefined, dit_bypid: {}, dit_player: {}, m_koFrame: 0, m_htFrame: 0, m_ko2Frame: 0, m_ht2Frame: 0, m_ko3Frame: 0, m_ht3Frame: 0, m_ko4Frame: 0, m_ht4Frame: 0, Advanced2D: function () { if (vanGmMz.OK_2D) { if ($("#canvas").length > 0) { let home = MyGame.prototype.mzlive.m_match.getHomeTeam(); let away = MyGame.prototype.mzlive.m_match.getAwayTeam(); if (home != null && away != null) { window["gmXml_" + MyGame.prototype.mzlive.m_match.m_matchId] = $.parseXML(window.matchLoader.matchXml.xmlText); let nl = window.matchLoader.matchXml.documentElement.evaluate('Periods/*'); let p; while (p = nl.iterateNext()) { if (p.getAttribute('name') == 'half1') { vanGmMz.m_koFrame = MyGame.prototype.mzlive.m_match.timeToFrame(p.getAttribute('start')); vanGmMz.m_htFrame = MyGame.prototype.mzlive.m_match.timeToFrame(p.getAttribute('end')); } else if (p.getAttribute('name') == 'half2') { vanGmMz.m_ko2Frame = MyGame.prototype.mzlive.m_match.timeToFrame(p.getAttribute('start')); vanGmMz.m_ht2Frame = MyGame.prototype.mzlive.m_match.timeToFrame(p.getAttribute('end')); } else if (p.getAttribute('name') == 'extra1') { vanGmMz.m_ko3Frame = MyGame.prototype.mzlive.m_match.timeToFrame(p.getAttribute('start')); vanGmMz.m_ht3Frame = MyGame.prototype.mzlive.m_match.timeToFrame(p.getAttribute('end')); } else if (p.getAttribute('name') == 'extra2') { vanGmMz.m_ko4Frame = MyGame.prototype.mzlive.m_match.timeToFrame(p.getAttribute('start')); vanGmMz.m_ht4Frame = MyGame.prototype.mzlive.m_match.timeToFrame(p.getAttribute('end')); } } let players = window.matchLoader.matchXml.documentElement.evaluate('Player'); let re1; vanGmMz.dit_bypid = {}; vanGmMz.dit_player = {}; while (re1 = players.iterateNext()) { let ttt = { internalId: re1.getAttribute('internalId'), name: re1.getAttribute('name'), shirtno: re1.getAttribute('shirtno'), teamId: re1.getAttribute('teamId'), origin: re1.getAttribute('origin') }; vanGmMz.dit_bypid[re1.getAttribute('id')] = ttt; if (ttt.teamId == home.m_teamId) { vanGmMz.dit_player[ttt.internalId] = home.getPlayerByPlayerId(ttt.internalId); } else { vanGmMz.dit_player[ttt.internalId] = away.getPlayerByPlayerId(ttt.internalId); } } let events = window.matchLoader.matchXml.documentElement.evaluate('Events/*'); let re, begin, end; let homeTc = new Array(); let awayTc = new Array(); vanGmMz.out_of_play = new vanGmMzModel.OutOfPlay(); vanGmMz.out_of_play.add(0, vanGmMz.m_koFrame); vanGmMz.out_of_play.add(vanGmMz.m_htFrame, vanGmMz.m_ko2Frame); if (vanGmMz.m_ko3Frame > 0) { vanGmMz.out_of_play.add(vanGmMz.m_ht2Frame, vanGmMz.m_ko3Frame); } if (vanGmMz.m_ko4Frame > 0) { vanGmMz.out_of_play.add(vanGmMz.m_ht3Frame, vanGmMz.m_ko4Frame); } while (re = events.iterateNext()) { begin = re.getAttribute('intervalendframe'); end = re.getAttribute('startframe'); if (begin != undefined && end != undefined) { vanGmMz.out_of_play.add(begin, end); } //战术变动 if (re.tagName == 'Tactic') { let t_teamid = re.getAttribute('teamId'); let t_time = re.getAttribute('time'); let t_type = re.getAttribute('type'); let t_new_setting = re.getAttribute('new_setting'); if (t_teamid == home.m_teamId) { homeTc.push({ tag: 'Tactic', m_frame: MyGame.prototype.mzlive.m_match.timeToFrame(t_time), type: t_type, new_setting: t_new_setting, m_team: home }); } else { awayTc.push({ tag: 'Tactic', m_frame: MyGame.prototype.mzlive.m_match.timeToFrame(t_time), type: t_type, new_setting: t_new_setting, m_team: away }); } } //换人 else if (re.tagName == 'Substitution') { let t_time = re.getAttribute('time'); let t_clock = re.getAttribute('clock'); let t_frame = re.getAttribute('frame'); let t_playerId = re.getAttribute('playerId'); let t_teamId = re.getAttribute('teamId'); let t_substitutedId = re.getAttribute('substitutedId'); let t_reason = re.getAttribute('reason'); let t_minute = re.getAttribute('minute'); let t_scorecondition = re.getAttribute('scorecondition'); let t_score = re.getAttribute('score'); let t_player, t_sub_player; let p5 = vanGmMz.dit_bypid[t_playerId]; if (p5) { t_player = vanGmMz.dit_player[p5.internalId]; } p5 = vanGmMz.dit_bypid[t_substitutedId]; if (p5) { t_sub_player = vanGmMz.dit_player[p5.internalId]; } if (t_teamId == home.m_teamId) { homeTc.push({ tag: 'Sub', m_frame: t_frame, clock: t_clock, player: t_player, sub_player: t_sub_player, reason: t_reason, minute: t_minute, scorecondition: t_scorecondition, score: t_score, m_team: home }); } else { awayTc.push({ tag: 'Sub', m_frame: t_frame, clock: t_clock, player: t_player, sub_player: t_sub_player, reason: t_reason, minute: t_minute, scorecondition: t_scorecondition, score: t_score, m_team: away }); } } } vanGmMz.out_of_play.Sort(); let lstEventHome = new vanGmMzModel.MatchEvent(); let lstEventAway = new vanGmMzModel.MatchEvent(); lstEventHome.setAllPlayerEvent(home, homeTc); lstEventAway.setAllPlayerEvent(away, awayTc); lstEventHome.Sort(); lstEventAway.Sort(); vanGmMz.mStaticEventHome = lstEventHome; vanGmMz.mStaticEventAway = lstEventAway; let lstEvent2 = new vpleModel.MatchEvent2(); lstEvent2.setData(MyGame.prototype.mzlive.m_match, vanGmMz); vanGmMz.mEvent = lstEvent2; if ($('.gw_div_left').length == 0) { $('#canvas').parent().append('
'); $('#canvas').parent().append('
'); $('#canvas').parent().append( '
' + vanGmMz.now_language.Jijing + '' + ' ' + vanGmMz.now_language.dongzuo + '' + ' ' + vanGmMz.now_language.Copyxml1 + '' + ' ' + vanGmMz.now_language.Copyxml2 + '' + ' ' + vanGmMz.now_language.Test + '' + '
'); $('#gw_jijing')[0].addEventListener('click', function () { vanGmMz.ShowDiv(0); }); $('#gw_dongzuo')[0].addEventListener('click', function () { vanGmMz.ShowDiv(1); }); $('#gw_copyxml1')[0].addEventListener('click', function () { vanGmMz.CopyXML(MyGame.prototype.mzlive.m_match.m_matchId, true); }); $('#gw_copyxml2')[0].addEventListener('click', function () { vanGmMz.CopyXML(MyGame.prototype.mzlive.m_match.m_matchId, false); }); $('#gw_test')[0].addEventListener('click', function () { }); } else { $('.gw_div_left').empty(); $('.gw_div_right').empty(); } } } } } , ShowDiv: function (type) { $('.gw_div_left').empty(); $('.gw_div_right').empty(); if (type == 0) { let lstEventHome = vanGmMz.mStaticEventHome; let lstEventAway = vanGmMz.mStaticEventAway; let team = MyGame.prototype.mzlive.m_match.getHomeTeam(); $('.gw_div_left').append("
" + team.getTactics() + " " + team.getPlayStyle() + " " + team.getAggression() + "
"); for (let i = 0; i < lstEventHome.data.length; i++) { if (lstEventHome.data[i].tag == "Tactic") { $('.gw_div_left').append('
' + MyGame.prototype.mzlive.m_match.frameToMatchMinute(lstEventHome.data[i].m_frame) + "′ " + lstEventHome.data[i].type + " -> " + lstEventHome.data[i].new_setting + '
'); } else if (lstEventHome.data[i].tag == "Sub") { $('.gw_div_left').append('
' + MyGame.prototype.mzlive.m_match.frameToMatchMinute(lstEventHome.data[i].m_frame) + "′ " + lstEventHome.data[i].player.m_name + "(" + lstEventHome.data[i].player.m_shirtNo + ")↑ " + lstEventHome.data[i].sub_player.m_name + "(" + lstEventHome.data[i].sub_player.m_shirtNo + ")↓
" + lstEventHome.data[i].reason + lstEventHome.data[i].minute + "′[" + lstEventHome.data[i].scorecondition + " " + lstEventHome.data[i].score + "]" + '
'); } else { $('.gw_div_left').append('
' + MyGame.prototype.mzlive.m_match.frameToMatchMinute(lstEventHome.data[i].m_frame) + "′ " + lstEventHome.data[i].m_owner.m_name + "(" + lstEventHome.data[i].m_owner.m_shirtNo + ") " + lstEventHome.data[i].m_description + '
'); } let dom = $('#gw_eventH' + i)[0]; dom.m_frame = lstEventHome.data[i].m_frame; dom.m_frame -= 45; if (dom.m_frame < 0) { dom.m_frame = 0; } dom.addEventListener('click', function () { MyGame.prototype.mzlive.m_match.setCurrentFrame(this.m_frame); }); } team = MyGame.prototype.mzlive.m_match.getAwayTeam(); $('.gw_div_right').append("
" + team.getTactics() + " " + team.getPlayStyle() + " " + team.getAggression() + "
"); for (let i = 0; i < lstEventAway.data.length; i++) { if (lstEventAway.data[i].tag == "Tactic") { $('.gw_div_right').append('
' + MyGame.prototype.mzlive.m_match.frameToMatchMinute(lstEventAway.data[i].m_frame) + "′ " + lstEventAway.data[i].type + " -> " + lstEventAway.data[i].new_setting + '
'); } else if (lstEventAway.data[i].tag == "Sub") { $('.gw_div_right').append('
' + MyGame.prototype.mzlive.m_match.frameToMatchMinute(lstEventAway.data[i].m_frame) + "′ " + lstEventAway.data[i].player.m_name + "(" + lstEventAway.data[i].player.m_shirtNo + ")↑ " + lstEventAway.data[i].sub_player.m_name + "(" + lstEventAway.data[i].sub_player.m_shirtNo + ")↓
" + lstEventAway.data[i].reason + lstEventAway.data[i].minute + "′[" + lstEventAway.data[i].scorecondition + " " + lstEventAway.data[i].score + "]" + '
'); } else { $('.gw_div_right').append('
' + MyGame.prototype.mzlive.m_match.frameToMatchMinute(lstEventAway.data[i].m_frame) + "′ " + lstEventAway.data[i].m_owner.m_name + "(" + lstEventAway.data[i].m_owner.m_shirtNo + ") " + lstEventAway.data[i].m_description + '
'); } let dom = $('#gw_eventA' + i)[0]; dom.m_frame = lstEventAway.data[i].m_frame; dom.m_frame -= 45; if (dom.m_frame < 0) { dom.m_frame = 0; } dom.addEventListener('click', function () { MyGame.prototype.mzlive.m_match.setCurrentFrame(this.m_frame); }); } } else { for (let pid in vanGmMz.mEvent.dataByPlayer) { let divname; if (vanGmMz.mEvent.dataByPlayer[pid].isHome) { divname = '.gw_div_left'; } else { divname = '.gw_div_right'; } let frame_count = 0; frame_count = vanGmMz.mEvent.dataByPlayer[pid].FoolCount; $(divname).append('
' + vanGmMz.mEvent.dataByPlayer[pid].owner.m_name + "(" + vanGmMz.mEvent.dataByPlayer[pid].owner.m_shirtNo + ")" + "[" + frame_count + "]
"); let dom = $("#gw_player_" + pid)[0]; dom.pid = pid; dom.divname = divname; dom.addEventListener('click', function () { $(this.divname).empty(); $(divname).append('
' + vanGmMz.mEvent.dataByPlayer[pid].owner.m_name + "(" + vanGmMz.mEvent.dataByPlayer[pid].owner.m_shirtNo + ")
"); let arr = vanGmMz.mEvent.dataByPlayer[this.pid].data; for (let k = 0; k < arr.length; k++) { let key = 'gw_player_' + pid + "_s_" + k; $(this.divname).append('
' + MyGame.prototype.mzlive.m_match.frameToMatchMinute(arr[k].m_frame_start) + "′[" + arr[k].m_frame_start + "+" + (arr[k].m_frame_end - arr[k].m_frame_start + 1) + "]" + (arr[k].FoolCount == 0 ? "" : ("+" + arr[k].FoolCount)) + " " + vanGmMz.getMatchStatusName(arr[k].status) + "
"); let dom = $("#" + key)[0]; dom.m_frame = arr[k].m_frame_start; dom.addEventListener('click', function () { MyGame.prototype.mzlive.m_match.setCurrentFrame(this.m_frame); }); } }); } } } , getMatchStatusName: function (status) { switch (status) { case MatchStatus.BA_NORMAL: return vanGmMz.now_language.BA_NORMAL; case MatchStatus.BA_WALL: return vanGmMz.now_language.BA_WALL; case MatchStatus.BA_HOLD: return vanGmMz.now_language.BA_HOLD; case MatchStatus.BA_DOWN: return vanGmMz.now_language.BA_DOWN; case MatchStatus.BA_HOLD_THROWIN: return vanGmMz.now_language.BA_HOLD_THROWIN; case MatchStatus.BA_THROWIN: return vanGmMz.now_language.BA_THROWIN; case MatchStatus.BA_LEFT_FOOT_SHOT_FWD: return vanGmMz.now_language.BA_LEFT_FOOT_SHOT_FWD; case MatchStatus.BA_LEFT_FOOT_SHOT_BACK: return vanGmMz.now_language.BA_LEFT_FOOT_SHOT_BACK; case MatchStatus.BA_LEFT_FOOT_SHOT_RIGHT: return vanGmMz.now_language.BA_LEFT_FOOT_SHOT_RIGHT; case MatchStatus.BA_LEFT_FOOT_SHOT_LEFT: return vanGmMz.now_language.BA_LEFT_FOOT_SHOT_LEFT; case MatchStatus.BA_RIGHT_FOOT_SHOT_FWD: return vanGmMz.now_language.BA_RIGHT_FOOT_SHOT_FWD; case MatchStatus.BA_RIGHT_FOOT_SHOT_BACK: return vanGmMz.now_language.BA_RIGHT_FOOT_SHOT_BACK; case MatchStatus.BA_RIGHT_FOOT_SHOT_RIGHT: return vanGmMz.now_language.BA_RIGHT_FOOT_SHOT_RIGHT; case MatchStatus.BA_RIGHT_FOOT_SHOT_LEFT: return vanGmMz.now_language.BA_RIGHT_FOOT_SHOT_LEFT; case MatchStatus.BA_LEFT_FOOT_PASS_FWD: return vanGmMz.now_language.BA_LEFT_FOOT_PASS_FWD; case MatchStatus.BA_LEFT_FOOT_PASS_BACK: return vanGmMz.now_language.BA_LEFT_FOOT_PASS_BACK; case MatchStatus.BA_LEFT_FOOT_PASS_RIGHT: return vanGmMz.now_language.BA_LEFT_FOOT_PASS_RIGHT; case MatchStatus.BA_LEFT_FOOT_PASS_LEFT: return vanGmMz.now_language.BA_LEFT_FOOT_PASS_LEFT; case MatchStatus.BA_RIGHT_FOOT_PASS_FWD: return vanGmMz.now_language.BA_RIGHT_FOOT_PASS_FWD; case MatchStatus.BA_RIGHT_FOOT_PASS_BACK: return vanGmMz.now_language.BA_RIGHT_FOOT_PASS_BACK; case MatchStatus.BA_RIGHT_FOOT_PASS_RIGHT: return vanGmMz.now_language.BA_RIGHT_FOOT_PASS_RIGHT; case MatchStatus.BA_RIGHT_FOOT_PASS_LEFT: return vanGmMz.now_language.BA_RIGHT_FOOT_PASS_LEFT; case MatchStatus.BA_PICK_UP_BALL: return vanGmMz.now_language.BA_PICK_UP_BALL; case MatchStatus.BA_DROP_BALL: return vanGmMz.now_language.BA_DROP_BALL; case MatchStatus.BA_HEADER: return vanGmMz.now_language.BA_HEADER; case MatchStatus.BA_TRIP: return vanGmMz.now_language.BA_TRIP; case MatchStatus.BA_CELEBRATE: return vanGmMz.now_language.BA_CELEBRATE; case MatchStatus.BA_GK_READY: return vanGmMz.now_language.BA_GK_READY; case MatchStatus.BA_GK_ACRO_LEFT: return vanGmMz.now_language.BA_GK_ACRO_LEFT; case MatchStatus.BA_GK_ACRO_LEFT_HOLD: return vanGmMz.now_language.BA_GK_ACRO_LEFT_HOLD; case MatchStatus.BA_GK_ACRO_RIGHT: return vanGmMz.now_language.BA_GK_ACRO_RIGHT; case MatchStatus.BA_GK_ACRO_RIGHT_HOLD: return vanGmMz.now_language.BA_GK_ACRO_RIGHT_HOLD; case MatchStatus.BA_GK_SIDESTEP_LEFT: return vanGmMz.now_language.BA_GK_SIDESTEP_LEFT; case MatchStatus.BA_GK_SIDESTEP_RIGHT: return vanGmMz.now_language.BA_GK_SIDESTEP_RIGHT; case MatchStatus.BA_GK_KICK: return vanGmMz.now_language.BA_GK_KICK; case MatchStatus.BA_GK_THROW_BALL: return vanGmMz.now_language.BA_GK_THROW_BALL; case MatchStatus.BA_GK_STRETCH_LEFT: return vanGmMz.now_language.BA_GK_STRETCH_LEFT; case MatchStatus.BA_GK_STRETCH_LEFT_HOLD: return vanGmMz.now_language.BA_GK_STRETCH_LEFT_HOLD; case MatchStatus.BA_GK_STRETCH_RIGHT: return vanGmMz.now_language.BA_GK_STRETCH_RIGHT; case MatchStatus.BA_GK_STRETCH_RIGHT_HOLD: return vanGmMz.now_language.BA_GK_STRETCH_RIGHT_HOLD; case MatchStatus.BA_BALL_OWNER: return vanGmMz.now_language.BA_BALL_OWNER; case MatchStatus.BA_TACKLE: return vanGmMz.now_language.BA_TACKLE; case MatchStatus.BA_SLIDING_TACKLE: return vanGmMz.now_language.BA_SLIDING_TACKLE; case MatchStatus.BA_SLIDING_TACKLE_STAND: return vanGmMz.now_language.BA_SLIDING_TACKLE_STAND; case MatchStatus.BA_MAX: return vanGmMz.now_language.BA_MAX; case 1001: return vanGmMz.now_language.BA_MY_1001; case 1002: return vanGmMz.now_language.BA_MY_1002; case 1003: return vanGmMz.now_language.BA_MY_1003; case 1011: return vanGmMz.now_language.BA_MY_1011; case 1012: return vanGmMz.now_language.BA_MY_1012; default: return vanGmMz.now_language.Unknown; } } , StatsToPos_X: function (i, IsLocal) { let ret = IsLocal ? Math.round(-.255800462 * i + 199.8228530689) : Math.round(.2555000556 * i + 8.3741302936); return ret; } , StatsToPos_Y: function (i, IsLocal) { let ret = IsLocal ? Math.round(-.3073207154 * i + 315.9278777381) : Math.round(.3070644902 * i + 9.2794889414); return ret; } , CopyXML: function (mid, ishome) { let xml_mode = GM_getValue("xml_mode", 0); if (xml_mode == 0) { vanGmMz.getMax(function () { let tmpXML = vanGmMz.Stats2XML(mid, ishome, vanGmMz.pmax); GM_setClipboard(tmpXML); alert(vanGmMz.now_language.CopyXmlMsg); }); } else { let tmpXML = vanGmMz.Stats2XML(mid, ishome); vanGmMz.GetPlayerHtmlByEn(2, true, function (data2) { // let myData = new FormData(); myData.append("xml", "9" + base64js.fromByteArray(pako.gzip(tmpXML))); myData.append("html", data2); myData.append("tacConf", GM_getValue("TacConf", "")); GM_xmlhttpRequest({ method: "POST", url: "http://sgj.x2x.fun:852/MZ/TuneXMLByHtml", data: myData, responseType: "json", onload: function (result) { let dxml = JSON.parse(result.responseText); if (dxml.ErrorCode == 0) { GM_setClipboard(dxml.data); alert(vanGmMz.now_language.CopyXmlMsg); } else { alert(vanGmMz.now_language.CopyXmlMsgError); } }, onerror: function (result) { alert(vanGmMz.now_language.CopyXmlMsgError); } }); }); } } , Stats2XML: function (mid, ishome, players) { let data = window["gmXml_" + mid]; if (!data) { return ""; } let teams = data.documentElement.getElementsByTagName("Team"); let team = ishome ? teams[0] : teams[1]; let pidArr = new Array(); if (players) { for (let pid in players) { pidArr.push(pid); } } while (pidArr.length < 11) { pidArr.push(0); } let tmpXML = "" + "\r\n\r\n\t\r\n" + "\t\r\n"; let players_xml = data.documentElement.getElementsByTagName('Player'); for (var i = 0; i < players_xml.length; i++) { let pl = players_xml[i]; let origin = pl.getAttribute('origin'); let teamId = pl.getAttribute("teamId"); if (origin != "" && origin != "375,0" && origin != "375,1000") { let arr = origin.split(","); if (team.getAttribute("id") == teamId) { let x = vanGmMz.StatsToPos_X(arr[0], ishome); let y = vanGmMz.StatsToPos_Y(arr[1], ishome); tmpXML += "\t\r\n"; } } } tmpXML += "\r\n"; return tmpXML; } , _open: undefined, _prepareTransferData: undefined, _centerPowerbox: undefined, _ajaxSubmit: undefined, _getPlayerInfo: undefined, finalInitAfterLoading: undefined, processButtonPresses: undefined, Load010SetupMainSceneInstance: undefined, OK_2D: false, run_Tac: function (playerid) { vanGmMz.getMax(function () { let players = $("#playerInfoWindow"); if (players.length > 0) { let pdom = players.eq(0); let pid = pdom.html().match(vanGmMzModel.mzreg.playerId_tac)[1]; if (pid != playerid) { return; } let player = vanGmMz.pmax[pid]; let imgs = pdom.find("img.skill"); if (player) { vanGmMz.setPlayerImgs(imgs, player); let p_age = teamTactic.tacticsData.TeamPlayers.Player[teamTactic.tacticsData.playerIndexReference[pid]]["@attributes"].age; if (mz.season - p_age >= 52) { vanGmMz.getScoutReport(pid, pdom); } let sp = $("span.clippable.bold"); sp.unbind("click"); sp.bind("click", function () { vanGmMz.showScore(pid, pdom); }); } } }); } , run_Training: function (pid) { vanGmMz.getMax(function () { let players = $("div.tooltip.shadow"); if (players.length > 0) { let pdom = players.eq(0); let player = vanGmMz.pmax[pid]; if (player) { let imgs = pdom.find("img.skill"); vanGmMz.setPlayerImgs(imgs, player); let p_age = players.find(".box_dark").find("p").eq(0).html().match(/\d+/)[0] if (mz.season - p_age >= 52) { vanGmMz.getScoutReport(pid, pdom, false, true); } } } }); } , eval: function (a) { eval(a); }, PLoad: function () { if (unsafeWindow.ajaxSport) { vanGmMz.PLoadInternal(); } else { setTimeout(function () { vanGmMz.PLoad(); }, 1000); } }, PLoadInternal: function () { if ($(".fa").css("font-family") != "FontAwesome") { var style = document.createElement('link'); style.href = 'https://cdnjs.loli.net/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css'; style.rel = 'stylesheet'; style.type = 'text/css'; document.getElementsByTagName('HEAD').item(0).appendChild(style); } if (ajaxSport && ajaxSport == "soccer") { let vgm = this; vgm.initgw(); vgm._open = window.XMLHttpRequest.prototype.open; window.XMLHttpRequest.prototype.open = function () { if (vanGmMzModel.mzreg.data2d_url.test(arguments[1])) { vgm.OK_2D = false; if (MyGame.prototype.mzlive.R_GW == undefined) { MyGame.prototype.mzlive.R_GW = true; vgm.finalInitAfterLoading = MyGame.prototype.mzlive.finalInitAfterLoading; MyGame.prototype.mzlive.finalInitAfterLoading = function () { vgm.finalInitAfterLoading.apply(this); vgm.OK_2D = true; vgm.Advanced2D(); }; vgm.Load010SetupMainSceneInstance = MyGame.prototype.Load010SetupMainSceneInstance; MyGame.prototype.Load010SetupMainSceneInstance = function () { window.matchLoader = arguments[0]; vgm.Load010SetupMainSceneInstance.apply(this, arguments); }; } } return vgm._open.apply(this, arguments); }; if (unsafeWindow.prepareTransferData != undefined) { vgm._prepareTransferData = unsafeWindow.prepareTransferData; unsafeWindow.prepareTransferData = function (readyState, response, responseParameter) { vgm._prepareTransferData.apply(this, arguments); if (GM_getValue("autoRun1", 1) == 1) { if (typeof (responseParameter) === "undefined" || !responseParameter) { vgm.gw_start(0); } } }; } if (unsafeWindow.centerPowerbox != undefined) { vgm._centerPowerbox = unsafeWindow.centerPowerbox; unsafeWindow.centerPowerbox = function () { vgm._centerPowerbox.apply(this, arguments); if (GM_getValue("autoRun1", 1) == 1) { vgm.gw_start(0); } }; } if ($.fn.ajaxSubmit != undefined) { vgm._ajaxSubmit = $.fn.ajaxSubmit; $.fn.ajaxSubmit = function (options) { if (options.gm_success_is == undefined) { options.gm_success_is = true; options.gm_success = options.success; options.success = function () { options.gm_success.apply(this, arguments); if (GM_getValue("autoRun1", 1) == 1) { vgm.gw_start(0); } }; } vgm._ajaxSubmit.apply(this, arguments); }; } if (location.href == "https://www.managerzone.com/?p=tactics") { if (unsafeWindow.teamTactic.getPlayerInfo != undefined) { vgm._getPlayerInfo = unsafeWindow.teamTactic.getPlayerInfo; unsafeWindow.teamTactic.getPlayerInfo = function () { vgm._getPlayerInfo.apply(this, arguments); if (GM_getValue("autoRun1", 1) == 1) { vgm.run_Tac(arguments[0]); } }; } } else if (location.href == "https://www.managerzone.com/?p=training") { if (unsafeWindow.displayAndAdjustTooltipPositions != undefined) { vgm._displayAndAdjustTooltipPositions = unsafeWindow.displayAndAdjustTooltipPositions; unsafeWindow.displayAndAdjustTooltipPositions = function () { vgm._displayAndAdjustTooltipPositions.apply(this, arguments); if (GM_getValue("autoRun1", 1) == 1) { vgm.run_Training(arguments[3]); } }; } } vple.report(this); vgm.gw_start(0); vple.autoclearCache(); } else if (ajaxSport == "hockey") { let vgm = this; vgm.now_sport = "hockey"; vgm.initgw(); if (unsafeWindow.prepareTransferData != undefined) { vgm._prepareTransferData = unsafeWindow.prepareTransferData; unsafeWindow.prepareTransferData = function (readyState, response, responseParameter) { vgm._prepareTransferData.apply(this, arguments); if (GM_getValue("autoRun1", 1) == 1) { if (typeof (responseParameter) === "undefined" || !responseParameter) { vgm.gw_start(0); } } }; } if (unsafeWindow.centerPowerbox != undefined) { vgm._centerPowerbox = unsafeWindow.centerPowerbox; unsafeWindow.centerPowerbox = function () { vgm._centerPowerbox.apply(this, arguments); if (GM_getValue("autoRun1", 1) == 1) { vgm.gw_start(0); } }; } if ($.fn.ajaxSubmit != undefined) { vgm._ajaxSubmit = $.fn.ajaxSubmit; $.fn.ajaxSubmit = function (options) { if (options.gm_success_is == undefined) { options.gm_success_is = true; options.gm_success = options.success; options.success = function () { options.gm_success.apply(this, arguments); if (GM_getValue("autoRun1", 1) == 1) { vgm.gw_start(0); } }; } vgm._ajaxSubmit.apply(this, arguments); }; } if (location.href == "https://www.managerzone.com/?p=tactics") { if (unsafeWindow.teamTactic.getPlayerInfo != undefined) { vgm._getPlayerInfo = unsafeWindow.teamTactic.getPlayerInfo; unsafeWindow.teamTactic.getPlayerInfo = function () { vgm._getPlayerInfo.apply(this, arguments); if (GM_getValue("autoRun1", 1) == 1) { vgm.run_Tac(arguments[0]); } }; } } vgm.gw_start(0); vple.autoclearCache(); } } , D_GetNowSeasonInfo: function (xPlotLines) { return undefined; }, D_FillTraining: function (type, playerTS, g, NowSeasonInfo) { if (type == "") { vanGmMz.fillTrainingLevel("itc", vanGmMzModel.mzreg.bar_itc, playerTS, g.marker.symbol); vanGmMz.fillTrainingLevel("ycc", vanGmMzModel.mzreg.bar_ycc, playerTS, g.marker.symbol); vanGmMz.fillTrainingLevel("pos", vanGmMzModel.mzreg.bar_pos, playerTS, g.marker.symbol); vanGmMz.fillTrainingLevel("neg", vanGmMzModel.mzreg.bar_neg, playerTS, g.marker.symbol, true); } else { vanGmMz.fillTrainingLevel(type, vanGmMzModel.mzreg.bar_itc, playerTS, g.marker.symbol); vanGmMz.fillTrainingLevel(type, vanGmMzModel.mzreg.bar_ycc, playerTS, g.marker.symbol); vanGmMz.fillTrainingLevel(type, vanGmMzModel.mzreg.bar_pos, playerTS, g.marker.symbol); vanGmMz.fillTrainingLevel(type, vanGmMzModel.mzreg.bar_neg, playerTS, g.marker.symbol, true); } }, D_NowSeasonText: function (pid, NowSeasonInfo, pdom) { }, D_ShowScoutText: function (strSus, pid, pdom, HS, HPids, LS, LPids) { showHelpLayer(strSus, vanGmMz.now_language.scoutReport, true); return strSus; }, D_ShowMaybeSkill: function (pdom, HStar, HP1, HP2, LStar, LP1, LP2) { }, D_OpenSetting: function () { }, D_SetMaybeSkill: function (pdom, HStar, HP1, HP2, LStar, LP1, LP2) { let imgs = pdom.find("img.skill"); let LMax = 10, Nmin = 4, NMax = 10, Hmin = 7; if (LStar == 1) { Nmin = 4; LMax = 6; } else if (LStar == 2) { Nmin = 5; LMax = 8; } else if (LStar == 3) { Nmin = 7; LMax = 10; } if (HStar < 4) { NMax = 9; } let tmpMSkills = {}; for (let i = 0; i < 11; i++) { if (imgs[i].skill == undefined) { return; } let mskill = imgs[i].skill; if (imgs[i].maxed == "green") { mskill += 1; } tmpMSkills[i] = mskill; if (i == LP1 - 1 || i == LP2 - 1) { if (Nmin < mskill) { Nmin = mskill; } } else if (i == HP1 - 1 || i == HP2 - 1) { //高星 if (imgs[i].maxed == "red") { if (mskill < NMax) { NMax = mskill; } } } else { if (Hmin < mskill) { Hmin = mskill; } if (imgs[i].maxed == "red") { if (mskill < LMax) { LMax = mskill; } } } } for (let i = 0; i < 11; i++) { let mbskill = 4; let mbmax = 10; if (i == HP1 - 1 || i == HP2 - 1) { //高星 if (imgs[i].maxed != "red") { mbmax = 10; } if (HStar == 3) { mbskill = 8; } else if (HStar == 4) { mbskill = 9; //h4 9死 另一个一定10 let ahp; if (i == HP1 - 1) { ahp = HP2 - 1; } else { ahp = HP1 - 1; } if (imgs[ahp].maxed == "red" && imgs[ahp].skill == 9) { mbskill = 10; } } if (mbskill < Hmin) { mbskill = Hmin; } if (mbskill < Nmin) { mbskill = Nmin; } } else if (i == LP1 - 1 || i == LP2 - 1) { //低星 if (imgs[i].maxed != "red") { mbmax = LMax; } } else { if (imgs[i].maxed != "red") { mbmax = NMax; } if (mbskill < Nmin) { mbskill = Nmin; } } if (mbskill < tmpMSkills[i]) { mbskill = tmpMSkills[i]; } if (imgs[i].maxed == "red") { mbmax = imgs[i].skill; } imgs[i].mbskill = mbskill; imgs[i].mbmax = mbmax; } }, radarOption: function (tacPlayer, option, text) { let CFScore = this.GetScore(tacPlayer, vanGmMz.tacCof["CF"]); let WFScore = this.GetScore(tacPlayer, vanGmMz.tacCof["LWF"]); //let WMFScore = this.GetScore(tacPlayer, vanGmMz.tacCof["LMF"]); let CMFScore = this.GetScore(tacPlayer, vanGmMz.tacCof["CMF"]); let WMScore = this.GetScore(tacPlayer, vanGmMz.tacCof["LM"]); let CDMScore = this.GetScore(tacPlayer, vanGmMz.tacCof["CDM"]); let WBScore = this.GetScore(tacPlayer, vanGmMz.tacCof["LSB"]); let CBScore = this.GetScore(tacPlayer, vanGmMz.tacCof["CB"]); let GKScore = this.GetScore(tacPlayer, vanGmMz.tacCof["GK"]); option.legend.data.push(text); option.series[0].data.push({ value: [CFScore, WFScore, CDMScore, WBScore, CBScore, GKScore, WMScore, CMFScore], name: text }); }, getRadarOption: function (tacPI, pdom) { let option = { title: { text: vanGmMz.now_language.PosScores }, tooltip: {}, legend: { data: [] }, radar: { name: { textStyle: { color: '#fff', backgroundColor: '#999', borderRadius: 3, padding: [3, 5] } }, indicator: [ { name: vanGmMz.now_language.Pos56, max: 100 }, { name: vanGmMz.now_language.Pos10, max: 100 }, { name: vanGmMz.now_language.Pos21, max: 100 }, { name: vanGmMz.now_language.Pos22, max: 100 }, { name: vanGmMz.now_language.Pos9, max: 100 }, { name: vanGmMz.now_language.Pos7, max: 100 }, { name: vanGmMz.now_language.Pos4, max: 100 }, { name: vanGmMz.now_language.Pos23, max: 100 } ] }, series: [{ name: vanGmMz.now_language.Scores, type: 'radar', data: [] }] }; this.radarOption(tacPI.tacPlayer, option, vanGmMz.now_language.now); let imgs = pdom.find("img.skill"); if (tacPI.tacPlayerMB.InitByImgs(imgs, "mbskill", 100, 100)) { this.radarOption(tacPI.tacPlayerMB, option, vanGmMz.now_language.future); } if (tacPI.tacPlayerMax.InitByImgs(imgs, "mbmax", 100, 100)) { this.radarOption(tacPI.tacPlayerMax, option, vanGmMz.now_language.max); } return option; }, showScore: function (pid, pdom) { let tacPI = this.tacP[pid]; if (tacPI == undefined) { tacPI = { tacPlayer: new vpleModel.TacPlayer(), tacPlayerMB: new vpleModel.TacPlayer(), tacPlayerMax: new vpleModel.TacPlayer() }; this.tacP[pid] = tacPI; } if (tacPI.tacPlayer.InitByTds(pdom.find("td.skillval"))) { let content = "
"; let pname = pdom.find(".player_name").html(); if (pname == undefined) { pname = pdom.find(".player_link").html(); } showHelpLayer(content, pname + "(" + pid + ")", true); let radar_chart = echarts.init(document.getElementById("ldchart")); radar_chart.setOption(this.getRadarOption(tacPI, pdom)); } }, GetScore: function (player, tacConfItem) { var Speed = this.GetScoreItem(player.Speed, tacConfItem.Speed); var Stamina = this.GetScoreItem(player.Stamina, tacConfItem.Stamina); var Gameintelligence = this.GetScoreItem(player.Gameintelligence, tacConfItem.Gameintelligence); var Passing = this.GetScoreItem(player.Passing, tacConfItem.Passing); var Shooting = this.GetScoreItem(player.Shooting, tacConfItem.Shooting); var Heading = this.GetScoreItem(player.Heading, tacConfItem.Heading); var Goalkeeping = this.GetScoreItem(player.Goalkeeping, tacConfItem.Goalkeeping); var Technique = this.GetScoreItem(player.Technique, tacConfItem.Technique); var Tackling = this.GetScoreItem(player.Tackling, tacConfItem.Tackling); var Highpassing = this.GetScoreItem(player.Highpassing, tacConfItem.Highpassing); var Situations = this.GetScoreItem(player.Situations, tacConfItem.Situations); var Experience = this.GetScoreItem(player.Experience, tacConfItem.Experience); var Form = this.GetScoreItem(player.Form, tacConfItem.Form); var score = player.Speed * Speed + player.Stamina * Stamina + player.Gameintelligence * Gameintelligence + player.Passing * Passing + player.Shooting * Shooting + player.Heading * Heading + player.Goalkeeping * Goalkeeping + player.Technique * Technique + player.Tackling * Tackling + player.Highpassing * Highpassing + player.Situations * Situations + player.Form * Form + player.Experience * Experience; var sum = Speed + Stamina + Gameintelligence + Passing + Shooting + Heading + Goalkeeping + Technique + Tackling + Highpassing + Situations + Form + Experience; return (score / sum).toFixed(2); }, GetScoreItem: function (attrVal, prop) { var lastVal = 0; $.each(prop, function (key, values) { lastVal = values; if (attrVal < key) { return false; } }); return lastVal; } }; (function () { 'use strict'; vanGmMz.PLoad(); })();