您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
hs deckcode
// ==UserScript== // @name hearthstone deckcode // @version 2.30 // @description hs deckcode // @match *://bbs.nga.cn/read.php* // @author fbigame // @namespace https://hs.fbigame.com // ==/UserScript== var img_ver = 13; var fbi_postcontent0 = document.getElementById('postcontent0').innerHTML; if (fbi_postcontent0 != undefined) { var deck_code_all = []; deck_codes = fbi_postcontent0.split('<br>'); deck_codes.forEach(function(value, index, arr) { if (value.substring(0, 3) == 'AAE') { deck_code_all.push(value); } }); var fbi_userinfo = document.getElementById('posterinfo0'); var fbi_userinfo_divs = fbi_userinfo.childNodes; var fbi_deck_div = null; for (var i = 0; i < fbi_userinfo_divs.length; i++) { if (fbi_userinfo_divs[i].className == "stat_spacer") { fbi_deck_div = fbi_userinfo_divs[i]; } else if (fbi_userinfo_divs[i].className == "stat") { var fbi_user_stat_div = fbi_userinfo_divs[i].childNodes; for (var j = 0; j < fbi_user_stat_div.length; j++) { if (fbi_user_stat_div[j].className == "stat_spacer") { fbi_deck_div = fbi_user_stat_div[j]; } } } } if (fbi_deck_div !== null) { var ele = document.createElement("div"); ele.innerHTML = '<style>.forumbox .postrow .stat_spacer{width:auto;}.cards_rebuild li{list-style:none}.deck_containter{padding-top:7px;width:200px;z-index:1001;font-size:14px!important;font-family:"Microsoft YaHei",Arial,Helvetica,sans-serif;margin:auto;}.deck_containter .deck_hero{width:200px;height:65px}.card-tile{padding-top:2px;color:#fff;position:relative;text-align:left;cursor:pointer;margin-top:1px;text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000;height:34px;line-height:34px}.card-tile .card-gem{height:100%;float:left;position:relative;border-style:solid;border-color:black;border-width:1px 0 1px 1px;width:34px}.card-tile .card-cost{position:absolute;font-weight:bold;text-align:center;width:100%}.card-tile .rarity-common,.rarity-free{background:#858585}.card-tile .rarity-common,.rarity-rare{background:#315376}.card-tile .rarity-common,.rarity-epic{background:#644c82}.card-tile .rarity-common,.rarity-legendary{background:#855c25}.card-tile .card-frame{position:relative;border:solid 1px black;height:100%;overflow:hidden}.card-tile .card-frame .card-fade-countbox{position:absolute;width:100%;height:100%;background:linear-gradient(65deg,rgba(49,49,9,1) 0,rgba(49,49,49,1) calc(100% - 120px),rgba(49,49,49,0) calc(100% - 50px),rgba(49,49,49,0) 100%)}.card-tile .card-frame .card-fade-no-countbox{position:absolute;width:100%;height:100%;background:linear-gradient(65deg,rgba(49,49,9,1) 0,rgba(49,49,49,1) calc(100% - 96px),rgba(49,49,49,0) calc(100% - 26px),rgba(49,49,49,0) 100%)}.card-tile .card-frame .card-name{position:absolute;font-weight:bold;left:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-tile .card-frame .card-asset{position:absolute;height:100%;background-color:#313131}.card-tile .card-countbox{float:right;position:relative;background-color:#313131;border-left:solid 1px black;height:100%}.card-tile .card-legendicon{position:absolute;top:-1px}.card-tile .card-count{position:absolute;width:100%;color:#f4d442;font-weight:bold;text-align:center}.card-tile .card-image{position:fixed;z-index:1000}.card-tile .predicted{opacity:.4;filter:grayscale(1)}.card-tile .predicted :hover{filter:grayscale(0)}.card-tile .predicted .craftable{opacity:.6}.card-tile .predicted .craftable a:hover,.card-tile .predicted .craftable a:focus{opacity:.8}.card-tile .predicted .craftable a:hover,.card-tile .predicted .craftable a:focus{cursor:pointer}.card-tile .predicted .craftable.card-image{filter:none}#card-tooltip .card-image-container{position:relative}#card-tooltip .card-image-subtitle{position:absolute;width:100%;left:0;text-align:center;bottom:5%;font-weight:bold;text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000}.card-tooltip{background-color:rgba(0,0,0,0.95);border-radius:4px;border:1px rgba(255,255,255,0.25) solid;color:white;font-family:"Noto Sans",sans-serif;font-size:14px;font-weight:normal;margin-top:10px;min-width:250px;max-width:300px;padding:8px 8px;position:fixed;white-space:normal;pointer-events:none;z-index:1000}.no-background{background:transparent;border:unset}.card-image{position:absolute;z-index:1000;width:256px}</style><div id="tooltip-container"></div>'; fbi_deck_div.appendChild(ele); var deck_index; var fbi_ajax = []; var ajax_status = false; var const_index = 0; for (deck_index = 0; deck_index < 1; deck_index ++) { console.log('deck_index: ' + deck_index); console.log('deck_code_all.length: ' + deck_code_all.length); var deck_code = deck_code_all[deck_index]; if (ajax_status == true){ const_index = deck_index; } if (deck_code != '') { var ele = document.createElement("div"); ele.innerHTML = '<div class="deck_containter"><div id="cards_rebuild_' + deck_index + '" class="cards_rebuild"></div><div class="deck_wrap"><div id="cards_list_' + deck_index + '" class="cards_list"></div></div></div>'; fbi_deck_div.appendChild(ele); fbi_ajax[const_index] = new XMLHttpRequest(); fbi_ajax[const_index].open('get', 'https://hs.fbigame.com/ajax.php?mod=deck_decode&index=' + const_index + '&source=nga&deck_code=' + encodeURIComponent(deck_code)); fbi_ajax[const_index].send(); fbi_ajax[const_index].onreadystatechange = function() { if (fbi_ajax[const_index].readyState == 4 && fbi_ajax[const_index].status == 200) { ajax_status = true; var fbi_json = JSON.parse(fbi_ajax[const_index].responseText); if (fbi_json.ec == 0) { if (fbi_json.deck) { rebuild_deck_code(fbi_json.deck, fbi_json.index); } else { console.log('cant find deck'); } } else { console.log(fbi_json.em); } } } } else { console.log('deck code empty'); } } } else { console.log('cant find stat div'); } } function rebuild_deck_code(deck, fbi_json_index) { var select_class = ''; var class_name = ''; window.all_cards = []; var decode_all_cards = ''; for (var index in deck.cards) { for (var i = 0; i < deck.cards[index]; i ++ ) { if (decode_all_cards == '') { decode_all_cards += index; } else { decode_all_cards += '|' + index; } } }; if (decode_all_cards != '') { var fbi_ajax = new XMLHttpRequest(); fbi_ajax.open('get', 'https://hs.fbigame.com/ajax.php?mod=get_cards_detail&source=nga&cards=' + decode_all_cards); fbi_ajax.send(); fbi_ajax.onreadystatechange = function() { if (fbi_ajax.readyState == 4 && fbi_ajax.status == 200) { var fbi_json = JSON.parse(fbi_ajax.responseText); if (fbi_json.ec == 0) { if (fbi_json.num > 0) { var all_cards = ''; fbi_json.list.forEach(function(value, index, arr) { var datas = ''; datas += 'data-CardID="' + value.CardID + '" '; datas += 'id="card_' + value.Id + '" '; datas += 'data-CARDNAME="' + value.CARDNAME + '" '; datas += 'data-COST="' + value.COST + '" '; datas += 'data-RARITY="' + value.RARITY + '" '; datas += 'data-auth_key="' + value.auth_key + '" '; all_cards += '<li ' + datas + '></li>'; }); console.log('cards_rebuild_' + fbi_json_index); document.getElementById('cards_rebuild_' + fbi_json_index).innerHTML = all_cards; for (var index in deck.cards) { for (var i = 0; i < deck.cards[index]; i ++ ) { add_to_deck(index, fbi_json_index); } } } } } } } return true; } function add_to_deck(id, index) { var card = document.getElementById('card_' + id); var cardid = card.attributes["data-cardid"].nodeValue; var name = card.attributes["data-cardname"].nodeValue; var cost = card.attributes["data-cost"].nodeValue; var card_rarity = card.attributes["data-rarity"].nodeValue; var auth_key = card.attributes["data-auth_key"].nodeValue; var rarity = ''; switch (card_rarity) { case '1': rarity = 'rarity-free'; break; case '2': rarity = 'rarity-free'; break; case '3': rarity = 'rarity-rare'; break; case '4': rarity = 'rarity-epic'; break; case '5': rarity = 'rarity-legendary'; break; } if (window.all_cards['"' + id + '"'] > 0) { window.all_cards['"' + id + '"'] = window.all_cards['"' + id + '"'] + 1; document.getElementById('card_count_' + id).innerHTML = window.all_cards['"' + id + '"']; removeClass(document.getElementById('card_countbox_' + id), 'hide'); addClass(document.getElementById('card-fade-no-countbox_' + id), 'card-fade-countbox'); removeClass(document.getElementById('card-fade-no-countbox_' + id), 'card-fade-no-countbox'); document.getElementById('card_asset_' + id).setAttribute('style', 'right: 22px !important'); } else { window.all_cards['"' + id + '"'] = 1; if (card_rarity == 5) { var num_show = '★'; var count_box_hide = ''; var card_fade_countbox = 'card-fade-countbox'; var card_assets_style = 'right: 22px;'; } else { var num_show = window.all_cards['"' + id + '"']; var count_box_hide = 'hide'; var card_fade_countbox = 'card-fade-no-countbox'; var card_assets_style = 'right: 0px;'; } var cardinfo = ''; cardinfo += '<div class="card-tile" name="card_tile" aria-label="' + name + '" data-cardid="' + cardid + '" data-id="' + id + '" data-cost="' + cost + '" data-rarity="' + rarity + '" data-auth_key="' + auth_key + '">'; cardinfo += '<div class="card-gem ' + rarity + '">'; cardinfo += '<span class="card-cost" style="font-size: 1.25em;">' + cost + '</span>'; cardinfo += '</div>'; cardinfo += '<div class="card-frame">'; cardinfo += '<img id="card_asset_' + id + '" class="card-asset" src="https://hs.fbigame.com/static/images/tiles/' + cardid + '.png" alt="' + name + '" style="' + card_assets_style + '">'; cardinfo += '<div id="card_countbox_' + id + '" class="card-countbox ' + count_box_hide + '" style="width: 24px;">'; cardinfo += '<span id="card_count_' + id + '" class="card-count" data-id="' + id + '" style="font-size: 1.15em; top: 0px;">' + num_show + '</span>'; cardinfo += '</div>'; cardinfo += '<span id="' + card_fade_countbox + '_' + id + '" class="' + card_fade_countbox + '" data-id="' + id + '"></span>'; cardinfo += '<span class="card-name" style="width: calc(100% - 28px);">' + name + '</span>'; cardinfo += '</div>'; cardinfo += '</div>'; var ele = document.createElement("div"); ele.innerHTML = cardinfo; document.getElementById('cards_list_' + index).appendChild(ele); } var card_tiles = document.getElementsByName('card_tile'); var arr = []; for (var i = 0; i < card_tiles.length; i++) { arr.push(card_tiles[i]); card_tiles[i].addEventListener("mousemove",function(e){ var iDiffX = e.pageX - this.offsetLeft; var iDiffY = e.pageY - this.offsetTop; var x = e.clientX - iDiffX + 90; var y = e.clientY - iDiffY - 191; show_tooltip(this.attributes["data-cardid"].nodeValue, this.attributes["data-auth_key"].nodeValue, x, y); },false); card_tiles[i].addEventListener("mouseout",function(e){ hide_tooltip(); },false); } arr.sort(function(a,b){ return a.getAttribute('data-cost') - b.getAttribute('data-cost') }); for(var i = 0; i < arr.length; i ++) { document.getElementById('cards_list_' + index).appendChild(arr[i]); } } function show_tooltip(cardid, auth_key, x, y) { var content = ''; content += '<div id="card-tooltip" class="card-tooltip no-background" role="tooltip" style="left: 506px; top: 118px;">'; content += '<img class="card-image" src="https://res.fbigame.com/hs/v' + img_ver + '/' + cardid + '.png?auth_key=' + auth_key + '">'; content += '</div>'; document.getElementById('tooltip-container').innerHTML = content; document.getElementById('card-tooltip').setAttribute('style', 'left: ' + x + 'px !important;top: ' + y + 'px !important'); document.getElementById('tooltip-container').setAttribute('style', 'display:block'); } function hide_tooltip() { document.getElementById('tooltip-container').setAttribute('style', 'display:none'); } function addClass(obj, cls) { var obj_class = obj.className, blank = (obj_class != '') ? ' ': ''; added = obj_class + blank + cls; obj.className = added; } function removeClass(obj, cls) { var obj_class = ' ' + obj.className + ' '; obj_class = obj_class.replace(/(\s+)/gi, ' '), removed = obj_class.replace(' ' + cls + ' ', ' '); removed = removed.replace(/(^\s+)|(\s+$)/g, ''); obj.className = removed; } function hasClass(obj, cls) { var obj_class = obj.className, obj_class_lst = obj_class.split(/\s+/); x = 0; for (x in obj_class_lst) { if (obj_class_lst[x] == cls) { return true; } } return false; }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址