您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Shortcut toolbar for Dragonrip.com
当前为
// ==UserScript== // @name Dragonrip toolbar // @namespace http://tampermonkey.net/ // @version 1.0.0 // @description Shortcut toolbar for Dragonrip.com // @author paxu // @match *://*.dragonrip.com/* // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant none // @license GPLv3 // ==/UserScript== (() => { 'use strict'; const settings = { removeVanillaNavbar: true, // Remove game's original navbar element } const data = { // Order of items in the toolbar, '|' creates a separator element linkOrder: [ 'home', 'bank', 'prof', 'shop', 'combat', '|', 'mining', 'smithing', 'fishing', 'hunter', 'herb', 'cooking', 'crafting', 'alchemy', 'woodwork', 'beastmastery', '|', 'market', 'quests', ], // Data for link items links: { 'bank': { label:'Bank', url:'https://dragonrip.com/game/bank.php', icon:'/game/images/icons/bank.png' }, 'prof': { //professions label:'Skills', url:'https://dragonrip.com/game/prof.php', icon:'/game/images/icons/prof.png' }, 'mining': { label:'Mining', url:'https://dragonrip.com/game/miningter.php', icon:'/game/images/bigicons/pick.png' }, 'smithing': { label:'Smith', url:'https://dragonrip.com/game/blacksm.php', icon:'/game/images/bigicons/anvil.png' }, 'fishing': { label:'Fish', url:'https://dragonrip.com/game/fish.php', icon:'/game/images/bigicons/fish.png' }, 'hunter': { label:'Hunter', url:'https://dragonrip.com/game/hunter.php', icon:'/game/images/bigicons/hunter.png' }, 'herb': { label:'Herbs', url:'https://dragonrip.com/game/herbalism.php', icon:'/game/images/bigicons/herb.png' }, 'cooking': { label:'Cook', url:'https://dragonrip.com/game/cook.php', icon:'/game/images/bigicons/cook.png' }, 'crafting': { label:'Craft', url:'https://dragonrip.com/game/crafting.php', icon:'/game/images/bigicons/crafting.png' }, 'alchemy': { label:'Alch', url:'https://dragonrip.com/game/alchemy.php', icon:'/game/images/bigicons/poto.png' }, 'woodwork': { label:'Wood<br>work', url:'https://dragonrip.com/game/woodwork.php', icon:'/game/images/bigicons/wood.png' }, 'shop': { //general store label:'Shop', url:'https://dragonrip.com/game/shop.php', icon:'/game/images/icons/shop.png' }, 'beastmastery': { label:'Pets', url:'https://dragonrip.com/game/bmastery.php', icon:'/game/images/bigicons/petb.png' }, 'combat': { label:'Combat', url:'https://dragonrip.com/game/fighting.php', icon:'/game/images/icons/kova.png' }, 'home': { label:'Home', url:'https://dragonrip.com/game/play.php', icon:'https://i.imgur.com/Vn0ku7D.png' }, 'quests': { label:'Quests', url:'https://dragonrip.com/game/quest.php', icon:'/game/images/icons/quest.png' }, 'market': { label:'Market', url:'https://dragonrip.com/game/market.php', icon:'/game/images/icons/market.png' }, } } const toolbarCss = ` .dragonrip-toolbar-cont > * { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .dragonrip-toolbar-cont { border-color: rgba(255,255,255,0.15); border-width:0px 1px; border-style:solid; width:100%; height:100px; display:flex; xflex-wrap:wrap; align-items:center; justify-content:center; background-image: url('https://i.imgur.com/vjJ8ugC.jpeg'); background-size:contain; xpadding: 2px 2px 2px 2px; padding:5px; box-shadow:inset 0px 0px 5px 3px rgba(0,0,0,0.99); } .dragonrip-toolbar-separator { width: 20px; height:100%; xmargin: 0px 15px 0px 15px; xbackground-color: rgba(0,0,0,0.5); } .dragonrip-toolbar-link-item { position:relative; width:50px; aspect-ratio:1/1; margin: 2px; display:flex; align-items: end; justify-content: center; cursor:pointer; border-style: solid; border-image-source: url('https://i.imgur.com/c7Oeu0F.png'); border-image-slice: 70; border-image-width: 1em 1em; border-image-outset: 0; border-image-repeat: stretch; background-color:rgb(24, 24, 31); box-shadow: 2px 2px 2px 0px rgba(0,0,0,0.99); transition: all 0.05s; border-radius:2px; } .dragonrip-toolbar-link-item:hover { background-color:#0b0b2d; outline: 1px solid #00c867; } .dragonrip-toolbar-link-item > .image-cont { position:absolute; width:100%; height:100%; padding:5px; } .dragonrip-toolbar-link-item > .image-cont > .image { xwidth:100%; height:70%; aspect-ratio:1/1; filter: drop-shadow(0px 0px 2px aqua) drop-shadow(0px 0px 1px rgba(255,255,255, 0.0)); } .dragonrip-toolbar-link-item > .label { width:100%; padding:1px 0px 3px 0px; text-align:center; color:white; text-shadow: 0px 0px 3px black, 0px 0px 3px black, 0px 0px 3px black, 0px 0px 3px black, 0px 0px 3px black, 0px 0px 3px black, 0px 0px 3px black ; z-index:1; font-size:0.7em; font-family:consolas,monospace; line-height:0.8; } `; const removeVanillaNavbarCss = ` ul.navbar { display:none; } `; const log = console.log; const createToolbarItem = id => { const item = document.createElement('a'); item.classList.add('dragonrip-toolbar-link-item'); item.href = data.links[id].url; // Create image elem const imageCont = document.createElement('div'); imageCont.classList.add('image-cont'); const image = document.createElement('img'); image.classList.add('image'); image.src = data.links[id].icon; imageCont.append(image); // Create text label const label = document.createElement('div'); label.classList.add('label'); label.innerHTML = data.links[id].label; item.append(imageCont); item.append(label); return item; } const createSeparatorElem = () => { const elem = document.createElement('div'); elem.classList.add('dragonrip-toolbar-separator'); return elem; } const createToolbar = () => { const toolbarCont = document.createElement('div'); toolbarCont.classList.add('dragonrip-toolbar-cont'); // Insert toolbar after the vanilla navbar const refNode = document.querySelector('body > ul.navbar'); refNode.parentNode.insertBefore(toolbarCont, refNode.nextSibling); // Add link items based on the ordering specified in data.linkOrder for (const id of data.linkOrder) { let item; (id === '|') ? item=createSeparatorElem() : item=createToolbarItem(id); toolbarCont.append(item); } } // Wait for game UI to load, then insert toolbar elem const waitForElem = () => { const checkElem = setInterval( () => { if (document.querySelector('ul.navbar') !== null) { clearInterval(checkElem); createToolbar(); } }, 5); } const setCustomCss = str => { const styleElem = document.createElement("style"); styleElem.textContent = str; document.body.appendChild(styleElem); } setCustomCss(toolbarCss); if (settings.removeVanillaNavbar) { setCustomCss(removeVanillaNavbarCss); } waitForElem(); })();