 |
 |
 |
HV Script Thread, Discuss your creations. Includes guidelines and infos for script creation (2020-02-28 upd) |
|
Apr 27 2017, 17:05
|
SidZBear
Group: Gold Star Club
Posts: 560
Joined: 31-May 16

|
(IMG:[ i.imgur.com] http://i.imgur.com/kfzBwbM.png) Whenever I go to monster lab with the smart monster script, this is all I get. I can't seem to get it to update or do anything, and when I clicked to unlock monster slots, the entire thing quit working; I had to disable it to see anything on the monster screen. What exactly am I doing wrong?
|
|
|
|
|
 |
|
Apr 27 2017, 17:15
|
Kinights
Group: Gold Star Club
Posts: 988
Joined: 25-July 12

|
QUOTE(SidZBear @ Apr 27 2017, 12:05)  pic
Whenever I go to monster lab with the smart monster script, this is all I get. I can't seem to get it to update or do anything, and when I clicked to unlock monster slots, the entire thing quit working; I had to disable it to see anything on the monster screen. What exactly am I doing wrong?
Might be the browser, or maybe the custom font. If you haven't changed it yet, try going into Character --> Settings and change it to something else, as many scripts don't support, or get bugged when using HV's vannila font.
|
|
|
|
|
 |
|
Apr 27 2017, 17:27
|
SidZBear
Group: Gold Star Club
Posts: 560
Joined: 31-May 16

|
QUOTE(Kinights @ Apr 27 2017, 08:15)  Might be the browser, or maybe the custom font.
If you haven't changed it yet, try going into Character --> Settings and change it to something else, as many scripts don't support, or get bugged when using HV's vannila font.
Changing font fixed it! You are super helpful today!
|
|
|
|
|
 |
|
Apr 28 2017, 11:51
|
Cleavs
Group: Gold Star Club
Posts: 24,322
Joined: 18-January 07

|
another spreadsheet. this time is to calculate trainings costs and should be quite self-explaining QUOTE
Training_Cost_Calculator_1.1.zip ( 125.65k )
Number of downloads: 170updated to v0.86, with the most recent Assimilator extension. note that Assimilator lv15+ are an extrapolation but error should be quite low (somewhere in the ppm range). PS: if someone knows how to connect the red dots into a curve that has the same tendency of the blue one, please pm me. This post has been edited by Scremaz: Aug 20 2017, 15:31
|
|
|
|
|
 |
|
Apr 28 2017, 18:03
|
chjj30
Group: Catgirl Camarilla
Posts: 10,996
Joined: 5-January 14

|
QUOTE(Scremaz @ Apr 28 2017, 17:51)  another spreadsheet. this time is to calculate trainings costs and should be quite self-explaining PS: if someone knows how to connect the red dots into a curve that has the same tendency of the blue one, please pm me.
Well, with this, now I needn't the Picture of the Cost of Scavenger, Luck of the Draw , Quartermaster and Archaeologist. Well, only a litte Problem, maybe only in my Computer. In some sheets I can't see the exact total Cost directly, because the Column is to narrow th show it. I tried to change the Column to be broader but it's locked and man can't change it unless man konws the Password.
|
|
|
|
|
 |
|
Apr 28 2017, 18:06
|
Cleavs
Group: Gold Star Club
Posts: 24,322
Joined: 18-January 07

|
QUOTE(chjj30 @ Apr 28 2017, 18:03)  Well, with this, now I needn't the Picture of the Cost of Scavenger, Luck of the Draw , Quartermaster and Archaeologist. Well, only a litte Problem, maybe only in my Computer. In some sheets I can't see the exact total Cost directly, because the Column is to narrow th show it. I tried to change the Column to be broader but it's locked and man can't change it unless man konws the Password. ah, yes. i tried many cases but i guess some of them slipped. also, usually i lock them because i prefer for people not to mess with the math algorythm, so it cannot be helped. (IMG:[ invalid] style_emoticons/default/heh.gif) that's Manifest Destiny spreadsheet, right? [edit]: btw, it seems due to the particular font you're using, and that's the reason because i used those three cells rather than simply one. that error happens only when the number is very big, and in those cases you'd definitely want to start using millions, since in those cases that's the proper range. either way, i updated it, and took the chance to add the separator in the [k] cells as well. This post has been edited by Scremaz: Apr 28 2017, 18:31
|
|
|
|
|
 |
|
Apr 28 2017, 18:40
|
chjj30
Group: Catgirl Camarilla
Posts: 10,996
Joined: 5-January 14

|
QUOTE(Scremaz @ Apr 29 2017, 00:06)  ah, yes. i tried many cases but i guess some of them slipped. also, usually i lock them because i prefer for people not to mess with the math algorythm, so it cannot be helped. (IMG:[ invalid] style_emoticons/default/heh.gif) that's Manifest Destiny spreadsheet, right? [edit]: btw, it seems due to the particular font you're using, and that's the reason because i used those three cells rather than simply one. that error happens only when the number is very big, and in those cases you'd definitely want to start using millions, since in those cases that's the proper range. either way, i updated it, and took the chance to add the separator in the [k] cells as well. Right, only with great Number. Thanks for the Updating!
|
|
|
|
|
 |
|
Apr 30 2017, 01:46
|
SidZBear
Group: Gold Star Club
Posts: 560
Joined: 31-May 16

|
QUOTE(Superlatanium @ Jan 11 2017, 15:57)  It's a really crappy script that I never really intended to publish (it was originally part of a bigger script just for auctions) so the code/"interface" (lol) is very ugly and there might still be bugs. Try this one. It'll show the percentiles without needing to press the silly button. Many ranges have been updated due to new information. It also now takes into account forge level and IW potencies, and tries to estimate the base value of the stat. (there may be 0-10% error depending on the amount of forging/IW levels).
Percentile_Ranges_1.1.3.user.js.txt ( 14.33k )
Number of downloads: 955I cannot get this to run at all; when I try to drop it into a browser (even after renaming) it just comes up as plaintext on the webpage install of installing as an extension. Am I doing something wrong, or is there an alternate?
|
|
|
|
|
 |
|
Apr 30 2017, 02:31
|
Superlatanium
Group: Gold Star Club
Posts: 7,663
Joined: 27-November 13

|
QUOTE(SidZBear @ Apr 29 2017, 23:46)  I cannot get this to run at all; when I try to drop it into a browser (even after renaming) it just comes up as plaintext on the webpage install of installing as an extension. Am I doing something wrong, or is there an alternate? It's not an extension, it's a userscript. The text is the code; you have to copy it into Greasemonkey or Tampermonkey.
|
|
|
|
Apr 30 2017, 02:43
|
SidZBear
Group: Gold Star Club
Posts: 560
Joined: 31-May 16

|
QUOTE(Superlatanium @ Apr 29 2017, 17:31)  It's not an extension, it's a userscript. The text is the code; you have to copy it into Greasemonkey or Tampermonkey.
Oh... I didn't use those before. I are dum >.< Thank you! it works '>.>
|
|
|
|
May 9 2017, 08:15
|
sickentide
Group: Catgirl Camarilla
Posts: 1,355
Joined: 31-August 10

|
see below
This post has been edited by sickentide: Jun 18 2017, 22:49
|
|
|
|
|
 |
|
May 9 2017, 19:07
|
Usagi =
Group: Gold Star Club
Posts: 2,923
Joined: 29-October 13

|
CODE java script: ((function() {
if (document.getElementById("inventory_equip") === null) { console.log("Go to HV Inventory Page!"); return; }
var url = window.location.protocol + "//" + window.location.hostname + "/";
var names = document.querySelectorAll(".eqp .fd2 > div, .eqpp .fd2 > div"); var locks = document.querySelectorAll(".eqpp > div:first-child, .eqp > div:first-child"); var ids = document.querySelectorAll(".eqpp > .eqdp, .eqp > .eqdp");
var queue = 0; var skipped = 0; var looping = true; var id;
for (var i = 0; i < names.length; i++) { if (names[i].textContent.match(/Crude|Fair|Average|Superior|Exquisite/) !== null && locks[i].className.includes("iu")) { id = parseInt(ids[i].id); queue++;
if (names[i].textContent.match(/Phase|Cotton/)) { names[i].textContent = "Salvage - " + names[i].textContent;; process(id, "acloth"); continue; }
if (names[i].textContent.match(/Staff/)) { names[i].textContent = "Salvage - " + names[i].textContent; process(id, "staff"); continue; }
names[i].textContent = "Bazaar - " + names[i].textContent; process(id); } else { names[i].textContent = ""; skipped++; } }
looping = false; done(0);
function process(id, category) { var x = new XMLHttpRequest(); x.onload = function() { done(1); };
if (category === undefined) { x.open("POST", url + "?s=Bazaar&ss=es", true); x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); x.send("select_mode=item_pane&select_item=" + id + "&select_count=1"); } else { x.open("POST", url + "?s=Forge&ss=sa&filter=" + category, true); x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); x.send("select_item=" + id); } }
function done(n) { queue -= n;
if (!looping) { if (queue == 0) { alert("Done! Skipped " + skipped); } else { console.log(queue + " left"); } } }
})())
This is a bookmarklet that salvages or bazaars all equipments that is of exquisite quality or lower and not locked. If its a cloth or staff, it will salvage it, everything else goes to the bazaar. Obviously, this setup is meant for mages. To install, just create a normal bookmark and paste the code above into the URL field. Remember to remove the space between "java script" at the beginning. The forum automatically separates the word javascript if it's enclosed in the code tag. To use, navigate to your inventory page and click on the bookmark. Upon completion, you will see a popup saying so and the number of equipment skipped. This number should match the number of slots used at the bottom after you reload the inventory page. The names of any equipment skipped will also be hidden, while processed equipment will have the action taken to them shown next to their names. This lets you easily see what the script has done. I tested this on Chromium 55 and I think it works fine. As a precaution, you should lock any valuable equipment. If you rename your Peerless Charged Robe to something like "Crude Pizza" and leave it unlocked, it will treat it as trash and bazaar it. Edit: Welp, fixed a slight mistake that causes code to run when it shouldn't. This post has been edited by LOL50015: May 9 2017, 19:55
|
|
|
|
|
 |
