您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Shows alternatively scaled pp data on osu!
- // ==UserScript==
- // @name Alternative pp data scaling
- // @namespace http://osu.ppy.sh/u/Kert
- // @description Shows alternatively scaled pp data on osu!
- // @include http*://osu.ppy.sh/u/*
- // @include http*://osu.ppy.sh/p/pp*
- // @grant none
- // @version 1.1
- // ==/UserScript==
- // Super mega sophisticated formula
- // Thanks to FullTablet http://osu.ppy.sh/u/Full_Tablet
- function GetScaledPP(pp){
- // 20 = 1 / (1 - 0.95)
- // the magic number is mathematically justified due to how pp weightnings work
- return pp / 20;
- }
- // Profile pages
- function ProfileProc(){
- // ensure the needed element loaded
- var a = null;
- while(a === null){
- a = document.getElementsByClassName("profileStatLine")[0].getElementsByTagName("b")[0].getElementsByTagName("a")[0];
- }
- var all = document.getElementsByClassName("profileStatLine")[0].getElementsByTagName("b")[0].innerHTML;
- var link = document.getElementsByClassName("profileStatLine")[0].getElementsByTagName("b")[0].getElementsByTagName("a")[0].outerHTML;
- var text = '';
- for (var i = link.length+2; i < all.length; i++){
- text += all[i];
- }
- // skip non-players
- if(text != "-"){
- var arr = text.split('pp');
- var pp = arr[0].replace(",", "");
- var scaled = GetScaledPP(pp);
- var rounded = Math.round(scaled);
- var res = link + ": [" + rounded + "] " + arr[0] + "pp" + arr[1];
- document.getElementsByClassName("profileStatLine")[0].getElementsByTagName("b")[0].innerHTML = res;
- document.getElementsByClassName("profileStatLine")[0].getElementsByTagName("b")[0].setAttribute("title", "Scaled pp: [" + scaled +"]");
- }
- }
- // Performance ranking page
- function PerformanceProc(){
- var tables = document.getElementsByClassName("beatmapListing")[0].getElementsByTagName("tr");
- for(var i = 1; i < tables.length; i++){
- var curTable = document.getElementsByClassName("beatmapListing")[0].getElementsByTagName("tr")[i];
- var old = curTable.getElementsByTagName("td")[4].getElementsByTagName("span")[0].innerHTML;
- var arr = old.split('pp');
- var pp = arr[0].replace(",", "");
- var scaled = GetScaledPP(pp);
- var rounded = Math.round(scaled);
- var res = "[" + rounded + "] " + arr[0] + "pp";
- curTable.getElementsByTagName("td")[4].getElementsByTagName("span")[0].innerHTML = res;
- curTable.getElementsByTagName("td")[4].setAttribute("title", "Scaled pp: [" + scaled +"]");
- }
- }
- window.addEventListener("load", function(e) {
- // Selecting which function to use
- if(document.URL.match(/http.:\/\/osu\.ppy\.sh\/u\//i))
- ProfileProc();
- else
- PerformanceProc();
- }, false);