您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
See and change charms on your bwrift HUD!
// ==UserScript== // @name MH - BWrift HUD Enhancer (Items + Charms) // @version 2.0.2 // @description See and change charms on your bwrift HUD! // @author Chromatical // @match https://www.mousehuntgame.com/* // @match https://apps.facebook.com/mousehunt/* // @icon https://www.google.com/s2/favicons?domain=mousehuntgame.com // @grant none // @namespace http://greasyfork.icu/users/748165 // ==/UserScript== (function() { if (user.environment_name == "Bristle Woods Rift"){ huntListener(); getData(); } })(); $(document).ajaxComplete(function() { var container = $(".charm_container")[0] if(container){ return; } else if (user.environment_name == "Bristle Woods Rift"){ getData(); } }); function huntListener(){ const originalOpen = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function (){ this.addEventListener("load",function(){ if (this.responseURL === "https://www.mousehuntgame.com/managers/ajax/turns/activeturn.php" ||this.responseURL === "https://www.mousehuntgame.com/managers/ajax/pages/page.php" ||this.responseURL === "https://www.mousehuntgame.com/managers/ajax/purchases/itempurchase.php"){ success:{update()} cache: {false} } }) originalOpen.apply(this,arguments); }; }; function getData(){ postReq("https://www.mousehuntgame.com/managers/ajax/users/userInventory.php", `sn=Hitgrab&hg_is_ajax=1&item_types%5B%5D=rift_vacuum_trinket&item_types%5B%5D=super_rift_vacuum_trinket&item_types%5B%5D=rift_anti_skele_trinket&item_types%5B%5D=temporal_fusion_trinket&item_types%5B%5D=rift_clockwork_cog_stat_item&item_types%5B%5D=temporal_rune_stat_item&action=get_items&uh=${user.unique_hash}` ).then(res=>{ try { var response = JSON.parse(res.responseText); if (response) { var quantity = [] for (var i =0;i<response.items.length;i++){ quantity.push(response.items[i].quantity) } render(quantity); } } catch (error) { console.error(error.stack); } }); } function render(quantity){ //Charms------------------------------------------------ var charm_container = document.createElement("div"); charm_container.className = "charm_container"; charm_container.title = "Click to change charms" charm_container.style.position = "absolute"; charm_container.style.left = "247px"; charm_container.style.top = "153px"; charm_container.style.height = "33px"; var vac_charm_btn = document.createElement("button"); vac_charm_btn.style.filter = "brightness(0.5)" vac_charm_btn.className = "Charm-Btn" vac_charm_btn.style.backgroundImage = "url('https://www.mousehuntgame.com/images/items/trinkets/08c2297af0dac1e26490ce3f814df026.gif')" vac_charm_btn.style.backgroundSize = "30px" vac_charm_btn.style.position = "relative" vac_charm_btn.style.width = "33px" vac_charm_btn.style.height = "33px" vac_charm_btn.style.borderRadius = "5px" vac_charm_btn.style.textAlign = "center" vac_charm_btn.style.borderColor = "#4db6ff" var vac_count = document.createElement("div"); vac_count.className = "Charm-Quantity" vac_count.style.fontSize = "9px" vac_count.style.position = "absolute" vac_count.style.backgroundColor = "white" vac_count.style.minWidth = "15px" vac_count.style.top = "19px" vac_count.style.right = "1px" vac_count.style.color = "black"; vac_count.style.borderStyle = "solid" vac_count.style.borderWidth = "thin" vac_count.style.borderColor = "grey" vac_count.style.borderRadius = "5px" var vac_id = document.createElement("div") vac_id.className = "charm-id" vac_id.innerText = 1553 vac_id.style.display = "none" var super_vac_charm_btn = vac_charm_btn.cloneNode(true); super_vac_charm_btn.style.backgroundImage = "url('https://www.mousehuntgame.com/images/items/trinkets/a8857b31040f508bf0c1b9f506afc95a.gif')" var anti_skele_btn = vac_charm_btn.cloneNode(true); anti_skele_btn.style.backgroundImage = "url('https://www.mousehuntgame.com/images/items/trinkets/7218005f9062e881a6a2991ba58db829.gif')" var timesplit_btn = vac_charm_btn.cloneNode(true); timesplit_btn.style.backgroundImage = "url('https://www.mousehuntgame.com/images/items/trinkets/6216e879109bff9abc69c64bcd30d95a.gif')" var super_vac_count = vac_count.cloneNode(true); var anti_skele_count = vac_count.cloneNode(true); var timesplit_count = vac_count.cloneNode(true); var super_vac_id = vac_id.cloneNode(true); super_vac_id.innerText = 1841 var anti_skele_id = vac_id.cloneNode(true); anti_skele_id.innerText = 2322 var timesplit_id = vac_id.cloneNode(true); timesplit_id.innerText = 2348 //Items------------------------------------------------- var item_container = document.createElement("div") item_container.className = "item_container"; item_container.style.position = "absolute"; item_container.style.right = "249px"; item_container.style.top = "153px"; item_container.style.height = "33px"; var tsr_btn = vac_charm_btn.cloneNode(true); tsr_btn.className = "item-Btn" tsr_btn.title = "Click to buy Timesplit Runes" tsr_btn.style.backgroundImage = "url('https://www.mousehuntgame.com/images/items/stats/d7f159d1329c78e901d8cdea0b9aff40.gif')" tsr_btn.style.filter = "brightness(1.0)" tsr_btn.onclick = function(){ purchasable(quantity[4]) } var cog_btn = tsr_btn.cloneNode(true); cog_btn.style.backgroundImage = "url('https://www.mousehuntgame.com/images/items/stats/bf6e07d618060217cc5996f59a0fd009.gif')" var tsr_count = vac_count.cloneNode(true); tsr_count.className = "Item-Quantity" tsr_count.style.borderColor = "grey" var cog_count = tsr_count.cloneNode(true); //render--------------------------------------------------------------- vac_count.textContent = quantity[0]; super_vac_count.textContent = quantity[1]; anti_skele_count.textContent = quantity[2]; timesplit_count.textContent = quantity[3]; cog_count.textContent = quantity[4] tsr_count.textContent = quantity[5] vac_charm_btn.appendChild(vac_count); vac_charm_btn.appendChild(vac_id); super_vac_charm_btn.appendChild(super_vac_count); super_vac_charm_btn.appendChild(super_vac_id); anti_skele_btn.appendChild(anti_skele_count); anti_skele_btn.appendChild(anti_skele_id); timesplit_btn.appendChild(timesplit_count); timesplit_btn.appendChild(timesplit_id); charm_container.appendChild(vac_charm_btn); charm_container.appendChild(super_vac_charm_btn); charm_container.appendChild(anti_skele_btn); charm_container.appendChild(timesplit_btn); tsr_btn.appendChild(tsr_count); cog_btn.appendChild(cog_count); item_container.appendChild(cog_btn); item_container.appendChild(tsr_btn); var ori_box = $(".riftBristleWoodsHUD-itemContainer")[0]; ori_box.insertAdjacentElement("afterend",charm_container); charm_container.insertAdjacentElement("afterend",item_container); active(); } function active(){ var btns = document.getElementsByClassName("Charm-Btn"); const charm = [1553,1841,2322]; var currentCharm = user.trinket_item_id; // Loop through the buttons and add the active class to the current/clicked button for (var i = 0; i < btns.length; i++) { //Initial colour if (currentCharm == charm[i]){ btns[i].className += " active"; btns[i].style.borderColor = "#33ff1e" btns[i].style.filter = "brightness(1.0)" } btns[i].addEventListener("click", function() { var current = document.getElementsByClassName("Charm-Btn active"); if(current[0] == this){ //Disarm hg.utils.TrapControl.disarmTrinket().go() current[0].style.borderColor = "#4db6ff" current[0].style.filter = "brightness(0.5)" current[0].className = current[0].className.replace(" active", ""); } else if (current.length == 0){ //Changing to one of the charms hg.utils.TrapControl.setTrinket(this.firstElementChild.nextElementSibling.innerText).go(); this.className += " active"; this.style.borderColor = "#33ff1e" this.style.filter = "brightness(1.0)" } else { //Changing from one to another current[0].style.borderColor = "#4db6ff" current[0].style.filter = "brightness(0.5)" current[0].className = current[0].className.replace(" active", ""); hg.utils.TrapControl.setTrinket(this.firstElementChild.nextElementSibling.innerText).go(); this.className += " active"; this.style.borderColor = "#33ff1e" this.style.filter = "brightness(1.0)" } }); } } function update(){ postReq("https://www.mousehuntgame.com/managers/ajax/users/userInventory.php", `sn=Hitgrab&hg_is_ajax=1&item_types%5B%5D=rift_vacuum_trinket&item_types%5B%5D=super_rift_vacuum_trinket&item_types%5B%5D=rift_anti_skele_trinket&item_types%5B%5D=temporal_fusion_trinket&item_types%5B%5D=rift_clockwork_cog_stat_item&item_types%5B%5D=temporal_rune_stat_item&action=get_items&uh=${user.unique_hash}` ).then(res=>{ try { var response = JSON.parse(res.responseText); if (response) { document.getElementsByClassName("Charm-Quantity")[0].textContent = response.items[0].quantity; document.getElementsByClassName("Charm-Quantity")[1].textContent = response.items[1].quantity; document.getElementsByClassName("Charm-Quantity")[2].textContent = response.items[2].quantity; document.getElementsByClassName("Charm-Quantity")[3].textContent = response.items[3].quantity; document.getElementsByClassName("Item-Quantity")[0].textContent = response.items[4].quantity; document.getElementsByClassName("Item-Quantity")[1].textContent = response.items[5].quantity; } } catch (error) { console.error(error.stack); } }); } function purchasable(number){ document .querySelectorAll("#marketplace-tsr-buy") .forEach( el=> el.remove()) const div = document.createElement("div"); div.id = "marketplace-tsr-buy"; div.style.backgroundColor = "#F5F5F5"; div.style.position = "fixed"; div.style.zIndex = "9999"; div.style.left = "35vw"; div.style.top = "28vh"; div.style.border = "solid 3px #696969"; div.style.borderRadius = "20px"; div.style.padding = "10px"; div.style.textAlign = "center"; const gs_title = document.createElement("div") gs_title.innerText = "General Store" gs_title.style.fontWeight = "bold"; gs_title.style.fontSize = "15px" const closeButton = document.createElement("button", { id: "close-button" }); closeButton.textContent = "x"; closeButton.onclick = function () { document.body.removeChild(div); }; const table = document.createElement("table"); table.style.textAlign = "left"; table.style.borderSpacing = "1em 0"; const row = document.createElement("tr"); const label = document.createElement("label"); label.innerText = "Amount of Timesplit Rune: " const input = document.createElement("input"); input.type = "text"; input.id = "tsr-input-id" input.size = "10" input.placeholder = "Max: ".concat(Math.floor(number/50)); const buyButton = document.createElement("button"); buyButton.style.fontWeight = "bold"; buyButton.innerText = "Buy"; buyButton.onclick = function(){ const val = input.value; if (val>0 && val <= Math.floor(number/50)){ postReq("https://www.mousehuntgame.com/managers/ajax/purchases/itempurchase.php", `sn=Hitgrab&hg_is_ajax=1&type=temporal_rune_stat_item&quantity=${val}&buy=1&is_kings_cart_item=0&uh=${user.unique_hash}` ).then(function(){ try { alert("Purchase successful!") } catch (error){ alert("Purchase unsuccessful!"); console.log(error) } document.body.removeChild(div); }) } else { alert("Invalid Amount!") } } row.appendChild(label); row.appendChild(input); table.appendChild(row); div.appendChild(closeButton); div.appendChild(document.createElement("br")); div.appendChild(document.createElement("br")); div.appendChild(gs_title); div.appendChild(document.createElement("br")); div.appendChild(table); div.appendChild(document.createElement("br")); div.appendChild(buyButton); document.body.appendChild(div); } function postReq(url, form) { return new Promise((resolve, reject) => { const xhr = new XMLHttpRequest(); xhr.open("POST", url, true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.onreadystatechange = function () { if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { resolve(this); } }; xhr.onerror = function () { reject(this); }; xhr.send(form); }); }