// ==UserScript== // @name GLB Player Scout // @namespace GLB// // @include https://glb.warriorgeneral.com/game/replay.pl?game_id=*&pbp_id=* // @include http://glb.warriorgeneral.com/game/replay.pl?game_id=*&pbp_id=* // @description GLB Speed Script // @version 0.0.1.20230813172012 // @downloadURL https://update.greasyfork.icu/scripts/473001/GLB%20Player%20Scout.user.js // @updateURL https://update.greasyfork.icu/scripts/473001/GLB%20Player%20Scout.meta.js // ==/UserScript== function getElementsByClassName(classname, par){ var a=[]; var re = new RegExp('\\b' + classname + '\\b'); var els = par.getElementsByTagName("*"); for(var i=0,j=els.length; i= temp3) { maxA = Math.max(maxA, (temp4 - temp3)) if (maxA == (temp4 - temp3)) {maxAT = i;} if (maxA == (temp4 - temp3)) { XAccel.setAttribute('style', 'left:' + ((parseFloat(X_Coords[i])*3) - 6) + 'px; top: ' + ((parseFloat(Y_Coords[i])*3) - 6) + 'px') replayarea.appendChild(XAccel) } avgA = avgA + (temp4 - temp3) avgAC = avgAC + 1} } } var ticks_CD = new Array(); ticks_CD[0] = 0; ticks_CD[1] = 0 var ticks_CD10 = new Array(); ticks_CD10[0] = 0; ticks_CD10[1] = 0; ticks_CD10[4] = 0; ticks_CD10[5] = 0; ticks_CD10[6] = 0; ticks_CD10[7] = 0; var ticks_CD20 = new Array(); ticks_CD20[0] = 0; ticks_CD20[1] = 0; ticks_CD20[4] = 0; ticks_CD20[5] = 0; ticks_CD20[6] = 0; ticks_CD20[7] = 0; var ticks_CD30 = new Array(); ticks_CD30[0] = 0; ticks_CD30[1] = 0; ticks_CD30[4] = 0; ticks_CD30[5] = 0; ticks_CD30[6] = 0; ticks_CD30[7] = 0; var ticks_CD40 = new Array(); ticks_CD40[0] = 0; ticks_CD40[1] = 0; ticks_CD40[4] = 0; ticks_CD40[5] = 0; ticks_CD40[6] = 0; ticks_CD40[7] = 0; var ticks_CD50 = new Array(); ticks_CD50[0] = 0; ticks_CD50[1] = 0; ticks_CD50[4] = 0; ticks_CD50[5] = 0; ticks_CD50[6] = 0; ticks_CD50[7] = 0; for(var i=1,j=Y_Coords.length-1; i= 10 && temp2 < 20) { ticks_CD10[0] = ticks_CD10[0] + 1 ticks_CD10[1] = ticks_CD10[1] + Math.sqrt(Math.pow(Math.abs(parseFloat(Y_Coords[i]) - parseFloat(Y_Coords[i-1])), 2) + Math.pow(Math.abs(parseFloat(X_Coords[i]) - parseFloat(X_Coords[i-1])), 2)) if (speed1 < speed2) { ticks_CD10[4] = ticks_CD10[4] + speed1 - speed2 ticks_CD10[5] = ticks_CD10[5] + 1} if (speed1 > speed2) { ticks_CD10[6] = ticks_CD10[6] + speed1 - speed2 ticks_CD10[7] = ticks_CD10[7] + 1}} if (temp2 >= 20 && temp2 < 30) { ticks_CD20[0] = ticks_CD20[0] + 1 ticks_CD20[1] = ticks_CD20[1] + Math.sqrt(Math.pow(Math.abs(parseFloat(Y_Coords[i]) - parseFloat(Y_Coords[i-1])), 2) + Math.pow(Math.abs(parseFloat(X_Coords[i]) - parseFloat(X_Coords[i-1])), 2)) if (speed1 < speed2) { ticks_CD20[4] = ticks_CD20[4] + speed1 - speed2 ticks_CD20[5] = ticks_CD20[5] + 1} if (speed1 > speed2) { ticks_CD20[6] = ticks_CD20[6] + speed1 - speed2 ticks_CD20[7] = ticks_CD20[7] + 1}} if (temp2 >= 30 && temp2 < 40) { ticks_CD30[0] = ticks_CD30[0] + 1 ticks_CD30[1] = ticks_CD30[1] + Math.sqrt(Math.pow(Math.abs(parseFloat(Y_Coords[i]) - parseFloat(Y_Coords[i-1])), 2) + Math.pow(Math.abs(parseFloat(X_Coords[i]) - parseFloat(X_Coords[i-1])), 2)) if (speed1 < speed2) { ticks_CD30[4] = ticks_CD30[4] + speed1 - speed2 ticks_CD30[5] = ticks_CD30[5] + 1} if (speed1 > speed2) { ticks_CD30[6] = ticks_CD30[6] + speed1 - speed2 ticks_CD30[7] = ticks_CD30[7] + 1}} if (temp2 >= 40 && temp2 < 50) { ticks_CD40[0] = ticks_CD40[0] + 1 ticks_CD40[1] = ticks_CD40[1] + Math.sqrt(Math.pow(Math.abs(parseFloat(Y_Coords[i]) - parseFloat(Y_Coords[i-1])), 2) + Math.pow(Math.abs(parseFloat(X_Coords[i]) - parseFloat(X_Coords[i-1])), 2)) if (speed1 < speed2) { ticks_CD40[4] = ticks_CD40[4] + speed1 - speed2 ticks_CD40[5] = ticks_CD40[5] + 1} if (speed1 > speed2) { ticks_CD40[6] = ticks_CD40[6] + speed1 - speed2 ticks_CD40[7] = ticks_CD40[7] + 1}} if (temp2 >= 50) { ticks_CD50[0] = ticks_CD50[0] + 1 ticks_CD50[1] = ticks_CD50[1] + Math.sqrt(Math.pow(Math.abs(parseFloat(Y_Coords[i]) - parseFloat(Y_Coords[i-1])), 2) + Math.pow(Math.abs(parseFloat(X_Coords[i]) - parseFloat(X_Coords[i-1])), 2)) if (speed1 < speed2) { ticks_CD50[4] = ticks_CD50[4] + speed1 - speed2 ticks_CD50[5] = ticks_CD50[5] + 1} if (speed1 > speed2) { ticks_CD50[6] = ticks_CD50[6] + speed1 - speed2 ticks_CD50[7] = ticks_CD50[7] + 1}} } } var total_ticks = Y_Coords.length-1 avgV = (temp) / (X_Coords.length-1) document.getElementById('maxspeed').innerHTML = (maxV*10).toFixed(2) document.getElementById('avgspeed').innerHTML = (avgV*10).toFixed(2) document.getElementById('maxspeedtick').innerHTML = maxTick + ' ticks' document.getElementById('maxaccel').innerHTML = (maxA*10).toFixed(2) document.getElementById('avgaccel').innerHTML = ((avgA/avgAC)*10).toFixed(2) document.getElementById('maxacceltick').innerHTML = maxAT + ' ticks' document.getElementById('totalticks').innerHTML = total_ticks document.getElementById('changeticks10d').innerHTML = ticks_CD10[0] document.getElementById('changeticks20d').innerHTML = ticks_CD20[0] document.getElementById('changeticks30d').innerHTML = ticks_CD30[0] document.getElementById('changeticks40d').innerHTML = ticks_CD40[0] document.getElementById('changeticks50d').innerHTML = ticks_CD50[0] document.getElementById('changeticks10V').innerHTML = ((ticks_CD10[1] /(ticks_CD10[0]+0.00000001))*10).toFixed(2) document.getElementById('changeticks20V').innerHTML = ((ticks_CD20[1] /(ticks_CD20[0]+0.00000001))*10).toFixed(2) document.getElementById('changeticks30V').innerHTML = ((ticks_CD30[1] /(ticks_CD30[0]+0.00000001))*10).toFixed(2) document.getElementById('changeticks40V').innerHTML = ((ticks_CD40[1] /(ticks_CD40[0]+0.00000001))*10).toFixed(2) document.getElementById('changeticks50V').innerHTML = ((ticks_CD50[1] /(ticks_CD50[0]+0.00000001))*10).toFixed(2) document.getElementById('changeticks10de').innerHTML = (ticks_CD10[4]*10).toFixed(2) document.getElementById('changeticks20de').innerHTML = (ticks_CD20[4]*10).toFixed(2) document.getElementById('changeticks30de').innerHTML = (ticks_CD30[4]*10).toFixed(2) document.getElementById('changeticks40de').innerHTML = (ticks_CD40[4]*10).toFixed(2) document.getElementById('changeticks50de').innerHTML = (ticks_CD50[4]*10).toFixed(2) document.getElementById('changeticks10avde').innerHTML = ((ticks_CD10[4]/(ticks_CD10[5]+0.00000001))*10).toFixed(2) + ' (' + ticks_CD10[5] + ' ticks)' document.getElementById('changeticks20avde').innerHTML = ((ticks_CD20[4]/(ticks_CD20[5]+0.00000001))*10).toFixed(2) + ' (' + ticks_CD20[5] + ' ticks)' document.getElementById('changeticks30avde').innerHTML = ((ticks_CD30[4]/(ticks_CD30[5]+0.00000001))*10).toFixed(2) + ' (' + ticks_CD30[5] + ' ticks)' document.getElementById('changeticks40avde').innerHTML = ((ticks_CD40[4]/(ticks_CD40[5]+0.00000001))*10).toFixed(2) + ' (' + ticks_CD40[5] + ' ticks)' document.getElementById('changeticks50avde').innerHTML = ((ticks_CD50[4]/(ticks_CD50[5]+0.00000001))*10).toFixed(2) + ' (' + ticks_CD50[5] + ' ticks)' document.getElementById('changeticks10avac').innerHTML = ((ticks_CD10[6]/(ticks_CD10[7]+0.00000001))*10).toFixed(2) + ' (' + ticks_CD10[7] + ' ticks)' document.getElementById('changeticks20avac').innerHTML = ((ticks_CD20[6]/(ticks_CD20[7]+0.00000001))*10).toFixed(2) + ' (' + ticks_CD20[7] + ' ticks)' document.getElementById('changeticks30avac').innerHTML = ((ticks_CD30[6]/(ticks_CD30[7]+0.00000001))*10).toFixed(2) + ' (' + ticks_CD30[7] + ' ticks)' document.getElementById('changeticks40avac').innerHTML = ((ticks_CD40[6]/(ticks_CD40[7]+0.00000001))*10).toFixed(2) + ' (' + ticks_CD40[7] + ' ticks)' document.getElementById('changeticks50avac').innerHTML = ((ticks_CD50[6]/(ticks_CD50[7]+0.00000001))*10).toFixed(2) + ' (' + ticks_CD50[7] + ' ticks)' document.getElementById('changeticks10ac').innerHTML = (ticks_CD10[6]*10).toFixed(2) document.getElementById('changeticks20ac').innerHTML = (ticks_CD20[6]*10).toFixed(2) document.getElementById('changeticks30ac').innerHTML = (ticks_CD30[6]*10).toFixed(2) document.getElementById('changeticks40ac').innerHTML = (ticks_CD40[6]*10).toFixed(2) document.getElementById('changeticks50ac').innerHTML = (ticks_CD50[6]*10).toFixed(2) ctx.stroke() Y_Coords.length = 0 X_Coords.length = 0 P_Coords.length = 0 } var playernames2 = getElementsByClassName('player_icon o_icon', document) var playernames = getElementsByClassName('player_icon d_icon', document) for(var i=0,j=playernames2.length; iSpeedAverage SpeedMaximum SpeedPoint of MaxAverage AccelerationMax AccelerationPoint of Max Accel' test1.innerHTML = test1.innerHTML + '
Agility
Direction ChangeTicksSpeedSpeed LostAvg LossSpeed GainedAvg Gain
10-19 degrees
20-29 degrees
30-39 degrees
40-49 degrees
50+ degrees
' test1.innerHTML = test1.innerHTML + '
Other
Total Ticks
' var vector1 = 0 var vector2 = 0 var temp2 = 0 var avgV = 0 var maxV = 0 var maxTick = 0 var test2 = new Array() var X_Coords = new Array() var Y_Coords = new Array() var P_Coords = new Array() var temp = 'temp' var temp3 = 0 var temp4 = 0 var maxA = 0 var maxAT = 0 var avgA = 0 var avgAC = 0 var selected = test1 var XSpeed = document.createElement('div') XSpeed.innerHTML = "X1" XSpeed.setAttribute('class', 'player_icon') var XAccel = document.createElement('div') XAccel.innerHTML = "X2" XAccel.setAttribute('class', 'player_icon') var replayarea = document.getElementById('replay_area') var offPlayers = getElementsByClassName("player_icon o_icon",document); for(var j=0; j