您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds down and scrimmage lines to GLB replays viewed with the replay rewrite script.
// ==UserScript== // @name Replay Rewrite - First Down Lines On Replay // @description Adds down and scrimmage lines to GLB replays viewed with the replay rewrite script. // @include http://*goallineblitz.com/game/replay.pl?game_id=*&pbp_id=* // @include http://glb.warriorgeneral.com/game/replay.pl?game_id=*&pbp_id=* // @copyright 2009, pabst // @namespace pbr/fdlor // @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/3.0/ // @version 13.12.291 // @require https://greasyforks.org/scripts/1371-libpbr2/code/libpbr2.js?version=3533 // ==/UserScript== /* * * pabst did this 09/08/01+ * * */ var scriptName = "First Down Lines"; var scriptVersion = "13.12.29"; var scriptWebpage = "http://userscripts.org/scripts/show/54522"; window.setTimeout( function() { try { init(); } catch (e) { console.log(e); } } , 100); function activate(e) { console.log("activate first down lines"); lock(); removeDownLines(); createDownLines(); unlock(); } function removeDownLines() { var ds = document.getElementById("ds"); if (ds != null) ds.parentNode.removeChild(ds); var los = document.getElementById("los"); if (los != null) los.parentNode.removeChild(los); var fdm = document.getElementById("fdm"); if (fdm != null) fdm.parentNode.removeChild(fdm); } function createDownLines() { try { //console.log("createDownLines"); var play_data = unsafeWindow.play_data[0]; var fdcolor = "yellow"; var play_container = document.getElementById("replay_area"); var header = document.getElementById("replay_header"); var dir = header.getElementsByTagName("h1")[0]; var dirText = dir.innerHTML; var ytg = ""; if(dirText.indexOf(" inches ")!=-1) { ytg = '.3'; } else { if(dirText.indexOf(" G on ")!=-1) { // later } else { var p2 = dirText.indexOf(" & ")+7; var p1 = dirText.indexOf(" on "); ytg = dirText.substring(p2,p1); if (dirText.substring(p2-10,p2-9) == "4") { fdcolor = "red"; } } } if (play_data != null) { //line of scrimmage var greater=0; for (var i=1; i<play_data.length; i++) { if (play_data[i].y > play_data[0].y) greater++; else greater--; } var diff = (greater / Math.abs(greater)); if (diff < 0) diff = -4; else diff = 1; //console.log("diff="+diff); var pid = 999; for (var i=0; i<document.images.length; i++) { if (document.images[i].src.indexOf("/C.gif") != -1) { pid = parseInt(document.images[i].parentNode.id.split("_")[2]); break; } } if (pid == 999) return; for (var i=0; i<play_data.length; i++) { if (play_data[i].id == pid) { pid = i; break; } } if (play_data[pid] != null) { var los = parseFloat(play_data[pid].y); los = los * 3 + 40; los = los + 1; var div = document.createElement('div'); div.id = 'los'; div.style.top = (los + diff) + 'px'; div.style.position = "absolute"; div.style.width = '520px'; div.style.height = '2px'; div.style.backgroundColor = 'blue'; div.style.zIndex = playerLayerZ-32; play_container.appendChild(div); //end los //first down marker diff = Math.abs(diff)/diff * ytg * 9; los = parseFloat(play_data[pid].y); los = los * 3 + 40; los = los + (Math.abs(diff)/diff)*2; div = document.createElement('div'); div.id = 'fdm'; div.style.top = (los + diff) + 'px'; div.style.position = "absolute"; div.style.width = '520px'; div.style.height = '2px'; div.style.backgroundColor = fdcolor; div.style.zIndex = playerLayerZ-32; play_container.appendChild(div); //end fdm } else { console.log(play_data.length+" -- "+pid+" : play_data[0][pid] == null"); } } } catch (e) { console.log(e); } }