您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Imported to Greasy Fork for a privated TornPDA edit of the racing enhancement script
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/510149/1486318/lugburz%27%20Torn%20Scripts%20library.js
- // ==UserScript==
- // @name Torn: Scripts library
- // @namespace lugburz.lib
- // @version 0.1.5
- // @description Library of functions used in my Torn scripts.
- // @author Lugburz
- // @exclude *
- // @grant none
- // ==/UserScript==
- function ajax(callback) {
- $(document).ajaxComplete((event, xhr, settings) => {
- if (xhr.readyState > 3 && xhr.status == 200) {
- let url = settings.url;
- if (url.indexOf("torn.com/") < 0) url = "torn.com" + (url.startsWith("/") ? "" : "/") + url;
- const page = url.substring(url.indexOf("torn.com/") + "torn.com/".length, url.indexOf(".php"));
- callback(page, xhr, settings);
- }
- });
- }
- function pad(num, size) {
- return ('000000000' + num).substr(-size);
- }
- function formatTime(date) {
- return pad(date.getUTCHours(), 2) + ':' + pad(date.getUTCMinutes(), 2) + ':' + pad(date.getUTCSeconds(), 2);
- }
- function formatTimeMsec(msec, alwaysShowHours = false) {
- const hours = Math.floor((msec % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
- const minutes = Math.floor((msec % (1000 * 60 * 60)) / (1000 * 60));
- const seconds = Math.floor((msec % (1000 * 60)) / 1000);
- const mseconds = Math.floor(msec % 1000);
- return (alwaysShowHours ? pad(hours, 2) + ":" : (hours > 0 ? hours + ":" : '')) + (hours > 0 || minutes > 0 ? pad(minutes, 2) + ":" : '') + pad(seconds, 2) + "." + pad(mseconds, 3);
- }
- function formatTimeSecWithLetters(msec) {
- const hours = Math.floor((msec % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
- const minutes = Math.floor((msec % (1000 * 60 * 60)) / (1000 * 60));
- const seconds = Math.floor((msec % (1000 * 60)) / 1000);
- return (hours > 0 ? hours + "h " : '') + (hours > 0 || minutes > 0 ? minutes + "min " : '') + seconds + "s";
- }
- function decode64(input) {
- var output = '';
- var chr1, chr2, chr3 = '';
- var enc1, enc2, enc3, enc4 = '';
- var i = 0;
- var keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
- var base64test = /[^A-Za-z0-9\+\/\=]/g;
- if (base64test.exec(input)) {
- console.log('There were invalid base64 characters in the input text.\n' +
- 'Valid base64 characters are A-Z, a-z, 0-9, \'+\', \'/\',and \'=\'\n' +
- 'Expect errors in decoding.');
- }
- input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '');
- do {
- enc1 = keyStr.indexOf(input.charAt(i++));
- enc2 = keyStr.indexOf(input.charAt(i++));
- enc3 = keyStr.indexOf(input.charAt(i++));
- enc4 = keyStr.indexOf(input.charAt(i++));
- chr1 = (enc1 << 2) | (enc2 >> 4);
- chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
- chr3 = ((enc3 & 3) << 6) | enc4;
- output = output + String.fromCharCode(chr1);
- if (enc3 != 64) {
- output = output + String.fromCharCode(chr2);
- }
- if (enc4 != 64) {
- output = output + String.fromCharCode(chr3);
- }
- chr1 = chr2 = chr3 = '';
- enc1 = enc2 = enc3 = enc4 = '';
- } while (i < input.length);
- return unescape(output);
- }