您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Pulses each tick to aid in counting various things (e.g. shark bite).
当前为
- // ==UserScript==
- // @name DH3 Tick Pulse
- // @namespace com.anwinity.dh3
- // @version 1.2.1
- // @description Pulses each tick to aid in counting various things (e.g. shark bite).
- // @author Anwinity
- // @match dh3.diamondhunt.co
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- const PULSE_DURATION = 500;
- const KEY_TOP = "dh3-tick-pulse-top";
- const KEY_LEFT = "dh3-tick-pulse-left";
- function init() {
- if(!window.var_username) {
- setTimeout(init, 1000);
- return;
- }
- let animationStart = Date.now();
- let fontAwesome = document.createElement("script");
- fontAwesome.src = "https://kit.fontawesome.com/044e12ee28.js"
- fontAwesome.crossorigin = "anonymous";
- fontAwesome.type = "text/javascript";
- $("head").append(fontAwesome);
- let top = localStorage.getItem(KEY_TOP);
- let left = localStorage.getItem(KEY_LEFT);
- const styles = document.createElement("style");
- styles.textContent = `
- #dh3-tick-pulse {
- min-width: 50px;
- min-height: 50px;
- position: absolute;
- left: ${left}px;
- top: ${top}px;
- z-index: 9999;
- padding: 0.25em;
- border: 1px solid rgb(64, 64, 64);
- border-radius: 2px;
- background-color: rgb(26, 26, 26);
- padding: 0px;
- margin: 0px;
- }
- #dh3-tick-pulse-circle-container {
- width: 40px;
- height: 40px;
- }
- #dh3-tick-pulse.collapsed > #dh3-tick-pulse-circle-container {
- display: none;
- }
- #dh3-tick-pulse-circle-container > .circle {
- width: 0px;
- height: 0px;
- margin-top: 0px;
- margin-left: 0px;
- -webkit-border-radius: 20px;
- -moz-border-radius: 20px;
- border-radius: 20px;
- background: rgb(42, 200, 200);
- opacity: 1;
- position: absolute;
- top: calc(20px + 0.25em);
- left: 50%;
- }
- #dh3-tick-pulse-animation-info {
- padding: 0.25em;
- text-align: center;
- font-size: 18pt;
- }
- `;
- $("head").append(styles);
- $("body").prepend(`
- <div id="dh3-tick-pulse">
- <div id="dh3-tick-pulse-circle-container"></div>
- <div id="dh3-tick-pulse-animation-info"></div>
- </div>
- `);
- let el = $("#dh3-tick-pulse");
- el.draggable({
- appendTo: "body",
- containment: "document",
- cursor: "pointer"
- });
- el.on("dragstop", function(event, ui) {
- localStorage.setItem(KEY_TOP, ui.position.top);
- localStorage.setItem(KEY_LEFT, ui.position.left);
- });
- function pulse() {
- let container = $("#dh3-tick-pulse-circle-container");
- let circle = $('<div class="circle"></div>');
- circle.animate({
- "width": "40px",
- "height": "40px",
- "margin-top": "-20px",
- "margin-left": "-20px",
- "opacity": 0
- }, PULSE_DURATION, "swing");
- container.append(circle);
- setTimeout(function() {
- circle.remove();
- }, PULSE_DURATION);
- };
- setInterval(function() {
- let monsterObj = window[`${var_monsterName}MonsterObj`];
- if(monsterObj) {
- let animation = monsterObj.currentAnimation;
- let delta = Date.now() - animationStart;
- let info = `${animation.name}: ${Math.floor(delta/1000)}`;
- $("#dh3-tick-pulse-animation-info").text(info);
- }
- }, 100);
- const originalSetItems = window.setItems;
- window.setItems = function(data) {
- originalSetItems.apply(this, arguments);
- if(data.includes("playtime~")) {
- pulse();
- }
- let el = $("#dh3-tick-pulse");
- if(el.is(":hidden") && (!var_monsterName || var_monsterName != "none")) {
- el.show();
- }
- else if(el.is(":visible") && (var_monsterName && var_monsterName == "none")) {
- el.hide();
- }
- }
- const originalStartMonsterAnimation = window.startMonsterAnimation;
- window.startMonsterAnimation = function() {
- originalStartMonsterAnimation.apply(this, arguments);
- animationStart = Date.now();
- }
- }
- $(init);
- })();