您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Show if physical or virtual for all special types.
当前为
// ==UserScript== // @name zeeSpecialTypes // @namespace none // @version 2019.05.20.1532ß // @description Show if physical or virtual for all special types. // @author technical13 // @supportURL https://discord.me/TheShoeStore // @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.20.1532ß'; 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', 'gorgon',// Banshee 'limebutterfly', 'monarchbutterfly', 'morphobutterfly',// Butterly 'cyclops', 'ogre', 'retiredcyclops',// 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 ); } ); } )();