|
May 12 2017, 15:18
|
Usagi =
Group: Gold Star Club
Posts: 2,923
Joined: 29-October 13

|
CODE java script: ((function() {
var tab = document.querySelector(".cfbs > .fd4 > div");
if (!tab || tab.textContent != "Equipped") { console.log("Go to Repair Page!"); return; }
var url = window.location.protocol + "//" + window.location.hostname; var processing = true; var queue = 0; var msg = "";
var mats_needed = document.querySelectorAll("#rightpane span"); var split;
var mat_name = []; var mat_need = []; var mat_have = []; var mat_id = [];
for (var i = 0; i < mats_needed.length; i++) { split = mats_needed[i].textContent.split("x ");
mat_name.push(split[1]); mat_need.push(split[0]); mat_have.push(0); }
if (mat_name.length === 0) { alert("No Repairs Needed!"); return; }
var x = new XMLHttpRequest(); x.open("GET", url + "/?s=Bazaar&ss=is&filter=ma", true); x.onreadystatechange = (function() { if (x.readyState == 4) { if (x.status == 200) { process(x.responseText); } else { alert("Error Retrieving Bazaar Page!") } } }); x.send(null);
function process(htmlStr) { var parser = new DOMParser(); var doc = parser.parseFromString(htmlStr, "text/html");
var left_items = doc.querySelectorAll("#leftpane .iop, #leftpane .io"); var quantities = doc.querySelectorAll("#leftpane .iip, #leftpane .ii"); var count = 0; var index;
for (var i = 0; i < left_items.length && count < mat_name.length; i++) { index = mat_name.indexOf(left_items[i].textContent.trim()); if (index > -1) { mat_have[index] = quantities[i].textContent; count++; } }
var right_items = doc.querySelectorAll("#rightpane .iop > div, #rightpane .io > div"); count = 0;
for (var k = 0; k < right_items.length && count < mat_name.length; k++) { index = mat_name.indexOf(right_items[k].textContent.trim()); if (index > -1) { mat_id[index] = parseInt(right_items[k].id); count++; } }
for (var j = 0; j < mat_name.length; j++) { msg += "You have " + mat_have[j] + " " + mat_name[j] + "\n"; msg += "You need " + mat_need[j] + " " + mat_name[j] + "\n";
if (mat_need[j] - mat_have[j] > 0) { queue++; buy(mat_name[j], mat_need[j] - mat_have[j], mat_id[j]); }
msg += "\n"; }
processing = false; done(0); }
function buy(name, qty, id) { msg += "Bought " + qty + " " + name + " (ID: " + id + ")\n";
var x = new XMLHttpRequest(); x.onload = function() { done(1); }; x.open("POST", url + "/?s=Bazaar&ss=is&filter=ma", true); x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); x.send("select_mode=shop_pane&select_item=" + id + "&select_count=" + qty); }
function done(n) { if(n === 0 && queue == -1){ return; }
queue -= n;
if (queue === 0 && !processing) { alert("Done!\n\n" + msg); queue = -1; document.getElementById('repairall').submit(); } }
})())
This is a bookmarklet that buys materials from the bazaar if you don't have enough materials for repair before proceeding to repair your equipped gear. To use, navigate to the equipped tab of your repair page and click on the bookmarklet. After a while, a dialog box will pop up to tell you what you have, what you need and what it had bought, closing it will refresh the page with your gear fully repaired. Ideally, you would want to salvage all your junk equipment first before using this script. It works with all kinds of gear and repair materials, even those introduced in the future. It does not check if you have enough credits. If you don't have enough credits, it will buy as much as it could before failing to repair due to insufficient materials. I tested this on Chromium 55 and it seems to be working fine.
|
|
|
|
|
 |
