您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Show if physical or virtual for all special types.
当前为
- // ==UserScript==
- // @name zeeSpecialTypes
- // @namespace none
- // @version 2019.05.07.2007ß
- // @description Show if physical or virtual for all special types.
- // @author technical13
- // @match https://www.munzee.com/specials*
- // @match https://www.munzee.com/map*
- // @grant none
- // ==/UserScript==
- // jshint esversion: 6
- var isDebug = false;
- var intVerbosity = 0;
- const ver = '2019.05.07.2007ß';
- const scriptName = 'zeeSpecialTypes v' + ver;
- function log( intV, strConsole, strLog, ...arrArgs ) {
- if ( strConsole === undefined ) { strConsole = 'log'; }
- if ( strLog === undefined ) { strLog = '%o'; }
- if ( intVerbosity >= intV && ( strConsole === 'groupEnd' ) ) { console[ strConsole ](); }
- if ( intV === 0 || ( isDebug && intVerbosity >= intV ) ) { console[ strConsole ]( '[%i]: %s: ' + strLog, intV, scriptName, ...arrArgs ); }
- }
- const intParamsStart = ( document.URL.indexOf( '?' ) + 1 );
- const strParams = document.URL.substr( intParamsStart );
- const arrParamSets = strParams.split( '&' );
- var objParams = {};
- arrParamSets.forEach( function( strParam ) {
- let arrParam = strParam.split( '=' );
- let strParamName = ( arrParam[ 0 ].toLowerCase() || '' );
- if ( strParamName === 'verbosity' ) {
- isDebug = toBoolean( arrParam[ 1 ] );
- intVerbosity = ( arrParam[ 1 ] ? ( parseInt( arrParam[ 1 ] ) < 0 ? 0 : ( parseInt( arrParam[ 1 ] ) > 9 ? 9 : parseInt( arrParam[ 1 ] ) ) ) : 9 );
- } else if ( strParamName === 'debug' ) {
- isDebug = toBoolean( arrParam[ 1 ] );
- intVerbosity = 1;
- }
- } );
- log( 1, 'warn', 'Debug mode is on with verbosity level: %o', intVerbosity );
- log( 1, 'groupCollapsed', 'Verbosity options: (click to expand)' );
- log( 1, 'log', '1) Summary\n2) Parameters retrieved from URL\n3) Variables set to objParams\n4) Function returns\n9) ALL debugging info and this notice.' );
- log( 1, 'groupEnd' );
- function toBoolean( val ) {
- const arrTrue = [ undefined, null, '', true, 'true', 1, '1', 'on', 'yes' ];
- val = ( typeof( val ) === 'string' ? val.toLowerCase() : val );
- log( 4, 'log', 'toBoolean() is returning: %o', ( arrTrue.indexOf( val ) !== -1 ? true : false ) );
- return ( arrTrue.indexOf( val ) !== -1 ? true : false );
- }
- const objTypes = {
- 0: 'physical',// munzee - greenie
- 40: 'physical',// diamond
- 52: 'physical',// mace
- 53: 'physical',// longsword
- 131: 'physical',// ruby
- 140: 'physical',// battleaxe
- 218: 'physical',// aquamarine
- 242: 'physical',// topaz
- 280: 'physical',// mystery
- 290: 'virtual',// virtual_amethyst
- 306: 'virtual',// crossbow
- 535: 'virtual',// flatrob
- 441: 'physical',// shamrock
- 510: 'physical',// munzeemadnessreseller
- 511: 'physical',// geostuffreseller
- 512: 'physical',// geohobbiesreseller
- 513: 'physical',// ddcardsreseller
- 514: 'physical',// negsreseller
- 515: 'physical',//geologgersreseller
- 516: 'physical',// mmcocoabeachreseller
- 532: 'physical',// firemystery
- 550: 'physical',// rujareseller
- 584: 'physical',// pinkdiamond
- 651: 'physical',// icemystery
- 681: 'virtual',// virtual_sapphire
- 696: 'physical',// scgsreseller
- 851: 'physical',// earthmystery
- 998: 'physical',// hammer
- 1015: 'virtual',// flatmatt
- 1020: 'physical',// watermystery
- 1057: 'physical',// treasurechest
- 1086: 'virtual',// airmystery
- 1248: 'virtual',// catapult
- 1271: 'physical',// dogchinesezodiac
- 1272: 'physical',// pigchinesezodiac
- 1273: 'physical',// ratchinesezodiac
- 1274: 'physical',// oxchinesezodiac
- 1275: 'physical',// tigerchinesezodiac
- 1276: 'physical',// rabbitchinesezodiac
- 1277: 'physical',// dragonchinesezodiac
- 1278: 'physical',// snakechinesezodiac
- 1279: 'physical',// horsechinesezodiac
- 1280: 'physical',// goatchinesezodiac
- 1281: 'physical',// monkeychinesezodiac
- 1282: 'physical',// roosterchinesezodiac
- 1338: 'virtual',// flatlou
- 1409: 'virtual',// virtual
- 1410: 'virtual',// virtual_rainbow
- 1411: 'virtual',// virtual_timberwolf
- 1412: 'virtual',// virtual_silver
- 1413: 'virtual',// virtual_gray
- 1414: 'virtual',// virtual_black
- 1415: 'utl',// virtual_color
- 1416: 'utl',// virtual_color
- 1417: 'virtual',// virtual_purple_mountains_majesty
- 1418: 'virtual',// virtual_violet
- 1419: 'virtual',// virtual_plum
- 1420: 'virtual',// virtual_blue_violet
- 1421: 'virtual',// virtual_blue
- 1422: 'utl',// virtual_color
- 1423: 'virtual',// virtual_cadet_blue
- 1424: 'virtual',// virtual_periwinkle
- 1425: 'virtual',// virtual_cornflower
- 1426: 'virtual',// virtual_blue_green
- 1427: 'virtual',// virtual_pacific_blue
- 1428: 'virtual',// virtual_cerulean
- 1429: 'virtual',// virtual_robin_egg_blue
- 1430: 'virtual',// virtual_indigo
- 1431: 'virtual',// virtual_turquoise_blue
- 1432: 'virtual',// virtual_sea_green
- 1433: 'virtual',// virtual_granny_smith_apple
- 1434: 'virtual',// virtual_green
- 1435: 'virtual',// virtual_forest_green
- 1436: 'virtual',// virtual_asparagus
- 1437: 'utl',// virtual_color
- 1438: 'virtual',// virtual_yellow_green
- 1439: 'virtual',// virtual_green_yellow
- 1440: 'virtual',// virtual_spring_green
- 1441: 'virtual',// virtual_gold
- 1442: 'virtual',// virtual_yellow
- 1443: 'virtual',// virtual_goldenrod
- 1444: 'virtual',// virtual_dandelion
- 1445: 'virtual',// virtual_orange
- 1446: 'virtual',// virtual_burnt_orange
- 1447: 'utl',// virtual_color
- 1448: 'utl',// virtual_color
- 1449: 'virtual',// virtual_pink
- 1450: 'virtual',// virtual_carnation_pink
- 1451: 'virtual',// virtual_mauvelous
- 1452: 'utl',// virtual_color
- 1453: 'utl',// virtual_color
- 1454: 'virtual',// virtual_magenta
- 1455: 'virtual',// virtual_wild_strawberry
- 1456: 'virtual',// virtual_violet_red
- 1457: 'virtual',// virtual_red_violet
- 1458: 'virtual',// virtual_apricot
- 1459: 'virtual',// virtual_peach
- 1460: 'virtual',// virtual_macaroni_and_cheese
- 1461: 'virtual',// virtual_tan
- 1462: 'utl',// virtual_color
- 1463: 'virtual',// virtual_bittersweet
- 1464: 'virtual',// virtual_red_orange
- 1465: 'virtual',// virtual_scarlet
- 1466: 'virtual',// virtual_red
- 1467: 'virtual',// virtual_brick_red
- 1468: 'virtual',// virtual_mahogany
- 1469: 'virtual',// virtual_chestnut
- 1470: 'utl',// virtual_color
- 1471: 'virtual',// virtual_raw_sienna
- 1472: 'utl',// virtual_color
- 1473: 'virtual',// virtual_brown
- 1581: 'virtual'// flathammock
- };
- const arrUndefinedTypes = [
- 'banshee',// Banshee
- 'limebutterfly', 'monarchbutterfly', 'morphobutterfly',// Butterly
- 'cyclops', 'ogre',// Cyclops
- 'cherub',// Cherub
- 'chinesedragon', 'wyverndragon',// Dragon
- 'fairy', 'dryadfairy', 'wildfirefairy', 'fairygodmother',// Fairy
- // 'beachflatrob', 'coldflatrob', 'tuxflatrob',// haven't found the icon variants on the website yet.// Flat Rob
- 'hadavale',// Hadaval
- 'chimera',// Hydra
- 'dwarfleprechaun', 'goblinleprechaun',// Leprechaun
- 'melusinemermaid',// Mermaid
- 'firepegasus',// Pegasus
- 'pimedus'// Pimedus
- ];
- ( function() {
- 'use strict';
- setTimeout( () => {
- for ( var ndxMarker in mapMarkers ) {
- var intBaseType = mapMarkers[ ndxMarker ].capture_type_id;
- var arrMarkerType = mapMarkers[ ndxMarker ]._element.attributes.style.nodeValue.match( /"https:\/\/((.*)?\/([\w]*)\.([\a-z0-9]{3,4}))\"/i );
- var strMarkerType = arrMarkerType[ 3 ];
- if ( arrUndefinedTypes.indexOf( strMarkerType ) !== -1 ) {
- let strDefinedType = '';
- switch ( objTypes[ intBaseType ] ) {
- case 'physical':
- case 'virtual':
- strDefinedType = strMarkerType + '_' + objTypes[ intBaseType ];
- break;
- case 'utl':
- strDefinedType = 'maintenance';
- console.info( 'base: %i;Marker: %s', intBaseType, strMarkerType );
- break;
- default:
- strDefinedType = 'owned';
- console.error( 'base: %i;Marker: %s', intBaseType, strMarkerType );
- }
- mapMarkers[ ndxMarker ]._element.attributes.style.nodeValue = mapMarkers[ ndxMarker ]._element.attributes.style.nodeValue.replace( strMarkerType, strDefinedType );
- }
- }
- }, 2500 );
- map.on( 'move', mapChanged => {
- log( 2, 'log', 'map.changed: %o', mapChanged );
- setTimeout( () => {
- for ( var ndxMarker in mapMarkers ) {
- var intBaseType = mapMarkers[ ndxMarker ].capture_type_id;
- var arrMarkerType = mapMarkers[ ndxMarker ]._element.attributes.style.nodeValue.match( /"https:\/\/((.*)?\/([\w]*)\.([\a-z0-9]{3,4}))\"/i );
- var strMarkerType = arrMarkerType[ 3 ];
- if ( arrUndefinedTypes.indexOf( strMarkerType ) !== -1 ) {
- let strDefinedType = '';
- switch ( objTypes[ intBaseType ] ) {
- case 'physical':
- case 'virtual':
- strDefinedType = strMarkerType + '_' + objTypes[ intBaseType ];
- break;
- case 'utl':
- strDefinedType = 'maintenance';
- console.info( 'base: %i;Marker: %s', intBaseType, strMarkerType );
- break;
- default:
- strDefinedType = 'owned';
- console.error( 'base: %i;Marker: %s', intBaseType, strMarkerType );
- }
- mapMarkers[ ndxMarker ]._element.attributes.style.nodeValue = mapMarkers[ ndxMarker ]._element.attributes.style.nodeValue.replace( strMarkerType, strDefinedType );
- }
- }
- }, 1300 );
- } );
- map.on( 'zoom', mapChanged => {
- log( 2, 'log', 'map.changed: %o', mapChanged );
- setTimeout( () => {
- for ( var ndxMarker in mapMarkers ) {
- var intBaseType = mapMarkers[ ndxMarker ].capture_type_id;
- var arrMarkerType = mapMarkers[ ndxMarker ]._element.attributes.style.nodeValue.match( /"https:\/\/((.*)?\/([\w]*)\.([\a-z0-9]{3,4}))\"/i );
- var strMarkerType = arrMarkerType[ 3 ];
- if ( arrUndefinedTypes.indexOf( strMarkerType ) !== -1 ) {
- let strDefinedType = '';
- switch ( objTypes[ intBaseType ] ) {
- case 'physical':
- case 'virtual':
- strDefinedType = strMarkerType + '_' + objTypes[ intBaseType ];
- break;
- case 'utl':
- strDefinedType = 'maintenance';
- console.info( 'base: %i;Marker: %s', intBaseType, strMarkerType );
- break;
- default:
- strDefinedType = 'owned';
- console.error( 'base: %i;Marker: %s', intBaseType, strMarkerType );
- }
- mapMarkers[ ndxMarker ]._element.attributes.style.nodeValue = mapMarkers[ ndxMarker ]._element.attributes.style.nodeValue.replace( strMarkerType, strDefinedType );
- }
- }
- }, 1300 );
- } );
- } )();