// ==UserScript==
// @name BuzzerBeater PBP Analyzer
// @namespace https://greasyfork.org/zh-CN/scripts/487785-buzzerbeater-pbp-analyzer
// @version 0.0.7
// @description Analyze Buzzerbeater play-by-play for more information.
// @author AtomicNucleus
// @match https://www.buzzerbeater.com/match/*/pbp.aspx
// @match https://www.buzzerbeater.org/match/*/pbp.aspx
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant GM_log
// @grant GM_addElement
// ==/UserScript==
(function() {
'use strict';
function addArrays(ar1, ar2) {
var ar3 = [];
for (let ar = 0; ar < ar1.length; ar++) {
ar3.push(ar1[ar] + ar2[ar]);
}
return ar3;
}
// Get Position by Time Dist
function getPosition(MINUTE, playerStat) {
let M = MINUTE.slice(1, );
let i = M.indexOf(Math.max(...M));
if (M[i] == 0 && MINUTE[0] == 0) {
let a = '<b>     </b>';
} else if (M[i] == 0 && MINUTE[0] > 0) { a = ''; } else {
switch (i) {
case 0:
a = '<b>PG </b>';
break;
case 1:
a = '<b>SG </b>';
break;
case 2:
a = '<b>SF </b>';
break;
case 3:
a = '<b>PF </b>';
break;
case 4:
a = '<b>C   </b>';
break;
}
}
if (playerStat.IsStarter == 1) {
return a + '<b>' + playerStat.name.split(' (')[0].link(playerStat.href) + '</b>';
} else if (M[i] == 0 && MINUTE[0] > 0) {
return a + playerStat.name.split(' (')[0];
} else {
return a + playerStat.name.split(' (')[0].link(playerStat.href);
}
}
// Get Names
const pbp = document.getElementById("cbPbp");
const names = pbp.querySelectorAll("div table tr td table tr td a");
var PlayersA = [];
var PlayersH = [];
for (let i = 0; i < 12; i++) {
if ((names[i].innerHTML.length > 0) || (i < 5)) {
PlayersA.push(names[i].innerHTML);
}
}
for (let i = 12; i < 24; i++) {
if ((names[i].innerHTML.length > 0) || (i < 17)) {
PlayersH.push(names[i].innerHTML);
}
}
// Get Teams
let titleline = document.title;
let titleSplit = titleline.split(/\| | @ | \|\ /g);
let teamnameA = titleSplit[1];
let teamnameH = titleSplit[2];
PlayersA.push(teamnameA);
PlayersH.push(teamnameH);
// Database for gameplay breakdown
var teamA = [];
for (let p = 0; p < PlayersA.length; p++) {
teamA.push({
name: PlayersA[p],
href: '',
OnCourt: 0,
IsStarter: 0,
MINUTE: Array(6).fill(0), // 0-total, 1-PG, 2-SG, 3-SF, 4-PF, 5-C
ISM: Array(3).fill(0), // [Total,Contested,Assisted]
ISA: Array(3).fill(0),
JSM: Array(3).fill(0),
JSA: Array(3).fill(0),
P3M: Array(3).fill(0),
P3A: Array(3).fill(0),
FTM: 0,
FTA: 0,
PlusMinus: 0,
OREB: 0,
DREB: 0,
ASTM: Array(3).fill(0), // [IS,JM,P3]
ASTA: Array(3).fill(0),
CONTESTM: Array(3).fill(0), // [IS,JM,P3]
CONTESTA: Array(3).fill(0),
TO: 0,
STL: 0,
BLK: 0,
FOUL: 0,
PTS: 0
})
}
var teamH = [];
for (let p = 0; p < PlayersH.length; p++) {
teamH.push({
name: PlayersH[p],
href: '',
OnCourt: 0,
IsStarter: 0,
MINUTE: Array(6).fill(0), // 0-total, 1-PG, 2-SG, 3-SF, 4-PF, 5-C
ISM: Array(3).fill(0), // [Total,Contested,Assisted]
ISA: Array(3).fill(0),
JSM: Array(3).fill(0),
JSA: Array(3).fill(0),
P3M: Array(3).fill(0),
P3A: Array(3).fill(0),
FTM: 0,
FTA: 0,
PlusMinus: 0,
OREB: 0,
DREB: 0,
ASTM: Array(3).fill(0), // [IS,JM,P3]
ASTA: Array(3).fill(0),
CONTESTM: Array(3).fill(0), // [IS,JM,P3]
CONTESTA: Array(3).fill(0),
TO: 0,
STL: 0,
BLK: 0,
FOUL: 0,
PTS: 0
})
}
// adding href
for (let i = 0; i < 12; i++) {
if ((names[i].innerHTML.length > 0) || (i < 5)) {
teamA[i].href = names[i].getAttribute('href');
}
}
for (let i = 12; i < 24; i++) {
if ((names[i].innerHTML.length > 0) || (i < 17)) {
teamH[i - 12].href = names[i].getAttribute('href');
}
}
for (var k = 0; k < 5; k++) {
teamA[k].OnCourt = k + 1;
teamA[k].IsStarter = 1;
}
for (var k = 0; k < 5; k++) {
teamH[k].OnCourt = k + 1;
teamH[k].IsStarter = 1;
}
// 去除空球员(上场球员不足的情况)
var teamA = teamA.filter(item => item.name.length > 0);
var teamH = teamH.filter(item => item.name.length > 0);
var PlayersA = PlayersA.filter(item => item.length > 0);
var PlayersH = PlayersH.filter(item => item.length > 0);
// 事件分类
// 1 投篮
// 1-A-B-C-D
// A: 1-内线投篮 2-中距离投篮 3-三分投篮
// B: 1-接传球 2-未接传球
// C: 1-被干扰 2-未被干扰
// D: 1-进球 2-没进 3-盖帽
// 2 补充助攻
// 3 篮板
// 3-A
// A: 1-前场板 2-后场板
// 4 犯规
// 5 罚球
// 6 失误与抢断
// 7 换人
// Get PBP Lines
var passerNamed = [];
var shooterPrev = [];
var timePast = 0;
const cph = pbp.getElementById("cphContent_text");
const lines = cph.querySelectorAll("span table tr td")
for (var logline = 0; logline < lines.length; logline++) {
switch (logline % 4) {
case 0:
break;
case 1: //time
var timeCurrent = lines[logline].firstChild.href.split('=')[1];
var updatetime = (timeCurrent - timePast) / 60;
timePast = timeCurrent;
break;
case 2:
break;
case 3: //line
const preDes = lines[logline];
var des = preDes.cloneNode(true); //H([^HS]{1,})S
// Extract players from <a> elements
var relatedPlayersNameList = des.getElementsByTagName('a');
var relatedPlayersSequence = [];
for (let k = 0; k < relatedPlayersNameList.length; k++) {
if (PlayersA.includes(relatedPlayersNameList[k].innerHTML)) {
relatedPlayersSequence.push({ team: 0, ind: PlayersA.indexOf(relatedPlayersNameList[k].innerHTML) });
} else if (PlayersH.includes(relatedPlayersNameList[k].innerHTML)) {
relatedPlayersSequence.push({ team: 1, ind: PlayersH.indexOf(relatedPlayersNameList[k].innerHTML) });
} else {
relatedPlayersSequence.push({ team: 2, ind: 0 });
}
}
for (var i = 0; i < teamA.length - 1; i++) {
if (teamA[i].OnCourt >= 1) {
teamA[i].MINUTE[0] += updatetime;
teamA[i].MINUTE[teamA[i].OnCourt] += updatetime;
}
}
for (var i = 0; i < teamH.length - 1; i++) {
if (teamH[i].OnCourt >= 1) {
teamH[i].MINUTE[0] += updatetime;
teamH[i].MINUTE[teamH[i].OnCourt] += updatetime;
}
}
Array.prototype.slice.call(des.getElementsByTagName('a')).forEach(
function(item) {
item.outerHTML = '%';
// or item.parentNode.removeChild(item); for older browsers (Edge-)
});
var cleanDes = des.innerHTML;
// var indexA = Array(PlayersA.length).fill(0)
// var indexA_back = Array(PlayersA.length).fill(0)
// for (var l = 0; l < PlayersA.length; l++) {
// indexA[l] = des.indexOf(PlayersA[l]);
// indexA_back[l] = des.lastIndexOf(PlayersA[l]);
// var cleanDes = cleanDes.replaceAll(PlayersA[l], "%");
// }
// var indexH = Array(PlayersH.length).fill(0)
// var indexH_back = Array(PlayersH.length).fill(0)
// for (var l = 0; l < PlayersH.length; l++) {
// indexH[l] = des.indexOf(PlayersH[l]);
// indexH_back[l] = des.lastIndexOf(PlayersH[l]);
// var cleanDes = cleanDes.replaceAll(PlayersH[l], "%");
var slice = cleanDes.replaceAll(/ /g, "");
var slice = slice.replaceAll(/,|。|!|”|“/g, " ");
var slice = slice.split(/ +/g);
var slice = slice.filter(function(e) { return e });
// // 提取球员序号
// var relatedPlayersSequence = []
// var relatedPlayersSequence = []
// for (var n = 0; n < teamA.length; n++) {
// if (indexA[n] >= 0) {
// relatedPlayersSequence.push({ team: 0, ind: n, occur: indexA[n] });
// relatedPlayersSequence.push({ team: 0, ind: n, occur: indexA_back[n] });
// }
// }
// for (var n = 0; n < teamH.length; n++) {
// if (indexH[n] >= 0) {
// relatedPlayersSequence.push({ team: 1, ind: n, occur: indexH[n] });
// relatedPlayersSequence.push({ team: 1, ind: n, occur: indexH_back[n] });
// }
// }
// relatedPlayersSequence.sort((a, b) => a.occur - b.occur);
// relatedPlayersSequence.sort((a, b) => a.occur - b.occur);
// //console.log(relatedPlayers);
var category = '';
// 判断投篮事件
if ((slice.includes("球进了") ||
slice.includes("没进") ||
slice.includes("好帽") ||
slice.includes("给了一个干扰球") ||
slice.includes("得分有效")) &&
!slice.includes("%罚球")) {
var category = '1';
// 投篮事件
// 判断投篮位置
if (slice.includes("%加速突破到篮下右手上篮") ||
slice.includes("%起跳补扣") ||
slice.includes("把球往篮框轻轻一点") ||
slice.includes("把球砸进篮框") ||
slice.includes("%转身低手挑篮") ||
slice.includes("暴扣") ||
slice.includes("擦板上篮") ||
slice.includes("从另一侧上反篮") ||
slice.includes("从中路上篮") ||
slice.includes("大风车扣篮") ||
slice.includes("单手扣篮") ||
slice.includes("单手劈扣") ||
slice.includes("顶住防守人直接放篮") ||
slice.includes("翻身勾手") ||
slice.includes("飞跃对面大个子起跳上篮") ||
slice.includes("高举高打") ||
slice.includes("换左手上篮") ||
slice.includes("近距离放篮") ||
slice.includes("接球起跳") ||
slice.includes("起跳反扣") ||
slice.includes("双手暴扣") ||
slice.includes("双手扣篮") ||
slice.includes("一个小抛投") ||
slice.includes("一记挑篮") ||
slice.includes("右手上篮") ||
slice.includes("在防守人的眼皮底下左手上篮") ||
slice.includes("在空中折叠扣篮") ||
slice.includes("直接骑扣") ||
slice.includes("滞空打板上篮") ||
slice.includes("滞空换手拉杆上篮") ||
slice.includes("滞空上反篮") ||
slice.includes("左手劈扣") ||
slice.includes("转身就是一记擦板投篮") ||
slice.includes("这球可以直接扣了")
) // 内线投篮
{
category = category + "1";
} else if (
slice.includes("%后仰跳投") ||
slice.includes("%在侧翼中距离打板投篮") ||
slice.includes("%在罚球线附近跳投") ||
slice.includes("干拔后仰跳投") ||
slice.includes("后仰跳投") ||
slice.includes("急停跳投") ||
slice.includes("跳投") ||
slice.includes("投中距离") ||
slice.includes("一记打板跳投") ||
slice.includes("一记冷静的中投") ||
slice.includes("一记长两分") ||
slice.includes("在侧翼急停跳投") ||
slice.includes("在牛角位置一记长两分") ||
slice.includes("在下落过程中把球投了出去") ||
slice.includes("只能后仰跳投") ||
slice.includes("中距离急停") ||
slice.includes("中距离跳投") ||
slice.includes("转身一记金鸡后仰投篮") ||
slice.includes("自己干拔后仰投篮")
) // 中距离投篮
{
category = category + "2";
} else if (
slice.includes("%离三分线还有一步") ||
slice.includes("%离三分线还有一米") ||
slice.includes("%一只脚还踩着logo上") ||
slice.includes("%在三分线外接球") ||
slice.includes("干拔三分") ||
slice.includes("后撤步三分") ||
slice.includes("三分试一下有没有") ||
slice.includes("三分投篮") ||
slice.includes("投三分") ||
slice.includes("投了") ||
slice.includes("一记底角三分球") ||
slice.includes("直接拔起投三分") ||
slice.includes("直接三分出手") ||
slice.includes("直接投了") ||
slice.includes("直接投三分") ||
slice.includes("%半场拿球") ||
slice.includes("%在中圈接球") ||
slice.includes("在logo位置投三分")
) // 三分投篮
{
category = category + "3";
}
// 判断传球事件
if (slice.includes("%击地传球给到%") ||
slice.includes("%一记炮弹式传球直塞%") ||
// slice.includes("%传给侧翼") ||
// slice.includes("%在弧顶手递手把球给队友") ||
// slice.includes("回传给%") ||
slice.includes("双手传球给到要位的%") ||
slice.includes("突破分球给%") ||
slice.includes("一记潇洒的nolookpass给到跟进的%") ||
// slice.includes("队友的传球飞跃篮框") ||
// slice.includes("接队友传球") ||
// slice.includes("传的好") ||
slice.includes("%这球传的不错") ||
slice.includes("%这球给的太漂亮了") ||
// slice.includes("队友回传") ||
// slice.includes("队友再回传") ||
slice.includes("%控球到前场")
// ||
// slice.includes("%在篮下接球") ||
// slice.includes("%在侧翼接球") ||
// slice.includes("%在底线接球") ||
// slice.includes("%在底角接球") ||
// slice.includes("%低位接球") ||
// slice.includes("接球起跳") ||
// slice.includes("%篮下接球") ||
// slice.includes("空中接球") ||
// slice.includes("%起跳接球") ||
// slice.includes("%在三分线外接球")
) // 本条为传球事件
{
category = category + "1";
} else {
category = category + "2"; // 本条无传球事件
}
// 判断干扰情况
if (
slice.includes("%防的不错") ||
slice.includes("%高举双手") ||
slice.includes("%急忙上前补防") ||
slice.includes("%完全没有失位啊") ||
slice.includes("被%紧紧贴防着") ||
slice.includes("%漏人了") ||
// slice.includes("几乎堵死了出手空间") ||
// slice.includes("无视防守人直接起跳") ||
// slice.includes("在空中躲开防守人") ||
// slice.includes("没有出手空间") ||
// slice.includes("双人包夹") ||
// slice.includes("双人包夹了") ||
// slice.includes("%从底线杀入倚住防守人") ||
// slice.includes("干拔后仰跳投") ||
// slice.includes("干拔三分") ||
// slice.includes("自己干拔后仰投篮") ||
slice.includes("好帽")
// slice.includes("上篮假动作避开两名大个子的防守")
) // 本条为干扰事件
{
category = category + "1"; // 本条为干扰事件
} else {
category = category + "2"; // 本条无干扰事件
}
// 判断进球与否
if (slice.includes("球进了") ||
slice.includes("给了一个干扰球") ||
slice.includes("得分有效")
) {
category = category + "1";
} else if (slice.includes("没进")) {
category = category + "2";
} else if (slice.includes("好帽")) {
category = category + "3";
}
// 记录数据 根据传球描述和防守描述决定球员所处位置
// 如显示干扰者名字(最后一位),投篮人为倒数第二位
// 唯一例外,漏人了 + 盖帽,会导致相反
if (
slice.includes("%防的不错") ||
slice.includes("%高举双手") ||
slice.includes("%急忙上前补防") ||
slice.includes("%完全没有失位啊") ||
slice.includes("被%紧紧贴防着")
) {
var contestor = [relatedPlayersSequence[relatedPlayersSequence.length - 1].team,
relatedPlayersSequence[relatedPlayersSequence.length - 1].ind
];
var shooter = [relatedPlayersSequence[relatedPlayersSequence.length - 2].team,
relatedPlayersSequence[relatedPlayersSequence.length - 2].ind
];
} else if (slice.includes("%漏人了")) {
var contestor = [relatedPlayersSequence[relatedPlayersSequence.length - 2].team,
relatedPlayersSequence[relatedPlayersSequence.length - 2].ind
];
var shooter = [relatedPlayersSequence[relatedPlayersSequence.length - 1].team,
relatedPlayersSequence[relatedPlayersSequence.length - 1].ind
];
} else {
var contestor = [];
var shooter = [relatedPlayersSequence[relatedPlayersSequence.length - 1].team,
relatedPlayersSequence[relatedPlayersSequence.length - 1].ind
];
}
// 传球者的位置需要根据具体描述判断
if (
slice.includes("%击地传球给到%") ||
(slice.includes("%控球到前场")) ||
slice.includes("突破分球给%") ||
slice.includes("一记潇洒的nolookpass给到跟进的%")
) // 传球者为首位
{
var passer = [relatedPlayersSequence[0].team,
relatedPlayersSequence[0].ind
];
passerNamed.push(0);
shooterPrev.push([]);
} else if (
slice.includes("%一记炮弹式传球直塞%")
) // 传球者为次位
{
var passer = [relatedPlayersSequence[1].team,
relatedPlayersSequence[1].ind
];
passerNamed.push(0);
shooterPrev.push([]);
} else {
passerNamed.push(parseInt(category[1]));
var passer = [];
shooterPrev.push(shooter);
}
// 数据更新
switch (category) {
case "11111":
if (shooter[0] == 0) {
teamA[shooter[1]].ISM[0] += 1;
teamA[shooter[1]].ISM[1] += 1;
teamA[shooter[1]].ISM[2] += 1;
teamA[shooter[1]].ISA[0] += 1;
teamA[shooter[1]].ISA[1] += 1;
teamA[shooter[1]].ISA[2] += 1;
if (passer.length > 0) {
teamA[passer[1]].ASTM[0] += 1;
teamA[passer[1]].ASTA[0] += 1;
}
if (contestor.length > 0) {
teamH[contestor[1]].CONTESTM[0] += 1;
teamH[contestor[1]].CONTESTA[0] += 1;
}
teamA[shooter[1]].PTS += 2;
} else if (shooter[0] == 1) {
teamH[shooter[1]].ISM[0] += 1;
teamH[shooter[1]].ISM[1] += 1;
teamH[shooter[1]].ISM[2] += 1;
teamH[shooter[1]].ISA[0] += 1;
teamH[shooter[1]].ISA[1] += 1;
teamH[shooter[1]].ISA[2] += 1;
if (passer.length > 0) {
teamH[passer[1]].ASTM[0] += 1;
teamH[passer[1]].ASTA[0] += 1;
}
if (contestor.length > 0) {
teamA[contestor[1]].CONTESTM[0] += 1;
teamA[contestor[1]].CONTESTA[0] += 1;
}
teamH[shooter[1]].PTS += 2;
}
break;
case "11112":
if (shooter[0] == 0) {
teamA[shooter[1]].ISA[0] += 1;
teamA[shooter[1]].ISA[1] += 1;
teamA[shooter[1]].ISA[2] += 1;
if (passer.length > 0) {
teamA[passer[1]].ASTA[0] += 1;
}
if (contestor.length > 0) {
teamH[contestor[1]].CONTESTA[0] += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].ISA[0] += 1;
teamH[shooter[1]].ISA[1] += 1;
teamH[shooter[1]].ISA[2] += 1;
if (passer.length > 0) {
teamH[passer[1]].ASTA[0] += 1;
}
if (contestor.length > 0) {
teamA[contestor[1]].CONTESTA[0] += 1;
}
}
break;
case "11113":
if (shooter[0] == 0) {
teamA[shooter[1]].ISA[0] += 1;
teamA[shooter[1]].ISA[1] += 1;
teamA[shooter[1]].ISA[2] += 1;
if (passer.length > 0) {
teamA[passer[1]].ASTA[0] += 1;
}
if (contestor.length > 0) {
teamH[contestor[1]].CONTESTA[0] += 1;
teamH[contestor[1]].BLK += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].ISA[0] += 1;
teamH[shooter[1]].ISA[1] += 1;
teamH[shooter[1]].ISA[2] += 1;
if (passer.length > 0) {
teamH[passer[1]].ASTA[0] += 1;
}
if (contestor.length > 0) {
teamA[contestor[1]].CONTESTA[0] += 1;
teamA[contestor[1]].BLK += 1;
}
}
break;
case "11121":
if (shooter[0] == 0) {
teamA[shooter[1]].ISM[0] += 1;
teamA[shooter[1]].ISM[2] += 1;
teamA[shooter[1]].ISA[0] += 1;
teamA[shooter[1]].ISA[2] += 1;
if (passer.length > 0) {
teamA[passer[1]].ASTM[0] += 1;
teamA[passer[1]].ASTA[0] += 1;
}
teamA[shooter[1]].PTS += 2;
} else if (shooter[0] == 1) {
teamH[shooter[1]].ISM[0] += 1;
teamH[shooter[1]].ISM[2] += 1;
teamH[shooter[1]].ISA[0] += 1;
teamH[shooter[1]].ISA[2] += 1;
if (passer.length > 0) {
teamH[passer[1]].ASTM[0] += 1;
teamH[passer[1]].ASTA[0] += 1;
}
teamH[shooter[1]].PTS += 2;
}
break;
case "11122":
if (shooter[0] == 0) {
teamA[shooter[1]].ISA[0] += 1;
teamA[shooter[1]].ISA[2] += 1;
if (passer.length > 0) {
teamA[passer[1]].ASTA[0] += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].ISA[0] += 1;
teamH[shooter[1]].ISA[2] += 1;
if (passer.length > 0) {
teamH[passer[1]].ASTA[0] += 1;
}
}
break;
case "11123":
if (shooter[0] == 0) {
teamA[shooter[1]].ISA[0] += 1;
teamA[shooter[1]].ISA[2] += 1;
if (passer.length > 0) {
teamA[passer[1]].ASTA[0] += 1;
}
if (contestor.length > 0) {
teamH[contestor[1]].BLK += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].ISA[0] += 1;
teamH[shooter[1]].ISA[2] += 1;
if (passer.length > 0) {
teamH[passer[1]].ASTA[0] += 1;
}
if (contestor.length > 0) {
teamA[contestor[1]].BLK += 1;
}
}
break;
case "11211":
if (shooter[0] == 0) {
teamA[shooter[1]].ISM[0] += 1;
teamA[shooter[1]].ISM[1] += 1;
teamA[shooter[1]].ISA[0] += 1;
teamA[shooter[1]].ISA[1] += 1;
if (contestor.length > 0) {
teamH[contestor[1]].CONTESTM[0] += 1;
teamH[contestor[1]].CONTESTA[0] += 1;
}
teamA[shooter[1]].PTS += 2;
} else if (shooter[0] == 1) {
teamH[shooter[1]].ISM[0] += 1;
teamH[shooter[1]].ISM[1] += 1;
teamH[shooter[1]].ISA[0] += 1;
teamH[shooter[1]].ISA[1] += 1;
if (contestor.length > 0) {
teamA[contestor[1]].CONTESTM[0] += 1;
teamA[contestor[1]].CONTESTA[0] += 1;
}
teamH[shooter[1]].PTS += 2;
}
break;
case "11212":
if (shooter[0] == 0) {
teamA[shooter[1]].ISA[0] += 1;
teamA[shooter[1]].ISA[1] += 1;
if (contestor.length > 0) {
teamH[contestor[1]].CONTESTA[0] += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].ISA[0] += 1;
teamH[shooter[1]].ISA[1] += 1;
if (contestor.length > 0) {
teamA[contestor[1]].CONTESTA[0] += 1;
}
}
break;
case "11213":
if (shooter[0] == 0) {
teamA[shooter[1]].ISA[0] += 1;
teamA[shooter[1]].ISA[1] += 1;
if (contestor.length > 0) {
teamH[contestor[1]].CONTESTA[0] += 1;
teamH[contestor[1]].BLK += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].ISA[0] += 1;
teamH[shooter[1]].ISA[1] += 1;
if (contestor.length > 0) {
teamA[contestor[1]].CONTESTA[0] += 1;
teamA[contestor[1]].BLK += 1;
}
}
break;
case "11221":
if (shooter[0] == 0) {
teamA[shooter[1]].ISM[0] += 1;
teamA[shooter[1]].ISA[0] += 1;
teamA[shooter[1]].PTS += 2;
} else if (shooter[0] == 1) {
teamH[shooter[1]].ISM[0] += 1;
teamH[shooter[1]].ISA[0] += 1;
teamH[shooter[1]].PTS += 2;
}
break;
case "11222":
if (shooter[0] == 0) {
teamA[shooter[1]].ISA[0] += 1;
} else if (shooter[0] == 1) {
teamH[shooter[1]].ISA[0] += 1;
}
break;
case "11223":
if (shooter[0] == 0) {
teamA[shooter[1]].ISA[0] += 1;
if (contestor.length > 0) {
teamH[contestor[1]].BLK += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].ISA[0] += 1;
if (contestor.length > 0) {
teamA[contestor[1]].BLK += 1;
}
}
break;
case "12111":
if (shooter[0] == 0) {
teamA[shooter[1]].JSM[0] += 1;
teamA[shooter[1]].JSM[1] += 1;
teamA[shooter[1]].JSM[2] += 1;
teamA[shooter[1]].JSA[0] += 1;
teamA[shooter[1]].JSA[1] += 1;
teamA[shooter[1]].JSA[2] += 1;
if (passer.length > 0) {
teamA[passer[1]].ASTM[1] += 1;
teamA[passer[1]].ASTA[1] += 1;
}
if (contestor.length > 0) {
teamH[contestor[1]].CONTESTM[1] += 1;
teamH[contestor[1]].CONTESTA[1] += 1;
}
teamA[shooter[1]].PTS += 2;
} else if (shooter[0] == 1) {
teamH[shooter[1]].JSM[0] += 1;
teamH[shooter[1]].JSM[1] += 1;
teamH[shooter[1]].JSM[2] += 1;
teamH[shooter[1]].JSA[0] += 1;
teamH[shooter[1]].JSA[1] += 1;
teamH[shooter[1]].JSA[2] += 1;
if (passer.length > 0) {
teamH[passer[1]].ASTM[1] += 1;
teamH[passer[1]].ASTA[1] += 1;
}
if (contestor.length > 0) {
teamA[contestor[1]].CONTESTM[1] += 1;
teamA[contestor[1]].CONTESTA[1] += 1;
}
teamH[shooter[1]].PTS += 2;
}
break;
case "12112":
if (shooter[0] == 0) {
teamA[shooter[1]].JSA[0] += 1;
teamA[shooter[1]].JSA[1] += 1;
teamA[shooter[1]].JSA[2] += 1;
if (passer.length > 0) {
teamA[passer[1]].ASTA[1] += 1;
}
if (contestor.length > 0) {
teamH[contestor[1]].CONTESTA[1] += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].JSA[0] += 1;
teamH[shooter[1]].JSA[1] += 1;
teamH[shooter[1]].JSA[2] += 1;
if (passer.length > 0) {
teamH[passer[1]].ASTA[1] += 1;
}
if (contestor.length > 0) {
teamA[contestor[1]].CONTESTA[1] += 1;
}
}
break;
case "12113":
if (shooter[0] == 0) {
teamA[shooter[1]].JSA[0] += 1;
teamA[shooter[1]].JSA[1] += 1;
teamA[shooter[1]].JSA[2] += 1;
if (passer.length > 0) {
teamA[passer[1]].ASTA[1] += 1;
}
if (contestor.length > 0) {
teamH[contestor[1]].CONTESTA[1] += 1;
teamH[contestor[1]].BLK += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].JSA[0] += 1;
teamH[shooter[1]].JSA[1] += 1;
teamH[shooter[1]].JSA[2] += 1;
if (passer.length > 0) {
teamH[passer[1]].ASTA[1] += 1;
}
if (contestor.length > 0) {
teamA[contestor[1]].CONTESTA[1] += 1;
teamA[contestor[1]].BLK += 1;
}
}
break;
case "12121":
if (shooter[0] == 0) {
teamA[shooter[1]].JSM[0] += 1;
teamA[shooter[1]].JSM[2] += 1;
teamA[shooter[1]].JSA[0] += 1;
teamA[shooter[1]].JSA[2] += 1;
if (passer.length > 0) {
teamA[passer[1]].ASTM[1] += 1;
teamA[passer[1]].ASTA[1] += 1;
}
teamA[shooter[1]].PTS += 2;
} else if (shooter[0] == 1) {
teamH[shooter[1]].JSM[0] += 1;
teamH[shooter[1]].JSM[2] += 1;
teamH[shooter[1]].JSA[0] += 1;
teamH[shooter[1]].JSA[2] += 1;
if (passer.length > 0) {
teamH[passer[1]].ASTM[1] += 1;
teamH[passer[1]].ASTA[1] += 1;
}
teamH[shooter[1]].PTS += 2;
}
break;
case "12122":
if (shooter[0] == 0) {
teamA[shooter[1]].JSA[0] += 1;
teamA[shooter[1]].JSA[2] += 1;
if (passer.length > 0) {
teamA[passer[1]].ASTA[1] += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].JSA[0] += 1;
teamH[shooter[1]].JSA[2] += 1;
if (passer.length > 0) {
teamH[passer[1]].ASTA[1] += 1;
}
}
break;
case "12123":
if (shooter[0] == 0) {
teamA[shooter[1]].JSA[0] += 1;
teamA[shooter[1]].JSA[2] += 1;
if (passer.length > 0) {
teamA[passer[1]].ASTA[1] += 1;
}
if (contestor.length > 0) {
teamH[contestor[1]].BLK += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].JSA[0] += 1;
teamH[shooter[1]].JSA[2] += 1;
if (passer.length > 0) {
teamH[passer[1]].ASTA[1] += 1;
}
if (contestor.length > 0) {
teamA[contestor[1]].BLK += 1;
}
}
break;
case "12211":
if (shooter[0] == 0) {
teamA[shooter[1]].JSM[0] += 1;
teamA[shooter[1]].JSM[1] += 1;
teamA[shooter[1]].JSA[0] += 1;
teamA[shooter[1]].JSA[1] += 1;
if (contestor.length > 0) {
teamH[contestor[1]].CONTESTM[1] += 1;
teamH[contestor[1]].CONTESTA[1] += 1;
}
teamA[shooter[1]].PTS += 2;
} else if (shooter[0] == 1) {
teamH[shooter[1]].JSM[0] += 1;
teamH[shooter[1]].JSM[1] += 1;
teamH[shooter[1]].JSA[0] += 1;
teamH[shooter[1]].JSA[1] += 1;
if (contestor.length > 0) {
teamA[contestor[1]].CONTESTM[1] += 1;
teamA[contestor[1]].CONTESTA[1] += 1;
}
teamH[shooter[1]].PTS += 2;
}
break;
case "12212":
if (shooter[0] == 0) {
teamA[shooter[1]].JSA[0] += 1;
teamA[shooter[1]].JSA[1] += 1;
if (contestor.length > 0) {
teamH[contestor[1]].CONTESTA[1] += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].JSA[0] += 1;
teamH[shooter[1]].JSA[1] += 1;
if (contestor.length > 0) {
teamA[contestor[1]].CONTESTA[1] += 1;
}
}
break;
case "12213":
if (shooter[0] == 0) {
teamA[shooter[1]].JSA[0] += 1;
teamA[shooter[1]].JSA[1] += 1;
if (contestor.length > 0) {
teamH[contestor[1]].CONTESTA[1] += 1;
teamH[contestor[1]].BLK += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].JSA[0] += 1;
teamH[shooter[1]].JSA[1] += 1;
if (contestor.length > 0) {
teamA[contestor[1]].CONTESTA[1] += 1;
teamA[contestor[1]].BLK += 1;
}
}
break;
case "12221":
if (shooter[0] == 0) {
teamA[shooter[1]].JSM[0] += 1;
teamA[shooter[1]].JSA[0] += 1;
teamA[shooter[1]].PTS += 2;
} else if (shooter[0] == 1) {
teamH[shooter[1]].JSM[0] += 1;
teamH[shooter[1]].JSA[0] += 1;
teamH[shooter[1]].PTS += 2;
}
break;
case "12222":
if (shooter[0] == 0) {
teamA[shooter[1]].JSA[0] += 1;
} else if (shooter[0] == 1) {
teamH[shooter[1]].JSA[0] += 1;
}
break;
case "12223":
if (shooter[0] == 0) {
teamA[shooter[1]].JSA[0] += 1;
if (contestor.length > 0) {
teamH[contestor[1]].BLK += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].JSA[0] += 1;
if (contestor.length > 0) {
teamA[contestor[1]].BLK += 1;
}
}
break;
case "13111":
if (shooter[0] == 0) {
teamA[shooter[1]].P3M[0] += 1;
teamA[shooter[1]].P3M[1] += 1;
teamA[shooter[1]].P3M[2] += 1;
teamA[shooter[1]].P3A[0] += 1;
teamA[shooter[1]].P3A[1] += 1;
teamA[shooter[1]].P3A[2] += 1;
if (passer.length > 0) {
teamA[passer[1]].ASTM[2] += 1;
teamA[passer[1]].ASTA[2] += 1;
}
if (contestor.length > 0) {
teamH[contestor[1]].CONTESTM[2] += 1;
teamH[contestor[1]].CONTESTA[2] += 1;
}
teamA[shooter[1]].PTS += 3;
} else if (shooter[0] == 1) {
teamH[shooter[1]].P3M[0] += 1;
teamH[shooter[1]].P3M[1] += 1;
teamH[shooter[1]].P3M[2] += 1;
teamH[shooter[1]].P3A[0] += 1;
teamH[shooter[1]].P3A[1] += 1;
teamH[shooter[1]].P3A[2] += 1;
if (passer.length > 0) {
teamH[passer[1]].ASTM[2] += 1;
teamH[passer[1]].ASTA[2] += 1;
}
if (contestor.length > 0) {
teamA[contestor[1]].CONTESTM[2] += 1;
teamA[contestor[1]].CONTESTA[2] += 1;
}
teamH[shooter[1]].PTS += 3;
}
break;
case "13112":
if (shooter[0] == 0) {
teamA[shooter[1]].P3A[0] += 1;
teamA[shooter[1]].P3A[1] += 1;
teamA[shooter[1]].P3A[2] += 1;
if (passer.length > 0) {
teamA[passer[1]].ASTA[2] += 1;
}
if (contestor.length > 0) {
teamH[contestor[1]].CONTESTA[2] += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].P3A[0] += 1;
teamH[shooter[1]].P3A[1] += 1;
teamH[shooter[1]].P3A[2] += 1;
if (passer.length > 0) {
teamH[passer[1]].ASTA[2] += 1;
}
if (contestor.length > 0) {
teamA[contestor[1]].CONTESTA[2] += 1;
}
}
break;
case "13113":
if (shooter[0] == 0) {
teamA[shooter[1]].P3A[0] += 1;
teamA[shooter[1]].P3A[1] += 1;
teamA[shooter[1]].P3A[2] += 1;
if (passer.length > 0) {
teamA[passer[1]].ASTA[2] += 1;
}
if (contestor.length > 0) {
teamH[contestor[1]].CONTESTA[2] += 1;
teamH[contestor[1]].BLK += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].P3A[0] += 1;
teamH[shooter[1]].P3A[1] += 1;
teamH[shooter[1]].P3A[2] += 1;
if (passer.length > 0) {
teamH[passer[1]].ASTA[2] += 1;
}
if (contestor.length > 0) {
teamA[contestor[1]].CONTESTA[2] += 1;
teamA[contestor[1]].BLK += 1;
}
}
break;
case "13121":
if (shooter[0] == 0) {
teamA[shooter[1]].P3M[0] += 1;
teamA[shooter[1]].P3M[2] += 1;
teamA[shooter[1]].P3A[0] += 1;
teamA[shooter[1]].P3A[2] += 1;
if (passer.length > 0) {
teamA[passer[1]].ASTM[2] += 1;
teamA[passer[1]].ASTA[2] += 1;
}
teamA[shooter[1]].PTS += 3;
} else if (shooter[0] == 1) {
teamH[shooter[1]].P3M[0] += 1;
teamH[shooter[1]].P3M[2] += 1;
teamH[shooter[1]].P3A[0] += 1;
teamH[shooter[1]].P3A[2] += 1;
if (passer.length > 0) {
teamH[passer[1]].ASTM[2] += 1;
teamH[passer[1]].ASTA[2] += 1;
}
teamH[shooter[1]].PTS += 3;
}
break;
case "13122":
if (shooter[0] == 0) {
teamA[shooter[1]].P3A[0] += 1;
teamA[shooter[1]].P3A[2] += 1;
if (passer.length > 0) {
teamA[passer[1]].ASTA[2] += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].P3A[0] += 1;
teamH[shooter[1]].P3A[2] += 1;
if (passer.length > 0) {
teamH[passer[1]].ASTA[2] += 1;
}
}
break;
case "13123":
if (shooter[0] == 0) {
teamA[shooter[1]].P3A[0] += 1;
teamA[shooter[1]].P3A[2] += 1;
if (passer.length > 0) {
teamA[passer[1]].ASTA[2] += 1;
}
if (contestor.length > 0) {
teamH[contestor[1]].BLK += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].P3A[0] += 1;
teamH[shooter[1]].P3A[2] += 1;
if (passer.length > 0) {
teamH[passer[1]].ASTA[2] += 1;
}
if (contestor.length > 0) {
teamA[contestor[1]].BLK += 1;
}
}
break;
case "13211":
if (shooter[0] == 0) {
teamA[shooter[1]].P3M[0] += 1;
teamA[shooter[1]].P3M[1] += 1;
teamA[shooter[1]].P3A[0] += 1;
teamA[shooter[1]].P3A[1] += 1;
if (contestor.length > 0) {
teamH[contestor[1]].CONTESTM[2] += 1;
teamH[contestor[1]].CONTESTA[2] += 1;
}
teamA[shooter[1]].PTS += 3;
} else if (shooter[0] == 1) {
teamH[shooter[1]].P3M[0] += 1;
teamH[shooter[1]].P3M[1] += 1;
teamH[shooter[1]].P3A[0] += 1;
teamH[shooter[1]].P3A[1] += 1;
if (contestor.length > 0) {
teamA[contestor[1]].CONTESTM[2] += 1;
teamA[contestor[1]].CONTESTA[2] += 1;
}
teamH[shooter[1]].PTS += 3;
}
break;
case "13212":
if (shooter[0] == 0) {
teamA[shooter[1]].P3A[0] += 1;
teamA[shooter[1]].P3A[1] += 1;
if (contestor.length > 0) {
teamH[contestor[1]].CONTESTA[2] += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].P3A[0] += 1;
teamH[shooter[1]].P3A[1] += 1;
if (contestor.length > 0) {
teamA[contestor[1]].CONTESTA[2] += 1;
}
}
break;
case "13213":
if (shooter[0] == 0) {
teamA[shooter[1]].P3A[0] += 1;
teamA[shooter[1]].P3A[1] += 1;
if (contestor.length > 0) {
teamH[contestor[1]].CONTESTA[2] += 1;
teamH[contestor[1]].BLK += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].P3A[0] += 1;
teamH[shooter[1]].P3A[1] += 1;
if (contestor.length > 0) {
teamA[contestor[1]].CONTESTA[2] += 1;
teamA[contestor[1]].BLK += 1;
}
}
break;
case "13221":
if (shooter[0] == 0) {
teamA[shooter[1]].P3M[0] += 1;
teamA[shooter[1]].P3A[0] += 1;
teamA[shooter[1]].PTS += 3;
} else if (shooter[0] == 1) {
teamH[shooter[1]].P3M[0] += 1;
teamH[shooter[1]].P3A[0] += 1;
teamH[shooter[1]].PTS += 3;
}
break;
case "13222":
if (shooter[0] == 0) {
teamA[shooter[1]].P3A[0] += 1;
} else if (shooter[0] == 1) {
teamH[shooter[1]].P3A[0] += 1;
}
break;
case "13223":
if (shooter[0] == 0) {
teamA[shooter[1]].P3A[0] += 1;
if (contestor.length > 0) {
teamH[contestor[1]].BLK += 1;
}
} else if (shooter[0] == 1) {
teamH[shooter[1]].P3A[0] += 1;
if (contestor.length > 0) {
teamA[contestor[1]].BLK += 1;
}
}
break;
}
// 正负值
if (category[0] == "1" && category[4] == "1") {
if (category[1] == "1" || category[1] == "2") {
for (var i = 0; i < teamA.length - 1; i++) {
if (teamA[i].OnCourt >= 1) {
teamA[i].PlusMinus += 2 * ((-2) * shooter[0] + 1);
}
}
for (var i = 0; i < teamH.length - 1; i++) {
if (teamH[i].OnCourt >= 1) {
teamH[i].PlusMinus += 2 * (2 * shooter[0] - 1);
}
}
} else if (category[1] == "3") {
for (var i = 0; i < teamA.length - 1; i++) {
if (teamA[i].OnCourt >= 1) {
teamA[i].PlusMinus += 3 * ((-2) * shooter[0] + 1);
}
}
for (var i = 0; i < teamH.length - 1; i++) {
if (teamH[i].OnCourt >= 1) {
teamH[i].PlusMinus += 3 * (2 * shooter[0] - 1);
}
}
}
}
} // 2 补充助攻
//console.log(passerNamed)
if (slice.includes("%这球传的不错") ||
slice.includes("%这球给的太漂亮了") ||
passerNamed[length.passerNamed - 1] > 0) {
var passer = [relatedPlayersSequence[0].team,
relatedPlayersSequence[0].ind
];
let shootType = passerNamed[passerNamed.length - 1];
if (passer[0] == 0) {
teamA[passer[1]].ASTM[shootType - 1] += 1;
teamA[passer[1]].ASTA[shootType - 1] += 1;
if (shootType == 1) {
teamA[shooterPrev[shooterPrev.length - 1][1]].ISM[2] += 1;
teamA[shooterPrev[shooterPrev.length - 1][1]].ISA[2] += 1;
} else if (shootType == 2) {
teamA[shooterPrev[shooterPrev.length - 1][1]].JSM[2] += 1;
teamA[shooterPrev[shooterPrev.length - 1][1]].JSA[2] += 1;
} else if (shootType == 3) {
teamA[shooterPrev[shooterPrev.length - 1][1]].P3M[2] += 1;
teamA[shooterPrev[shooterPrev.length - 1][1]].P3A[2] += 1;
}
} else if (passer[0] == 1) {
teamH[passer[1]].ASTM[shootType - 1] += 1;
teamH[passer[1]].ASTA[shootType - 1] += 1;
if (shootType == 1) {
teamH[shooterPrev[shooterPrev.length - 1][1]].ISM[2] += 1;
teamH[shooterPrev[shooterPrev.length - 1][1]].ISA[2] += 1;
} else if (shootType == 2) {
teamH[shooterPrev[shooterPrev.length - 1][1]].JSM[2] += 1;
teamH[shooterPrev[shooterPrev.length - 1][1]].JSA[2] += 1;
} else if (shootType == 3) {
teamH[shooterPrev[shooterPrev.length - 1][1]].P3M[2] += 1;
teamH[shooterPrev[shooterPrev.length - 1][1]].P3A[2] += 1;
}
}
}
// 3-1 前场板
if (
slice.includes("%把位置卡死了") ||
slice.includes("%从侧翼起跳") ||
slice.includes("%捡到了进攻篮板") ||
slice.includes("%拿到进攻篮板") ||
slice.includes("拿到进攻篮板") ||
slice.includes("拼抢下进攻篮板") ||
slice.includes("抢到进攻篮板!")
) {
var rebounder = [relatedPlayersSequence[0].team,
relatedPlayersSequence[0].ind
];
if (rebounder[0] == 0) {
teamA[rebounder[1]].OREB += 1;
} else if (rebounder[0] == 1) {
teamH[rebounder[1]].OREB += 1;
}
}
// 3-2 后场板
if (
slice.includes("%控制住防守篮板") ||
slice.includes("%拿下防守篮板") ||
slice.includes("%抢到篮板") ||
slice.includes("%轻松拿到这个防守篮板") ||
slice.includes("%摘下防守篮板")
) {
var rebounder = [relatedPlayersSequence[0].team,
relatedPlayersSequence[0].ind
];
if (rebounder[0] == 0) {
teamA[rebounder[1]].DREB += 1;
} else if (rebounder[0] == 1) {
teamH[rebounder[1]].DREB += 1;
}
}
// 4-1 防守犯规
else if (
slice.includes("诶?什么情况?裁判吹了%一次犯规") ||
slice.includes("给的是%的投篮犯规")
) {
var fouler = [relatedPlayersSequence[0].team,
relatedPlayersSequence[0].ind
];
if (fouler[0] == 0) {
teamA[fouler[1]].FOUL += 1;
} else if (fouler[0] == 1) {
teamH[fouler[1]].FOUL += 1;
}
}
// 4-2 进攻犯规
else if (
slice.includes("裁判怎么说?进攻犯规")
) {
var fouler = [relatedPlayersSequence[0].team,
relatedPlayersSequence[0].ind
];
if (fouler[0] == 0) {
teamA[fouler[1]].FOUL += 1;
teamA[fouler[1]].TO += 1;
} else if (fouler[0] == 1) {
teamH[fouler[1]].FOUL += 1;
teamH[fouler[1]].TO += 1;
}
}
// 5-1 罚进
else if (
slice.includes("%罚球有了") ||
slice.includes("%罚中") ||
slice.includes("%罚进") ||
slice.includes("%稳稳罚进") ||
slice.includes("打在篮框前沿") ||
slice.includes("还是进了")
) {
//console.log(teamA[0].OnCourt)
var fter = [relatedPlayersSequence[0].team,
relatedPlayersSequence[0].ind
];
if (fter[0] == 0) {
teamA[fter[1]].FTM += 1;
teamA[fter[1]].FTA += 1;
teamA[fter[1]].PTS += 1;
for (var i = 0; i < teamA.length - 1; i++) {
if (teamA[i].OnCourt >= 1) {
teamA[i].PlusMinus += 1;
}
}
for (var i = 0; i < teamH.length - 1; i++) {
if (teamH[i].OnCourt >= 1) {
teamH[i].PlusMinus -= 1;
}
}
} else if (fter[0] == 1) {
teamH[fter[1]].FTM += 1;
teamH[fter[1]].FTA += 1;
teamH[fter[1]].PTS += 1;
for (var i = 0; i < teamA.length - 1; i++) {
if (teamA[i].OnCourt >= 1) {
teamA[i].PlusMinus -= 1;
}
}
for (var i = 0; i < teamH.length - 1; i++) {
if (teamH[i].OnCourt >= 1) {
teamH[i].PlusMinus += 1;
}
}
}
}
// 5-2 未罚进
else if (
slice.includes("弹框而出") || (slice.includes("%罚球") && slice.includes("没进"))
) {
var fter = [relatedPlayersSequence[0].team,
relatedPlayersSequence[0].ind
];
if (fter[0] == 0) {
teamA[fter[1]].FTA += 1;
} else if (fter[0] == 1) {
teamH[fter[1]].FTA += 1;
}
}
// 6-1 抢断 失误者前 抢断者后
else if (
slice.includes("%把传球断了") ||
slice.includes("%把球断了") ||
slice.includes("%长传,被%断到传球") ||
slice.includes("%直接把球给断了") ||
slice.includes("被%断了") ||
slice.includes("%把球断了")
) {
var toer = [relatedPlayersSequence[0].team,
relatedPlayersSequence[0].ind
];
var stealer = [relatedPlayersSequence[1].team,
relatedPlayersSequence[1].ind
];
if (toer[0] == 0) {
teamA[toer[1]].TO += 1;
teamH[stealer[1]].STL += 1;
} else if (toer[0] == 1) {
teamH[toer[1]].TO += 1;
teamA[stealer[1]].STL += 1;
}
}
// 6-2 个人失误
else if (
slice.includes("%把球运到了脚上") ||
slice.includes("%进攻三秒违例") ||
slice.includes("%直接把球传出了界外") ||
slice.includes("你早传啊") ||
slice.includes("三秒违例") ||
slice.includes("这球走步了啊") ||
slice.includes("%传给弧顶") ||
slice.includes("%传球给底线")
) {
var toer = [relatedPlayersSequence[0].team,
relatedPlayersSequence[0].ind
];
if (toer[0] == 0) {
teamA[toer[1]].TO += 1;
} else if (toer[0] == 1) {
teamH[toer[1]].TO += 1;
}
}
// 6-3 团队失误
else if (
slice.includes("%24秒进攻违例")
) {
var toer = [relatedPlayersSequence[0].team,
relatedPlayersSequence[0].ind
];
if (toer[0] == 0) {
teamA[toer[1]].TO += 1;
} else if (toer[0] == 1) {
teamH[toer[1]].TO += 1;
}
}
// 7-1 换人 前被后换下
else if (
slice.includes("%被%换下") ||
slice.includes("%被%换下场") ||
slice.includes("%你打的像坨屎") ||
slice.includes("和%耳语着什么")
) {
var subout = [relatedPlayersSequence[0].team,
relatedPlayersSequence[0].ind
];
var subin = [relatedPlayersSequence[1].team,
relatedPlayersSequence[1].ind
];
if (subout[0] == 0) {
teamA[subin[1]].OnCourt = teamA[subout[1]].OnCourt;
teamA[subout[1]].OnCourt = 0;
} else if (subout[0] == 1) {
teamH[subin[1]].OnCourt = teamH[subout[1]].OnCourt;
teamH[subout[1]].OnCourt = 0;
}
}
// 7-2 换人 前把后换下
else if (
slice.includes("和%击了个掌") ||
slice.includes("换下%") ||
slice.includes("换下了%") ||
slice.includes("换下了他") ||
slice.includes("他准备替换%上场了") ||
slice.includes("在技术台下等候多时的%站起来") ||
slice.includes("指了指%") ||
slice.includes("给%使了个眼色")
) {
var subout = [relatedPlayersSequence[1].team,
relatedPlayersSequence[1].ind
];
var subin = [relatedPlayersSequence[0].team,
relatedPlayersSequence[0].ind
];
if (subout[0] == 0) {
teamA[subin[1]].OnCourt = teamA[subout[1]].OnCourt;
teamA[subout[1]].OnCourt = 0;
} else if (subout[0] == 1) {
teamH[subin[1]].OnCourt = teamH[subout[1]].OnCourt;
teamH[subout[1]].OnCourt = 0;
}
}
// 7-3 互换位置
else if (
slice.includes("%与%拍手之后") ||
slice.includes("%给%递了个眼神")
) {
var subout = [relatedPlayersSequence[1].team,
relatedPlayersSequence[1].ind
];
var subin = [relatedPlayersSequence[0].team,
relatedPlayersSequence[0].ind
];
if (subout[0] == 0) {
let swap = teamA[subin[1]].OnCourt;
teamA[subin[1]].OnCourt = teamA[subout[1]].OnCourt;
teamA[subout[1]].OnCourt = swap;
} else if (subout[0] == 1) {
let swap = teamH[subin[1]].OnCourt;
teamH[subin[1]].OnCourt = teamH[subout[1]].OnCourt;
teamH[subout[1]].OnCourt = swap;
}
}
}
}
// rank by PTS and team stat
var teamAP = teamA.slice(0, teamA.length - 1).sort((a, b) => ((b.PTS - a.PTS) || (+(b.PTS == a.PTS) && (b.MINUTE[0] - a.MINUTE[0]))));
teamAP.push(teamA[teamA.length - 1]);
teamA = teamAP;
for (let i = 0; i < teamA.length - 1; i++) {
teamA[teamA.length - 1].ISM = addArrays(teamA[teamA.length - 1].ISM, teamA[i].ISM);
teamA[teamA.length - 1].JSM = addArrays(teamA[teamA.length - 1].JSM, teamA[i].JSM);
teamA[teamA.length - 1].P3M = addArrays(teamA[teamA.length - 1].P3M, teamA[i].P3M);
teamA[teamA.length - 1].ISA = addArrays(teamA[teamA.length - 1].ISA, teamA[i].ISA);
teamA[teamA.length - 1].JSA = addArrays(teamA[teamA.length - 1].JSA, teamA[i].JSA);
teamA[teamA.length - 1].P3A = addArrays(teamA[teamA.length - 1].P3A, teamA[i].P3A);
teamA[teamA.length - 1].CONTESTM = addArrays(teamA[teamA.length - 1].CONTESTM, teamA[i].CONTESTM);
teamA[teamA.length - 1].CONTESTA = addArrays(teamA[teamA.length - 1].CONTESTA, teamA[i].CONTESTA);
teamA[teamA.length - 1].ASTM = addArrays(teamA[teamA.length - 1].ASTM, teamA[i].ASTM);
teamA[teamA.length - 1].ASTA[0] = teamA[teamA.length-1].ISA[0] - teamA[teamA.length-1].ISA[1]
teamA[teamA.length - 1].ASTA[1] = teamA[teamA.length-1].JSA[0] - teamA[teamA.length-1].JSA[1]
teamA[teamA.length - 1].ASTA[2] = teamA[teamA.length-1].P3A[0] - teamA[teamA.length-1].P3A[1]
teamA[teamA.length - 1].FTM += teamA[i].FTM;
teamA[teamA.length - 1].FTA += teamA[i].FTA;
teamA[teamA.length - 1].OREB += teamA[i].OREB;
teamA[teamA.length - 1].DREB += teamA[i].DREB;
teamA[teamA.length - 1].TO += teamA[i].TO;
teamA[teamA.length - 1].STL += teamA[i].STL;
teamA[teamA.length - 1].BLK += teamA[i].BLK;
teamA[teamA.length - 1].FOUL += teamA[i].FOUL;
teamA[teamA.length - 1].PTS += teamA[i].PTS;
teamA[teamA.length - 1].MINUTE[0] += teamA[i].MINUTE[0];
}
teamA[teamA.length - 1].PlusMinus = '';
teamA[teamA.length - 1].MINUTE[0] /= 5;
GM_log(teamA)
GM_log(teamH)
// Team A - Basics
const boxToAdd = pbp.getElementsByClassName("boxcontent")[0];
const boxRef = pbp.getElementsByTagName("table")[0];
const tableA1 = document.createElement("p");
boxToAdd.insertBefore(tableA1, boxRef);
let table = document.createElement('table');
table.style = 'width: 99%'
let thead = document.createElement('thead');
thead.className = 'tableheader';
let tbody = document.createElement('tbody');
table.appendChild(thead);
table.appendChild(tbody);
tableA1.appendChild(table);
let headText = [teamA[teamA.length - 1].name,
'分钟',
'命中',
'内投',
'中距离',
'三分',
'罚球',
'+/-',
'攻板',
'篮板',
'助攻',
'失误',
'抢断',
'盖帽',
'犯规',
'得分'
];
let r1 = document.createElement('tr');
r1.className = 'tableHeader';
for (let i = 0; i < headText.length; i++) {
let heading_1 = document.createElement('th');
if (i == 0) {
heading_1.style = 'text-align:left';
}
heading_1.innerHTML = headText[i];
r1.appendChild(heading_1);
}
thead.appendChild(r1);
for (let i = 0; i < teamA.length; i++) {
let r2 = document.createElement('tr');
if (i == teamA.length - 1) {
r2.className = 'headline';
} else if (i % 2 == 1) {
r2.style = 'background:#EEEEEE';
} else {
r2.style = 'background:#FFFFFF';
}
var bodytext = [getPosition(teamA[i].MINUTE, teamA[i]),
teamA[i].MINUTE[0].toFixed(0),
`${teamA[i].ISM[0]+teamA[i].JSM[0]+teamA[i].P3M[0]} - ${teamA[i].ISA[0]+teamA[i].JSA[0]+teamA[i].P3A[0]}`,
`${teamA[i].ISM[0]} - ${teamA[i].ISA[0]}`,
`${teamA[i].JSM[0]} - ${teamA[i].JSA[0]}`,
`${teamA[i].P3M[0]} - ${teamA[i].P3A[0]}`,
`${teamA[i].FTM} - ${teamA[i].FTA}`,
(teamA[i].PlusMinus <= 0 ? "" : "+") + teamA[i].PlusMinus,
teamA[i].OREB,
teamA[i].OREB + teamA[i].DREB,
teamA[i].ASTM[0] + teamA[i].ASTM[1] + teamA[i].ASTM[2],
teamA[i].TO,
teamA[i].STL,
teamA[i].BLK,
teamA[i].FOUL,
teamA[i].PTS,
teamA[i].FTM
];
for (let j = 0; j < headText.length; j++) {
let dat = document.createElement('td');
if (j > 0) {
dat.style = 'text-align:center';
}
dat.innerHTML = bodytext[j];
r2.appendChild(dat);
}
tbody.appendChild(r2);
}
r2 = document.createElement('tr');
r2.className = 'headline';
var bodytext = ['',
'',
((teamA[teamA.length - 1].ISM[0] + teamA[teamA.length - 1].JSM[0] + teamA[teamA.length - 1].P3M[0]) / (teamA[teamA.length - 1].ISA[0] + teamA[teamA.length - 1].JSA[0] + teamA[teamA.length - 1].P3A[0])).toFixed(3),
((teamA[teamA.length - 1].ISM[0]) / (teamA[teamA.length - 1].ISA[0])).toFixed(3),
((teamA[teamA.length - 1].JSM[0]) / (teamA[teamA.length - 1].JSA[0])).toFixed(3),
((teamA[teamA.length - 1].P3M[0]) / (teamA[teamA.length - 1].P3A[0])).toFixed(3),
((teamA[teamA.length - 1].FTM) / (teamA[teamA.length - 1].FTA)).toFixed(3),
];
for (let j = 0; j < bodytext.length; j++) {
let dat = document.createElement('td');
dat.style = 'text-align:center'
dat.innerHTML = bodytext[j];
r2.appendChild(dat);
}
tbody.appendChild(r2);
// Team A - Offense
const tableA2 = document.createElement("p");
boxToAdd.insertBefore(tableA2, boxRef);
table = document.createElement('table');
table.style = 'width: 99%'
thead = document.createElement('thead');
tbody = document.createElement('tbody');
table.appendChild(thead);
table.appendChild(tbody);
tableA2.appendChild(table);
headText = [teamA[teamA.length - 1].name,
'真实<br>命中率',
'总命中率',
'干扰下<br>投篮',
'干扰下<br>命中',
'接球攻<br>投篮',
'接球攻<br>命中',
'传内线',
'传中距离',
'传三分',
'传球<br>转化率'
];
r1 = document.createElement('tr');
r1.className = 'tableHeader';
for (let i = 0; i < headText.length; i++) {
let heading_1 = document.createElement('th');
if (i == 0) {
heading_1.style = 'text-align:left';
}
heading_1.innerHTML = headText[i];
r1.appendChild(heading_1);
}
thead.appendChild(r1);
for (let i = 0; i < teamA.length; i++) {
let r2 = document.createElement('tr');
if (i == teamA.length - 1) {
r2.className = 'headline';
} else if (i % 2 == 1) {
r2.style = 'background:#EEEEEE';
} else {
r2.style = 'background:#FFFFFF';
}
bodytext = [
getPosition(teamA[i].MINUTE, teamA[i]),
(teamA[i].PTS / (teamA[i].ISA[0] + teamA[i].JSA[0] + teamA[i].P3A[0] + teamA[i].FTA * 0.44) / 2).toFixed(3),
((teamA[i].ISM[0] + teamA[i].JSM[0] + teamA[i].P3M[0]) / (teamA[i].ISA[0] + teamA[i].JSA[0] + teamA[i].P3A[0])).toFixed(3),
`${teamA[i].ISM[1]+teamA[i].JSM[1]+teamA[i].P3M[1]} - ${teamA[i].ISA[1]+teamA[i].JSA[1]+teamA[i].P3A[1]}`,
((teamA[i].ISM[1] + teamA[i].JSM[1] + teamA[i].P3M[1]) / (teamA[i].ISA[1] + teamA[i].JSA[1] + teamA[i].P3A[1])).toFixed(3),
`${teamA[i].ISM[0] - teamA[i].ISM[1] + teamA[i].JSM[0] - teamA[i].JSM[1] + teamA[i].P3M[0] - teamA[i].P3M[1]} - ${teamA[i].ISA[0] - teamA[i].ISA[1] + teamA[i].JSA[0] - teamA[i].JSA[1] + teamA[i].P3A[0] - teamA[i].P3A[1]}`,
((teamA[i].ISM[0] - teamA[i].ISM[1] + teamA[i].JSM[0] - teamA[i].JSM[1] + teamA[i].P3M[0] - teamA[i].P3M[1]) / (teamA[i].ISA[0] - teamA[i].ISA[1] + teamA[i].JSA[0] - teamA[i].JSA[1] + teamA[i].P3A[0] - teamA[i].P3A[1])).toFixed(3),
`${teamA[i].ASTM[0]} - ${teamA[i].ASTA[0]}`,
`${teamA[i].ASTM[1]} - ${teamA[i].ASTA[1]}`,
`${teamA[i].ASTM[2]} - ${teamA[i].ASTA[2]}`,
((teamA[i].ASTM[0] + teamA[i].ASTM[1] + teamA[i].ASTM[2]) / (teamA[i].ASTA[0] + teamA[i].ASTA[1] + teamA[i].ASTA[2])).toFixed(3)
];
//bodytext.replace('NaN','-');
for (let j = 0; j < headText.length; j++) {
let dat = document.createElement('td');
if (j > 0) {
dat.style = 'text-align:center';
}
if (bodytext[j] == 'NaN') {
bodytext[j] = '-';
}
dat.innerHTML = bodytext[j];
r2.appendChild(dat);
}
tbody.appendChild(r2);
}
// Team A - Advanced
const tableA3 = document.createElement("p");
boxToAdd.insertBefore(tableA3, boxRef);
table = document.createElement('table');
table.style = 'width: 99%'
thead = document.createElement('thead');
tbody = document.createElement('tbody');
table.appendChild(thead);
table.appendChild(tbody);
tableA3.appendChild(table);
headText = [teamA[teamA.length - 1].name,
'防内投',
'防中距离',
'防三分',
'防总计',
'防对手<br>命中率',
'球权<br>使用率',
'助攻率',
'篮板率',
'进攻<br>篮板率',
'防守<br>篮板率',
'失误率'
];
r1 = document.createElement('tr');
r1.className = 'tableHeader';
for (let i = 0; i < headText.length; i++) {
let heading_1 = document.createElement('th');
if (i == 0) {
heading_1.style = 'text-align:left';
}
heading_1.innerHTML = headText[i];
r1.appendChild(heading_1);
}
thead.appendChild(r1);
// 全队没有使用率、助攻率等数据
for (let i = 0; i < teamA.length - 1; i++) {
var r2 = document.createElement('tr');
if (i == teamA.length - 1) {
r2.className = 'headline';
} else if (i % 2 == 1) {
r2.style = 'background:#EEEEEE';
} else {
r2.style = 'background:#FFFFFF';
}
bodytext = [
getPosition(teamA[i].MINUTE, teamA[i]),
`${teamA[i].CONTESTM[0]} - ${teamA[i].CONTESTA[0]}`,
`${teamA[i].CONTESTM[1]} - ${teamA[i].CONTESTA[1]}`,
`${teamA[i].CONTESTM[2]} - ${teamA[i].CONTESTA[2]}`,
`${teamA[i].CONTESTM[0]+teamA[i].CONTESTM[1]+teamA[i].CONTESTM[2]} - ${teamA[i].CONTESTA[0]+teamA[i].CONTESTA[1]+teamA[i].CONTESTA[2]}`,
((teamA[i].CONTESTM[0] + teamA[i].CONTESTM[1] + teamA[i].CONTESTM[2]) / (teamA[i].CONTESTA[0] + teamA[i].CONTESTA[1] + teamA[i].CONTESTA[2])).toFixed(3),
((teamA[i].ISA[0] + teamA[i].JSA[0] + teamA[i].P3A[0] + 0.44 * teamA[i].FTA + teamA[i].TO) * teamA[teamA.length - 1].MINUTE[0] / (teamA[i].MINUTE[0] * (teamA[teamA.length - 1].ISA[0] + teamA[teamA.length - 1].JSA[0] + teamA[teamA.length - 1].P3A[0] + 0.44 * teamA[teamA.length - 1].FTA + teamA[teamA.length - 1].TO))).toFixed(3),
((teamA[i].ASTM[0] + teamA[i].ASTM[1] + teamA[i].ASTM[2]) / (teamA[i].MINUTE[0] / teamA[teamA.length - 1].MINUTE[0] * (teamA[teamA.length - 1].ISM[0] + teamA[teamA.length - 1].JSM[0] + teamA[teamA.length - 1].P3M[0]) - (teamA[i].ISM[0] + teamA[i].JSM[0] + teamA[i].P3M[0]))).toFixed(3),
((teamA[i].OREB + teamA[i].DREB) * teamA[teamA.length - 1].MINUTE[0] / (teamA[i].MINUTE[0] * (teamA[teamA.length - 1].OREB + teamA[teamA.length - 1].DREB + teamH[teamH.length - 1].OREB + teamH[teamH.length - 1].DREB))).toFixed(3),
((teamA[i].OREB) * teamA[teamA.length - 1].MINUTE[0] / (teamA[i].MINUTE[0] * (teamA[teamA.length - 1].OREB + teamH[teamH.length - 1].DREB))).toFixed(3),
((teamA[i].DREB) * teamA[teamA.length - 1].MINUTE[0] / (teamA[i].MINUTE[0] * (teamA[teamA.length - 1].DREB + teamH[teamH.length - 1].OREB))).toFixed(3),
(teamA[i].TO / (teamA[i].ISA[0] + teamA[i].JSA[0] + teamA[i].P3A[0] + 0.44 * teamA[i].FTA + teamA[i].TO)).toFixed(3)
];
//bodytext.replace('NaN','-');
for (let j = 0; j < headText.length; j++) {
let dat = document.createElement('td');
if (j > 0) {
dat.style = 'text-align:center';
}
if (bodytext[j] == 'NaN') {
bodytext[j] = '-';
}
dat.innerHTML = bodytext[j];
r2.appendChild(dat);
}
tbody.appendChild(r2);
}
//last line
r2 = document.createElement('tr');
r2.className = 'headline';
bodytext = [
teamA[teamA.length - 1].name,
`${teamA[teamA.length-1].CONTESTM[0]} - ${teamA[teamA.length-1].CONTESTA[0]}`,
`${teamA[teamA.length-1].CONTESTM[1]} - ${teamA[teamA.length-1].CONTESTA[1]}`,
`${teamA[teamA.length-1].CONTESTM[2]} - ${teamA[teamA.length-1].CONTESTA[2]}`,
`${teamA[teamA.length-1].CONTESTM[0] + teamA[teamA.length - 1].CONTESTM[1] + teamA[teamA.length - 1].CONTESTM[2]} - ${teamA[teamA.length - 1].CONTESTA[0] + teamA[teamA.length - 1].CONTESTA[1] + teamA[teamA.length - 1].CONTESTA[2]}`,
((teamA[teamA.length - 1].CONTESTM[0] + teamA[teamA.length - 1].CONTESTM[1] + teamA[teamA.length - 1].CONTESTM[2]) / (teamA[teamA.length - 1].CONTESTA[0] + teamA[teamA.length - 1].CONTESTA[1] + teamA[teamA.length - 1].CONTESTA[2])).toFixed(3),
'-', '-', '-', '-', '-', '-'
];
//bodytext.replace('NaN','-');
for (let j = 0; j < headText.length; j++) {
let dat = document.createElement('th');
if (j > 0) {
dat.style = 'text-align:center';
} else {
dat.style = 'text-align:left';
}
if (bodytext[j] == 'NaN') {
bodytext[j] = '-';
}
dat.innerHTML = bodytext[j];
r2.appendChild(dat);
tbody.appendChild(r2);
}
// rank by PTS and team stat
var teamHP = teamH.slice(0, teamH.length - 1).sort((a, b) => ((b.PTS - a.PTS) || (+(b.PTS == a.PTS) && (b.MINUTE[0] - a.MINUTE[0]))));
teamHP.push(teamH[teamH.length - 1]);
teamH = teamHP;
for (let i = 0; i < teamH.length - 1; i++) {
teamH[teamH.length - 1].ISM = addArrays(teamH[teamH.length - 1].ISM, teamH[i].ISM);
teamH[teamH.length - 1].JSM = addArrays(teamH[teamH.length - 1].JSM, teamH[i].JSM);
teamH[teamH.length - 1].P3M = addArrays(teamH[teamH.length - 1].P3M, teamH[i].P3M);
teamH[teamH.length - 1].ISA = addArrays(teamH[teamH.length - 1].ISA, teamH[i].ISA);
teamH[teamH.length - 1].JSA = addArrays(teamH[teamH.length - 1].JSA, teamH[i].JSA);
teamH[teamH.length - 1].P3A = addArrays(teamH[teamH.length - 1].P3A, teamH[i].P3A);
teamH[teamH.length - 1].CONTESTM = addArrays(teamH[teamH.length - 1].CONTESTM, teamH[i].CONTESTM);
teamH[teamH.length - 1].CONTESTA = addArrays(teamH[teamH.length - 1].CONTESTA, teamH[i].CONTESTA);
teamH[teamH.length - 1].ASTM = addArrays(teamH[teamH.length - 1].ASTM, teamH[i].ASTM);
teamH[teamH.length - 1].ASTA[0] = teamH[teamH.length-1].ISA[0] - teamH[teamH.length-1].ISA[1]
teamH[teamH.length - 1].ASTA[1] = teamH[teamH.length-1].JSA[0] - teamH[teamH.length-1].JSA[1]
teamH[teamH.length - 1].ASTA[2] = teamH[teamH.length-1].P3A[0] - teamH[teamH.length-1].P3A[1]
teamH[teamH.length - 1].FTM += teamH[i].FTM;
teamH[teamH.length - 1].FTA += teamH[i].FTA;
teamH[teamH.length - 1].OREB += teamH[i].OREB;
teamH[teamH.length - 1].DREB += teamH[i].DREB;
teamH[teamH.length - 1].TO += teamH[i].TO;
teamH[teamH.length - 1].STL += teamH[i].STL;
teamH[teamH.length - 1].BLK += teamH[i].BLK;
teamH[teamH.length - 1].FOUL += teamH[i].FOUL;
teamH[teamH.length - 1].PTS += teamH[i].PTS;
teamH[teamH.length - 1].MINUTE[0] += teamH[i].MINUTE[0];
}
teamH[teamH.length - 1].PlusMinus = '';
teamH[teamH.length - 1].MINUTE[0] /= 5;
// Team H - Basics
const tableH1 = document.createElement("p");
boxToAdd.insertBefore(tableH1, boxRef);
table = document.createElement('table');
table.style = 'width: 99%'
thead = document.createElement('thead');
thead.className = 'tableheader';
tbody = document.createElement('tbody');
table.appendChild(thead);
table.appendChild(tbody);
tableH1.appendChild(table);
headText = [teamH[teamH.length - 1].name,
'分钟',
'命中',
'内投',
'中距离',
'三分',
'罚球',
'+/-',
'攻板',
'篮板',
'助攻',
'失误',
'抢断',
'盖帽',
'犯规',
'得分'
];
r1 = document.createElement('tr');
r1.className = 'tableHeader';
for (let i = 0; i < headText.length; i++) {
let heading_1 = document.createElement('th');
if (i == 0) {
heading_1.style = 'text-align:left';
}
heading_1.innerHTML = headText[i];
r1.appendChild(heading_1);
}
thead.appendChild(r1);
for (let i = 0; i < teamH.length; i++) {
let r2 = document.createElement('tr');
if (i == teamH.length - 1) {
r2.className = 'headline';
} else if (i % 2 == 1) {
r2.style = 'background:#EEEEEE';
} else {
r2.style = 'background:#FFFFFF';
}
bodytext = [getPosition(teamH[i].MINUTE, teamH[i]),
teamH[i].MINUTE[0].toFixed(0),
`${teamH[i].ISM[0]+teamH[i].JSM[0]+teamH[i].P3M[0]} - ${teamH[i].ISA[0]+teamH[i].JSA[0]+teamH[i].P3A[0]}`,
`${teamH[i].ISM[0]} - ${teamH[i].ISA[0]}`,
`${teamH[i].JSM[0]} - ${teamH[i].JSA[0]}`,
`${teamH[i].P3M[0]} - ${teamH[i].P3A[0]}`,
`${teamH[i].FTM} - ${teamH[i].FTA}`,
(teamH[i].PlusMinus <= 0 ? "" : "+") + teamH[i].PlusMinus,
teamH[i].OREB,
teamH[i].OREB + teamH[i].DREB,
teamH[i].ASTM[0] + teamH[i].ASTM[1] + teamH[i].ASTM[2],
teamH[i].TO,
teamH[i].STL,
teamH[i].BLK,
teamH[i].FOUL,
teamH[i].PTS,
teamH[i].FTM
];
for (let j = 0; j < headText.length; j++) {
let dat = document.createElement('td');
if (j > 0) {
dat.style = 'text-align:center';
}
dat.innerHTML = bodytext[j];
r2.appendChild(dat);
}
tbody.appendChild(r2);
}
r2 = document.createElement('tr');
r2.className = 'headline';
var bodytext = ['',
'',
((teamH[teamH.length - 1].ISM[0] + teamH[teamH.length - 1].JSM[0] + teamH[teamH.length - 1].P3M[0]) / (teamH[teamH.length - 1].ISA[0] + teamH[teamH.length - 1].JSA[0] + teamH[teamH.length - 1].P3A[0])).toFixed(3),
((teamH[teamH.length - 1].ISM[0]) / (teamH[teamH.length - 1].ISA[0])).toFixed(3),
((teamH[teamH.length - 1].JSM[0]) / (teamH[teamH.length - 1].JSA[0])).toFixed(3),
((teamH[teamH.length - 1].P3M[0]) / (teamH[teamH.length - 1].P3A[0])).toFixed(3),
((teamH[teamH.length - 1].FTM) / (teamH[teamH.length - 1].FTA)).toFixed(3),
];
for (let j = 0; j < bodytext.length; j++) {
let dat = document.createElement('td');
dat.style = 'text-align:center'
dat.innerHTML = bodytext[j];
r2.appendChild(dat);
}
tbody.appendChild(r2);
// Team H - Offense
const tableH2 = document.createElement("p");
boxToAdd.insertBefore(tableH2, boxRef);
table = document.createElement('table');
table.style = 'width: 99%'
thead = document.createElement('thead');
tbody = document.createElement('tbody');
table.appendChild(thead);
table.appendChild(tbody);
tableH2.appendChild(table);
headText = [teamH[teamH.length - 1].name,
'真实<br>命中率',
'总命中率',
'干扰下<br>投篮',
'干扰下<br>命中',
'接球攻<br>投篮',
'接球攻<br>命中',
'传内线',
'传中距离',
'传三分',
'传球<br>转化率'
];
r1 = document.createElement('tr');
r1.className = 'tableHeader';
for (let i = 0; i < headText.length; i++) {
let heading_1 = document.createElement('th');
if (i == 0) {
heading_1.style = 'text-align:left';
}
heading_1.innerHTML = headText[i];
r1.appendChild(heading_1);
}
thead.appendChild(r1);
for (let i = 0; i < teamH.length; i++) {
let r2 = document.createElement('tr');
if (i == teamH.length - 1) {
r2.className = 'headline';
} else if (i % 2 == 1) {
r2.style = 'background:#EEEEEE';
} else {
r2.style = 'background:#FFFFFF';
}
bodytext = [
getPosition(teamH[i].MINUTE, teamH[i]),
(teamH[i].PTS / (teamH[i].ISA[0] + teamH[i].JSA[0] + teamH[i].P3A[0] + teamH[i].FTA * 0.44) / 2).toFixed(3),
((teamH[i].ISM[0] + teamH[i].JSM[0] + teamH[i].P3M[0]) / (teamH[i].ISA[0] + teamH[i].JSA[0] + teamH[i].P3A[0])).toFixed(3),
`${teamH[i].ISM[1]+teamH[i].JSM[1]+teamH[i].P3M[1]} - ${teamH[i].ISA[1]+teamH[i].JSA[1]+teamH[i].P3A[1]}`,
((teamH[i].ISM[1] + teamH[i].JSM[1] + teamH[i].P3M[1]) / (teamH[i].ISA[1] + teamH[i].JSA[1] + teamH[i].P3A[1])).toFixed(3),
`${teamH[i].ISM[0] - teamH[i].ISM[1] + teamH[i].JSM[0] - teamH[i].JSM[1] + teamH[i].P3M[0] - teamH[i].P3M[1]} - ${teamH[i].ISA[0] - teamH[i].ISA[1] + teamH[i].JSA[0] - teamH[i].JSA[1] + teamH[i].P3A[0] - teamH[i].P3A[1]}`,
((teamH[i].ISM[0] - teamH[i].ISM[1] + teamH[i].JSM[0] - teamH[i].JSM[1] + teamH[i].P3M[0] - teamH[i].P3M[1]) / (teamH[i].ISA[0] - teamH[i].ISA[1] + teamH[i].JSA[0] - teamH[i].JSA[1] + teamH[i].P3A[0] - teamH[i].P3A[1])).toFixed(3),
`${teamH[i].ASTM[0]} - ${teamH[i].ASTA[0]}`,
`${teamH[i].ASTM[1]} - ${teamH[i].ASTA[1]}`,
`${teamH[i].ASTM[2]} - ${teamH[i].ASTA[2]}`,
((teamH[i].ASTM[0] + teamH[i].ASTM[1] + teamH[i].ASTM[2]) / (teamH[i].ASTA[0] + teamH[i].ASTA[1] + teamH[i].ASTA[2])).toFixed(3)
];
//bodytext.replace('NaN','-');
for (let j = 0; j < headText.length; j++) {
let dat = document.createElement('td');
if (j > 0) {
dat.style = 'text-align:center';
}
if (bodytext[j] == 'NaN') {
bodytext[j] = '-';
}
dat.innerHTML = bodytext[j];
r2.appendChild(dat);
}
tbody.appendChild(r2);
}
// Team H - Advanced
const tableH3 = document.createElement("p");
boxToAdd.insertBefore(tableH3, boxRef);
table = document.createElement('table');
table.style = 'width: 99%'
thead = document.createElement('thead');
tbody = document.createElement('tbody');
table.appendChild(thead);
table.appendChild(tbody);
tableH3.appendChild(table);
headText = [teamH[teamH.length - 1].name,
'防内投',
'防中距离',
'防三分',
'防总计',
'防对手<br>命中率',
'球权<br>使用率',
'助攻率',
'篮板率',
'进攻<br>篮板率',
'防守<br>篮板率',
'失误率'
];
r1 = document.createElement('tr');
r1.className = 'tableHeader';
for (let i = 0; i < headText.length; i++) {
let heading_1 = document.createElement('th');
if (i == 0) {
heading_1.style = 'text-align:left';
}
heading_1.innerHTML = headText[i];
r1.appendChild(heading_1);
}
thead.appendChild(r1);
// 全队没有使用率、助攻率等数据
for (let i = 0; i < teamH.length - 1; i++) {
var r2 = document.createElement('tr');
if (i == teamH.length - 1) {
r2.className = 'headline';
} else if (i % 2 == 1) {
r2.style = 'background:#EEEEEE';
} else {
r2.style = 'background:#FFFFFF';
}
bodytext = [
getPosition(teamH[i].MINUTE, teamH[i]),
`${teamH[i].CONTESTM[0]} - ${teamH[i].CONTESTA[0]}`,
`${teamH[i].CONTESTM[1]} - ${teamH[i].CONTESTA[1]}`,
`${teamH[i].CONTESTM[2]} - ${teamH[i].CONTESTA[2]}`,
`${teamH[i].CONTESTM[0]+teamH[i].CONTESTM[1]+teamH[i].CONTESTM[2]} - ${teamH[i].CONTESTA[0]+teamH[i].CONTESTA[1]+teamH[i].CONTESTA[2]}`,
((teamH[i].CONTESTM[0] + teamH[i].CONTESTM[1] + teamH[i].CONTESTM[2]) / (teamH[i].CONTESTA[0] + teamH[i].CONTESTA[1] + teamH[i].CONTESTA[2])).toFixed(3),
((teamH[i].ISA[0] + teamH[i].JSA[0] + teamH[i].P3A[0] + 0.44 * teamH[i].FTA + teamH[i].TO) * teamH[teamH.length - 1].MINUTE[0] / (teamH[i].MINUTE[0] * (teamH[teamH.length - 1].ISA[0] + teamH[teamH.length - 1].JSA[0] + teamH[teamH.length - 1].P3A[0] + 0.44 * teamH[teamH.length - 1].FTA + teamH[teamH.length - 1].TO))).toFixed(3),
((teamH[i].ASTM[0] + teamH[i].ASTM[1] + teamH[i].ASTM[2]) / (teamH[i].MINUTE[0] / teamH[teamH.length - 1].MINUTE[0] * (teamH[teamH.length - 1].ISM[0] + teamH[teamH.length - 1].JSM[0] + teamH[teamH.length - 1].P3M[0]) - (teamH[i].ISM[0] + teamH[i].JSM[0] + teamH[i].P3M[0]))).toFixed(3),
((teamH[i].OREB + teamH[i].DREB) * teamH[teamH.length - 1].MINUTE[0] / (teamH[i].MINUTE[0] * (teamH[teamH.length - 1].OREB + teamH[teamH.length - 1].DREB + teamA[teamA.length - 1].OREB + teamA[teamA.length - 1].DREB))).toFixed(3),
((teamH[i].OREB) * teamH[teamH.length - 1].MINUTE[0] / (teamH[i].MINUTE[0] * (teamH[teamH.length - 1].OREB + teamA[teamA.length - 1].DREB))).toFixed(3),
((teamH[i].DREB) * teamH[teamH.length - 1].MINUTE[0] / (teamH[i].MINUTE[0] * (teamH[teamH.length - 1].DREB + teamA[teamA.length - 1].OREB))).toFixed(3),
(teamH[i].TO / (teamH[i].ISA[0] + teamH[i].JSA[0] + teamH[i].P3A[0] + 0.44 * teamH[i].FTA + teamH[i].TO)).toFixed(3)
];
//bodytext.replace('NaN','-');
for (let j = 0; j < headText.length; j++) {
let dat = document.createElement('td');
if (j > 0) {
dat.style = 'text-align:center';
}
if (bodytext[j] == 'NaN') {
bodytext[j] = '-';
}
dat.innerHTML = bodytext[j];
r2.appendChild(dat);
}
tbody.appendChild(r2);
}
//last line
r2 = document.createElement('tr');
r2.className = 'headline';
bodytext = [
teamH[teamH.length - 1].name,
`${teamH[teamH.length-1].CONTESTM[0]} - ${teamH[teamH.length-1].CONTESTA[0]}`,
`${teamH[teamH.length-1].CONTESTM[1]} - ${teamH[teamH.length-1].CONTESTA[1]}`,
`${teamH[teamH.length-1].CONTESTM[2]} - ${teamH[teamH.length-1].CONTESTA[2]}`,
`${teamH[teamH.length-1].CONTESTM[0] + teamH[teamH.length - 1].CONTESTM[1] + teamH[teamH.length - 1].CONTESTM[2]} - ${teamH[teamH.length - 1].CONTESTA[0] + teamH[teamH.length - 1].CONTESTA[1] + teamH[teamH.length - 1].CONTESTA[2]}`,
((teamH[teamH.length - 1].CONTESTM[0] + teamH[teamH.length - 1].CONTESTM[1] + teamH[teamH.length - 1].CONTESTM[2]) / (teamH[teamH.length - 1].CONTESTA[0] + teamH[teamH.length - 1].CONTESTA[1] + teamH[teamH.length - 1].CONTESTA[2])).toFixed(3),
'-', '-', '-', '-', '-', '-'
];
//bodytext.replace('NaN','-');
for (let j = 0; j < headText.length; j++) {
let dat = document.createElement('td');
if (j > 0) {
dat.style = 'text-align:center';
} else {
dat.style = 'text-align:left';
}
if (bodytext[j] == 'NaN') {
bodytext[j] = '-';
}
dat.innerHTML = bodytext[j];
r2.appendChild(dat);
tbody.appendChild(r2);
}
})();