|
May 12 2017, 21:52
|
sickentide
Group: Catgirl Camarilla
Posts: 1,355
Joined: 31-August 10

|
here is a little ui enhancement script:
HVCleanUI.1.2.2.user.js.zip ( 3.15k )
Number of downloads: 145key features: - effect durations with stacks indicated by duration box border thickness
- quickbar extender for gem, skills, spells and items
- cooldowns, just like the script below, so you should only use one of the two
- background colour changed according to alert conditions: spark, low vitals, channelling etc.
- buffs moved to above monsters
- fixes display of monster effects when there's six or more of them
- skip to next round with option to stop on battle end or equipment drop
- 0.85 ready
-------------------- thanks to FiniteA for providing HV Keybinds 2.5.0, here it is with some updates and extensions. oh and it has a hoverplay function now too
HVKeybindsHover.2.5.2.user.js.zip ( 3.13k )
Number of downloads: 133doublepluscompliant version for the paranoid
HVKeybindsHover.2.5.2.paranoia.user.js.zip ( 2.87k )
Number of downloads: 34-------------------- the cooldown script on the wiki sometimes erroneously reduces numbers, so i wrote a thing that should work flawlessly, including ignoring of item use and persistence between rounds CODE // ==UserScript== // @name HV Cooldowns // @namespace hvcooldown // @version 1.2 // @description Cooldowns on the quickbar // @match *://*.hentaiverse.org/* // @grant none // ==/UserScript==
var cdTopAdjust = 8, cdFontSize = 200; // set to match font
if ( !(log = document.getElementById('textlog').firstChild) ) return;
function UpdateCooldowns () { if ( document.querySelector('img[src$="finishbattle.png"]') ) { localStorage.removeItem('HVcooldowns'); return; } var log = document.getElementById('textlog').innerHTML, cooldowns = JSON.parse(localStorage.HVcooldowns || '{ "turn":"0" }'); if ( lastAction = log.match(/(You hit|You crit|You use|You cast|Arcane Blow|You miss|evades your attack|parries your attack)[^\<]*/) ) { if ( !/use\s*\w* (Gem|Draught|Potion|Elixir|Drink|Infusion|Scroll|Vase|Bubble)/.test(lastAction[0]) ) { cooldowns['turn']++; if ( use = lastAction[0].match(/(cast|use) ([\w\s\-]+)/) ) cooldowns[use[2]] = cooldowns['turn']; }} localStorage.HVcooldowns = JSON.stringify(cooldowns); DisplayCooldowns(); }
function DisplayCooldowns () { var cooldowns = JSON.parse(localStorage.HVcooldowns || '{ "turn":"0" }'), buttons = document.querySelectorAll('.btqs[onmouseover]:not([onclick])'), n = buttons.length; while ( n-- > 0 ) if ( (info = buttons[n].getAttribute('onmouseover').match(/\('([\w\s\-]+)'.*, (\d+)\)/)) && (used = cooldowns[info[1]]) && (cooldown = info[2]-cooldowns['turn']+parseInt(used)) > 0 ) { var div = buttons[n].appendChild(document.createElement('div')); div.className = 'cooldown'; div.innerHTML = cooldown; }}
var obs = new MutationObserver(UpdateCooldowns); obs.observe(log, {childList: true}); document.head.appendChild(document.createElement('style')).innerHTML = '.cooldown { width: 37px; margin-top: ' + cdTopAdjust + 'px; position: relative; z-index: 3; color: black; font-size: ' + cdFontSize + '%; font-weight: bold; }'; DisplayCooldowns(); This post has been edited by sickentide: Jun 28 2017, 13:05
|
|
|
|
|
 |
|
May 12 2017, 22:30
|
Cleavs
Group: Gold Star Club
Posts: 24,322
Joined: 18-January 07

|
QUOTE(sickentide @ May 12 2017, 21:52)  skip to next round unless there is an equipment drop
this seems an excellent idea.
|
|
|
|
May 13 2017, 18:03
|
manga522
Group: Gold Star Club
Posts: 517
Joined: 2-January 17

|
how to add weaken spell into Reloader mod_1.3.3b defaultAction list ? please help i want to cast weaken with hover up monster QUOTE defaultAction: 0, // Change the default action to a T1 spell // | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | // | No Change | Fiery Blast | Freeze | Shockblast | Gale | Smite | Corruption | Weaken |
This post has been edited by manga522: May 13 2017, 18:04
|
|
|
|
|
 |
|
May 13 2017, 18:21
|
sickentide
Group: Catgirl Camarilla
Posts: 1,355
Joined: 31-August 10

|
QUOTE(manga522 @ May 13 2017, 18:03)  how to add weaken spell into Reloader mod_1.3.3b defaultAction list ?
please help i want to cast weaken with hover up monster
this should do it: look for the section called DEFAULT ACTION and replace it with this: CODE /* ============ DEFAULT ACTION ============ */ function changeDefault(id) { var caller = document.getElementById(id.toString()); window.battle.lock_action(caller, 1, 'magic', id); window.battle.set_hostile_subattack(id); } switch (settings.defaultAction) { //Default (Attack) case 0: break; case 1: //Fiery Blast changeDefault(111); break; case 2: //Freeze changeDefault(121); break; case 3: //Shockblast changeDefault(131); break; case 4: //Gale changeDefault(141); break; case 5: //Smite changeDefault(151); break; case 6: //Corruption changeDefault(161); break; case 7: //Weaken changeDefault(212); break; } /* ========== DEFAULT ACTION END ========== */
|
|
|
|
|
 |
|
|
 |
|
May 14 2017, 15:16
|
manga522
Group: Gold Star Club
Posts: 517
Joined: 2-January 17

|
QUOTE(sickentide @ May 13 2017, 18:21)  this should do it: look for the section called DEFAULT ACTION and replace it with this: CODE /* ============ DEFAULT ACTION ============ */ function changeDefault(id) { var caller = document.getElementById(id.toString()); window.battle.lock_action(caller, 1, 'magic', id); window.battle.set_hostile_subattack(id); } switch (settings.defaultAction) { //Default (Attack) case 0: break; case 1: //Fiery Blast changeDefault(111); break; case 2: //Freeze changeDefault(121); break; case 3: //Shockblast changeDefault(131); break; case 4: //Gale changeDefault(141); break; case 5: //Smite changeDefault(151); break; case 6: //Corruption changeDefault(161); break; case 7: //Weaken changeDefault(212); break; } /* ========== DEFAULT ACTION END ========== */ really appreciate for your help (IMG:[ invalid] style_emoticons/default/happy.gif) could you please post the full list of spell number and melee skill ? case 7 “weaken“ can i change it by myself case 8 case 9 ... and melee skill ?
|
|
|
|
|
 |
|
May 14 2017, 15:37
|
sickentide
Group: Catgirl Camarilla
Posts: 1,355
Joined: 31-August 10

|
QUOTE(manga522 @ May 14 2017, 15:16)  could you please post the full list of spell number and melee skill ?
in battle, open your skillbook, right-click on the skill/spell you want and Inspect Element. this will show you something like this: CODE <div id="161" class="btsd" onclick="battle.lock_action(this, 1, 'magic', 161); battle.set_hostile_subattack(161)" onmouseover="battle.set_infopane_spell('Corruption', 'Dark damage.', '1230', 51, 0, 0)" onmouseout="battle.clear_infopane()"> <div class="fd2" style="width:90px; height:13px"> <div style="text-align:left; color:#5C0D11; font-family:Arial; font-size:10pt; font-weight:normal; font-style:normal; margin-top:-1px">Corruption</div> </div> </div> the id at the beginning is the number you want QUOTE(manga522 @ May 14 2017, 15:16)  case 7 “weaken“ can i change it by myself case 8 case 9 ... and melee skill ?
you can add any number of cases for spells. should work for skills too but i haven't tested that
|
|
|
|
|
 |
|
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:
|
 |
 |
 |
|