|
|
|
HV Script Thread, Discuss your creations. Includes guidelines and infos for script creation (2020-02-28 upd) |
|
Jul 2 2017, 01:25
|
AnonDarkMage7
Group: Gold Star Club
Posts: 925
Joined: 1-June 12
|
Anyone having a problem with the now monsterbation script where you have to hold shift at the start of a new round to get the hover to work?I have startRoundWithHover = true but it keeps turning off at the start of a new round and i need to press shift for it to start.
|
|
|
Jul 2 2017, 01:32
|
sickentide
Group: Catgirl Camarilla
Posts: 1,355
Joined: 31-August 10
|
QUOTE(abc12345678901 @ Jul 2 2017, 01:25) Anyone having a problem with the now monsterbation script where you have to hold shift at the start of a new round to get the hover to work?I have startRoundWithHover = true but it keeps turning off at the start of a new round and i need to press shift for it to start.
i don't have this problem but i made a small change that may help
HentaiverseMonsterbation.1.1.2.user.js.zip ( 8.43k )
Number of downloads: 191
|
|
|
|
|
|
|
|
|
Jul 2 2017, 05:07
|
zen_zen
Group: Gold Star Club
Posts: 2,177
Joined: 20-June 11
|
QUOTE(sickentide @ Jul 1 2017, 16:32) i don't have this problem but i made a small change that may help
HentaiverseMonsterbation.1.1.2.user.js.zip ( 8.43k )
Number of downloads: 191This iteration is working well for the most part but I am encountering some glitches... I played the 30 round Arena this afternoon - the popup failed to disappear and proceed to the next round about 5 times, I needed to press the Enter key to advance to the next round. The game froze once, requiring shutting down HV and restarting from the News page. I have the draughts, potions and elixirs of all 3 potion class slotted but only the 3 H, space and 2 M are being shown during battle. This isn't much of an issue since they are all available from the Menu, but the convenience of single click of the mouse to access them is definitely a plus. I am using Iron Version 52.0.2750.0 as my browser when playing HV. Thanks,
|
|
|
|
|
|
Jul 2 2017, 07:24
|
piyin
Group: Gold Star Club
Posts: 10,797
Joined: 4-February 09
|
QUOTE(hc br @ Jul 1 2017, 15:16) HV Item Manager 1.6.0
CODE // ==UserScript== // @name HV Item Manager // @namespace hentaiverse.org // @description Bazaar, Moogle, Filter and Manage your items // @include *://*hentaiverse.org/?s=Character&ss=in* // @include *://*hentaiverse.org/?s=Bazaar&ss=es* // @include *://*hentaiverse.org/?s=Bazaar&ss=is* // @include *://*hentaiverse.org/?s=Bazaar&ss=ss // @include *://*hentaiverse.org/?s=Battle&ss=iw* // @include *://*hentaiverse.org/?s=Forge* // @start-at document-end // @version 1.6.0 // @author holy_demon, Superlatanium // ==/UserScript==
HV_Item_Manager_1.6.0.user.js.txt ( 42.63k )
Number of downloads: 1863 Thanks! but still some issues with salvaging and bazzaring... SL said that he was doing some changes in the script to fix all this issues; and he will only post the end result after all the issues has been fixed... hope to see it soon... im diying to make a shop update.
|
|
|
|
|
|
Jul 2 2017, 09:01
|
Superlatanium
Group: Gold Star Club
Posts: 7,577
Joined: 27-November 13
|
Ok, try this
HV_Item_Manager_1.6.1.user.js.txt ( 58.88k )
Number of downloads: 493- Hardcoded "Golden Lottery Ticket" id into possible inventory items (should fix inventory refreshing)
- Bazaaring POST method fixed
- Default display method is now thin and tall, thanks to hc br ("var wide = true" at the top if you prefer the old layout)
- The Percentile Ranges string can now be output as an option. Use code "%info" to display all positive values (0% and up), use code "%badinfo" to show negative values (for Mag and lower; probably not recommended) (if anyone wants to extend this somehow feel free)
This post has been edited by Superlatanium: Jul 2 2017, 12:09
|
|
|
|
|
|
Jul 2 2017, 09:20
|
hc br
Group: Catgirl Camarilla
Posts: 3,683
Joined: 18-October 15
|
QUOTE(Superlatanium @ Jul 2 2017, 15:01) Ok, try this [attachmentid=105107] - Hardcoded "Golden Lottery Ticket" id into possible inventory items (should fix inventory refreshing)
- Bazaaring POST method fixed
- Default display method is now thin and tall, thanks to hc br ("var wide = true" at the top if you prefer the old layout)
- The Percentile Ranges string can now be output as an option. Use code "%info" to display all positive values (0% and up), use code "%badinfo" to show negative values (for Mag and lower; probably not recommended)
BEFORE CODE addCSSRule(".item_modal {position: absolute; display:block; border:inherit; padding:2px; background:inherit; left: 144px; top: 0px; width:280px; z-index:inherit; font: bolder normal 16px 'Arial';}"); AFTER CODE addCSSRule(".item_modal {position: absolute; display:block; border:inherit; padding:2px; background:inherit; left: 75px; top: 0px; width:280px; z-index:inherit; font: bolder normal 16px 'Arial';}");
|
|
|
|
|
|
Jul 2 2017, 09:38
|
hc br
Group: Catgirl Camarilla
Posts: 3,683
Joined: 18-October 15
|
[attachembed=105109] I don't know how to fix this so I DEL CODE // @include *://*hentaiverse.org/?s=Bazaar&ss=mm* This post has been edited by hc br: Jul 2 2017, 10:09
|
|
|
Jul 2 2017, 09:42
|
Superlatanium
Group: Gold Star Club
Posts: 7,577
Joined: 27-November 13
|
Didn't see that, thanks
HV_Item_Manager_1.6.1.user.js.txt ( 58.88k )
Number of downloads: 493This post has been edited by Superlatanium: Jul 2 2017, 12:09
|
|
|
Jul 2 2017, 10:07
|
hc br
Group: Catgirl Camarilla
Posts: 3,683
Joined: 18-October 15
|
QUOTE(Superlatanium @ Jul 2 2017, 15:42) Didn't see that, thanks
Line 699 CODE addCSSRule(".itemlist>tbody>tr>td:last-child>input:nth-child(1) {margin-left:20px}"); [attachembed=105111] [attachembed=105112] Line 699 CODE addCSSRule(".itemlist>tbody>tr>td:last-child>input:nth-child(1) {margin-left:2px}"); [attachembed=105113] [attachembed=105114] This post has been edited by hc br: Jul 2 2017, 10:09
|
|
|
Jul 2 2017, 11:36
|
hc br
Group: Catgirl Camarilla
Posts: 3,683
Joined: 18-October 15
|
Line 893 BEFORE CODE createModalDialog("Shrine this item (Type a number for Reward 1=1H 2=2H 3=Staff 4=Shield 5=Cloth 6=Light 7=Heavy)", AFTER CODE createModalDialog("  Shrine this item (Type the number for Reward)     0→to use Artifacts 1=1H 2=2H 3=Staff 4=Shield 5=Cloth 6=Light 7=Heavy",
|
|
|
|
|
|
Jul 2 2017, 11:39
|
Noni
Group: Catgirl Camarilla
Posts: 12,957
Joined: 19-February 16
|
QUOTE(sickentide @ Jul 1 2017, 23:27) you can now assign a second hover action to use while holding shift. this should help the flow of imperil mages
HentaiverseMonsterbation.1.1.2.user.js.zip ( 8.43k )
Number of downloads: 191It's a nice feature. It doesn't solve the PFUDOR-fest problem though... round starts with holding shift and spamming Imperil, thus using far more imperil then needed, thus running out of mana. Maybe it's possible to move the mouse pointer away from the monsters upon emergency? That would totally solve the imperil problem.
|
|
|
|
|
|
Jul 2 2017, 12:47
|
SleepDealer
Group: Gold Star Club
Posts: 3,020
Joined: 6-February 12
|
QUOTE(End Of All Hope @ Jul 2 2017, 03:13) To anyone guessing, add: CODE Bind(KEY_1, Strongest([TargetMonster(1), Cast('Orbital Friendship Cannon')])); Bind(KEY_2, Strongest([TargetMonster(2), Cast('Orbital Friendship Cannon')])); Bind(KEY_3, Strongest([TargetMonster(3), Cast('Orbital Friendship Cannon')])); Bind(KEY_4, Strongest([TargetMonster(4), Cast('Orbital Friendship Cannon')])); Bind(KEY_5, Strongest([TargetMonster(5), Cast('Orbital Friendship Cannon')])); Bind(KEY_6, Strongest([TargetMonster(6), Cast('Orbital Friendship Cannon')])); Bind(KEY_7, Strongest([TargetMonster(7), Cast('Orbital Friendship Cannon')])); Bind(KEY_8, Strongest([TargetMonster(8), Cast('Orbital Friendship Cannon')])); Bind(KEY_9, Strongest([TargetMonster(9), Cast('Orbital Friendship Cannon')])); Bind(KEY_0, Strongest([TargetMonster(0), Cast('Orbital Friendship Cannon')]));
to the keybinds part Thanks! I didn`t know about that setting with target. Very good then. Imperil mage is back, wohoo (IMG:[ invalid] style_emoticons/default/smile.gif) This post has been edited by SleepDealer: Jul 2 2017, 13:10
|
|
|
|
|
|
Jul 2 2017, 15:08
|
Sapo84
Group: Gold Star Club
Posts: 3,332
Joined: 14-June 09
|
QUOTE(DJNoni @ Jul 2 2017, 11:39) Maybe it's possible to move the mouse pointer away from the monsters upon emergency? That would totally solve the imperil problem.
It's not possible to move the mouse away with javascript.
|
|
|
|
|
|
Jul 2 2017, 16:14
|
hc br
Group: Catgirl Camarilla
Posts: 3,683
Joined: 18-October 15
|
QUOTE(Superlatanium @ Jul 2 2017, 15:01) Ok, try this - Hardcoded "Golden Lottery Ticket" id into possible inventory items (should fix inventory refreshing)
- Bazaaring POST method fixed
- Default display method is now thin and tall, thanks to hc br ("var wide = true" at the top if you prefer the old layout)
- The Percentile Ranges string can now be output as an option. Use code "%info" to display all positive values (0% and up), use code "%badinfo" to show negative values (for Mag and lower; probably not recommended) (if anyone wants to extend this somehow feel free)
Line 1232 CODE ['Int', 5.82, 6.93, ['cotton pants']], ['Wis', 5.82, 6.93, ['cotton pants']], ['Agi', 4.47, 5.28, ['cotton pants']], ['Evd', 3.78, 4.4, ['cotton pants']], ['Pmit', 4.33, 4.85, ['cotton pants'], ['protection']], to CODE ['Int', 5.31, 6.33, ['cotton cap']], ['Wis', 5.31, 6.33, ['cotton cap']], ['Agi', 4.08, 4.83, ['cotton cap']], ['Evd', 3.45, 4.03, ['cotton cap']], ['Pmit', 3.95, 4.43, ['cotton cap'], ['protection']], ['Int', 6.3, 7.53, ['cotton robe']], ['Wis', 6.3, 7.53, ['cotton robe']], ['Agi', 4.83, 5.73, ['cotton robe']], ['Evd', 4.11, 4.78, ['cotton robe']], ['Pmit', 4.71, 5.27, ['cotton robe'], ['protection']], ['Int', 4.8, 5.73, ['cotton gloves']], ['Wis', 4.8, 5.73, ['cotton gloves']], ['Agi', 3.69, 4.38, ['cotton gloves']], ['Evd', 3.13, 3.65, ['cotton gloves']], ['Pmit', 3.57, 4.01, ['cotton gloves'], ['protection']], ['Int', 5.82, 6.93, ['cotton pants']], ['Wis', 5.82, 6.93, ['cotton pants']], ['Agi', 4.47, 5.28, ['cotton pants']], ['Evd', 3.78, 4.4, ['cotton pants']], ['Pmit', 4.33, 4.85, ['cotton pants'], ['protection']], ['Int', 4.32, 5.13, ['cotton shoes']], ['Wis', 4.32, 5.13, ['cotton shoes']], ['Agi', 3.33, 3.93, ['cotton shoes']], ['Evd', 2.8, 3.28, ['cotton shoes']], ['Pmit', 3.19, 3.59, ['cotton shoes'], ['protection']], Percentile Ranges 1.2.1CODE // ==UserScript== // @name Percentile Ranges // @namespace E-Hentai // @author Superlatanium // @version 1.2.1 // @include https://hentaiverse.org/pages/showequip.php* // @include http://hentaiverse.org/pages/showequip.php* // @include https://alt.hentaiverse.org/pages/showequip.php* // @include https://hentaiverse.org/equip/* // @include http://hentaiverse.org/equip/* // @include https://alt.hentaiverse.org/equip/* // ==/UserScript==
//Updated Jun 28 2017
document.body.appendChild(document.createElement('br')); var div = document.body.appendChild(document.createElement('div')); div.textContent = 'Checking...'; var item = parseEquip(document.body, {}); div.textContent = item.info + (item.badinfo ? ' ' + item.badinfo : '');
function parseEquip(data, item){ var ranges = [ ['ADB', 67.83, 75.92, ['axe', 'slaughter']], ['ADB', 54.16, 59.87, ['axe'], ['slaughter']], ['ADB', 59.21, 67.72, ['club', 'slaughter']], //https://hentaiverse.org/pages/showequip.php?eid=115176184&key=487667fdfa ['ADB', 45.36, 53.04, ['club'], ['slaughter']], ['ADB', 42.8, 51.33, ['rapier', 'slaughter']], ['ADB', 31.95, 39.38, ['rapier'], ['slaughter']], ['Parry', 23.81, 26.94, ['rapier', 'nimble']], ['Parry', 16.3, 18.89, ['rapier'], ['nimble']], ['ADB', 53.41, 61.58, ['shortsword', 'slaughter']], ['ADB', 41.26, 47.92, ['shortsword'], ['slaughter']], ['ADB', 39.84, 46.21, ['wakizashi', 'slaughter']], ['ADB', 30.49, 35.11, ['wakizashi'], ['slaughter']], ['Parry', 27.67, 30.53, ['wakizashi', 'nimble']], ['Parry', 19.97, 22.48, ['wakizashi'], ['nimble']], ['ADB', 73.29, 82.07, ['estoc', 'slaughter']], ['ADB', 58.13, 64.99, ['estoc'], ['slaughter']], ['ADB', 86.45, 98.47, ['longsword', 'slaughter']], ['ADB', 68.94, 78.66, ['longsword'], ['slaughter']], ['ADB', 73.38, 82.07, ['mace', 'slaughter']], ['ADB', 58.09, 64.99, ['mace'], ['slaughter']], ['ADB', 72.61, 82.07, ['katana', 'slaughter']], ['ADB', 57.39, 64.99, ['katana'], ['slaughter']], ['MDB', 46.07, 52.2, ['katalox', 'destruction']], ['MDB', 28.09, 32.4, ['katalox'], ['destruction']], ['MDB', 45.95, 51.71, ['redwood', 'destruction']], ['MDB', 27.76, 31.99, ['redwood'], ['destruction']], ['MDB', 44.93, 51.71, ['willow', 'destruction']], //https://hentaiverse.org/pages/showequip.php?eid=126921600&key=b796b51c3d ['MDB', 27.76, 31.99, ['willow'], ['destruction']], ['MDB', 27.94, 31.99, ['oak']], ['EDB', 33.92, 37.84, ['hallowed katalox', 'heimdall']], ['EDB', 19.05, 21.76, ['hallowed katalox'], ['heimdall']], ['EDB', 33.92, 37.84, ['demonic katalox', 'fenrir']], ['EDB', 19.05, 21.76, ['demonic katalox'], ['fenrir']], ['EDB', 38.11, 42.68, ['hallowed oak', 'heimdall']], ['EDB', 23.01, 26.6, ['hallowed oak'], ['heimdall']], ['EDB', 34.42, 37.4, ['tempestuous redwood', 'freyr']], //https://hentaiverse.org/pages/showequip.php?eid=113172450&key=5a980f3474 ['EDB', 18.97, 21.78, ['tempestuous redwood'], ['freyr']], //https://hentaiverse.org/pages/showequip.php?eid=128883702&key=7823a528d1 ['EDB', 34.42, 37.4, ['shocking redwood', 'mjolnir']], ['EDB', 18.97, 21.78, ['shocking redwood'], ['mjolnir']], ['EDB', 34.42, 37.4, ['arctic redwood', 'niflheim']], ['EDB', 18.97, 21.78, ['arctic redwood'], ['niflheim']], ['EDB', 34.42, 37.4, ['fiery redwood', 'surtr']], ['EDB', 18.97, 21.78, ['fiery redwood'], ['surtr']], ['EDB', 16.41, 18.56, ['tempestuous willow']], ['EDB', 16.41, 18.56, ['shocking willow']], ['EDB', 22.92, 26.6, ['demonic willow']], ['EDB', 10.28, 11.33, ['fiery willow']], ['EDB', 10.28, 11.33, ['arctic willow']], ['EDB', 10.28, 11.33, ['hallowed willow']], ['Int', 6.12, 7.22, ['katalox']], ['Wis', 4.13, 4.82, ['katalox']], ['Int', 5.46, 6.33, ['redwood']], ['Wis', 5.46, 6.33, ['redwood']], ['Int', 4.13, 4.83, ['willow']], ['Wis', 6.12, 7.23, ['willow']], ['Int', 4.14, 4.83, ['oak']], ['Wis', 6, 7.23, ['oak']], ['BLK', 33.43, 37.52, ['buckler', 'barrier']], //https://hentaiverse.org/pages/showequip.php?eid=115077551&key=44ca1fa116, http://hentaiverse.org/pages/showequip.php?eid=115253588&key=3a324ad469 ['BLK', 27.67, 31.03, ['buckler'], ['barrier']], ['BLK', 32.63, 36.02, ['kite']], ['BLK', 35.64, 38.52, [' force']], //reinforced ['EDB', 15.12, 16.97, ['phase cap']], ['Int', 6, 7.08, ['phase cap']], ['Wis', 6, 7.08, ['phase cap']], ['Agi', 5.07, 6.03, ['phase cap']], ['Evd', 4.7, 5.28, ['phase cap']], ['Pmit', 3.01, 3.38, ['phase cap']], ['EDB', 18.02, 20.18, ['phase robe']], ['Int', 7.14, 8.43, ['phase robe']], ['Wis', 7.14, 8.43, ['phase robe']], ['Agi', 6.03, 7.17, ['phase robe']], ['Evd', 5.6, 6.28, ['phase robe']], ['Pmit', 3.57, 4.01, ['phase robe']], ['EDB', 13.66, 15.36, ['phase gloves']], ['Int', 5.43, 6.42, ['phase gloves']], ['Wis', 5.43, 6.42, ['phase gloves']], ['Agi', 4.59, 5.46, ['phase gloves']], ['Evd', 4.25, 4.78, ['phase gloves']], ['Pmit', 2.73, 3.07, ['phase gloves']], ['EDB', 16.58, 18.58, ['phase pants']], ['Int', 6.57, 7.77, ['phase pants']], ['Wis', 6.57, 7.77, ['phase pants']], ['Agi', 5.55, 6.6, ['phase pants']], ['Evd', 5.15, 5.78, ['phase pants']], ['Pmit', 3.28, 3.7, ['phase pants']], ['EDB', 12.23, 13.75, ['phase shoes']], ['Int', 4.86, 5.73, ['phase shoes']], ['Wis', 4.86, 5.73, ['phase shoes']], ['Agi', 4.11, 4.89, ['phase shoes']], ['Evd', 3.8, 4.28, ['phase shoes']], ['Pmit', 2.44, 2.75, ['phase shoes']], ['Prof', 7.38, 8.29, ['cotton cap']], ['Prof', 8.79, 9.89, ['cotton robe']], ['Prof', 6.68, 7.5, ['cotton gloves']], ['Prof', 8.08, 9.09, ['cotton pants']], ['Prof', 5.97, 6.7, ['cotton shoes']], ['Int', 5.31, 6.33, ['cotton cap']], ['Wis', 5.31, 6.33, ['cotton cap']], ['Agi', 4.08, 4.83, ['cotton cap']], ['Evd', 3.45, 4.03, ['cotton cap']], ['Pmit', 3.95, 4.43, ['cotton cap'], ['protection']], ['Int', 6.3, 7.53, ['cotton robe']], ['Wis', 6.3, 7.53, ['cotton robe']], ['Agi', 4.83, 5.73, ['cotton robe']], ['Evd', 4.11, 4.78, ['cotton robe']], ['Pmit', 4.71, 5.27, ['cotton robe'], ['protection']], ['Int', 4.8, 5.73, ['cotton gloves']], ['Wis', 4.8, 5.73, ['cotton gloves']], ['Agi', 3.69, 4.38, ['cotton gloves']], ['Evd', 3.13, 3.65, ['cotton gloves']], ['Pmit', 3.57, 4.01, ['cotton gloves'], ['protection']], ['Int', 5.82, 6.93, ['cotton pants']], ['Wis', 5.82, 6.93, ['cotton pants']], ['Agi', 4.47, 5.28, ['cotton pants']], ['Evd', 3.78, 4.4, ['cotton pants']], ['Pmit', 4.33, 4.85, ['cotton pants'], ['protection']], ['Int', 4.32, 5.13, ['cotton shoes']], ['Wis', 4.32, 5.13, ['cotton shoes']], ['Agi', 3.33, 3.93, ['cotton shoes']], ['Evd', 2.8, 3.28, ['cotton shoes']], ['Pmit', 3.19, 3.59, ['cotton shoes'], ['protection']], ['ADB', 9.37, 11.25, ['shade helmet']], //https://hentaiverse.org/pages/showequip.php?eid=106210856&key=4fbb85f2ae ['ADB', 11.09, 13.39, ['shade breastplate']], ['ADB', 8.53, 10.32, ['shade gauntlets']], ['ADB', 10.23, 12.28, ['shade leggings']], //https://hentaiverse.org/pages/showequip.php?eid=107182535&key=1051411ae1 ['ADB', 7.67, 9.2, ['shade boots']], //https://hentaiverse.org/pages/showequip.php?eid=95898375&key=bc1d23301c ['ADB', 21.89, 25.73, ['power helmet', 'slaughter']], ['ADB', 13.18, 18.04, ['power helmet'], ['slaughter']], ['ADB', 25.4, 30.68, ['power armor', 'slaughter']], ['ADB', 15.42, 21.46, ['power armor'], ['slaughter']], ['ADB', 20.02, 23.25, ['power gauntlets', 'slaughter']], ['ADB', 11.82, 16.33, ['power gauntlets'], ['slaughter']], ['ADB', 23.94, 28.2, ['power leggings', 'slaughter']], ['ADB', 14.22, 19.75, ['power leggings'], ['slaughter']], ['ADB', 17.3, 20.77, ['power boots', 'slaughter']], ['ADB', 11, 14.63, ['power boots'], ['slaughter']] //https://forums.e-hentai.org/index.php?s=&showtopic=194413&view=findpost&p=4878569 ]; function getName(body){ var nameDiv; if (typeof body.children[1] == 'undefined') return 'No such item'; var showequip = body.children[1]; if (showequip.children.length == 3) nameDiv = showequip.children[0].children[0]; else nameDiv = showequip.children[1].children[0]; var name = nameDiv.children[0].textContent; if (nameDiv.children.length == 3) name += ' ' + nameDiv.children[2].textContent; return name; }
item.name = getName(data); if (item.name == 'No such item'){ item.level = 'No such item'; return item; } var dataText = data.innerHTML; if (/Soulbound/.test(dataText)) item.level = 'Soulbound'; else item.level = dataText.match(/Level\s([^\s]+)/)[1]; item.info = item.level; if (/(Shield\s)|(Buckler)/.test(item.name)){ item.info += ','; if (/Strength/.test(dataText)) item.info += ' Str'; if (/Dexterity/.test(dataText)) item.info += ' Dex'; if (/Endurance/.test(dataText)) item.info += ' End'; if (/Agility/.test(dataText)) item.info += ' Agi'; } item.badinfo = ''; function getPxp0(pxpN, n){ var pxp0Est = 300; for (var i = 1; i < 15; i++){ var sumPxpNextLevel = 1000*(Math.pow(1+pxp0Est/1000, n + 1) - 1); var sumPxpThisLevel = 1000*(Math.pow(1+pxp0Est/1000, n) - 1); var estimate = sumPxpNextLevel - sumPxpThisLevel; if (estimate > pxpN) pxp0Est -= 300 / Math.pow(2, i); else pxp0Est += 300 / Math.pow(2, i); } return Math.round(pxp0Est); } var pxp0; var potencyStr = dataText.match(/Potency\sTier:\s([^\)]+\))/)[1]; if (potencyStr == '10 (MAX)'){ item.info += ', IW 10'; if (/Peerless/.test(item.name)) pxp0 = 400; else if (/Legendary/.test(item.name)) pxp0 = 357; else if (/Magnificent/.test(item.name)) pxp0 = 326; else pxp0 = 280; //too low to matter } else if (potencyStr[0] != '0'){ pxp0 = getPxp0(parseInt(potencyStr.match(/\d+(?=\))/)[0]), parseInt(potencyStr[0])); item.info += ', IW ' + potencyStr[0]; } else pxp0 = parseInt(potencyStr.match(/(\d+)\)/)[1]); // statNames: [abbreviated name, forging name, html name, base multiplier, level scaling factor] var statNames = [['ADB', 'Physical Damage', 'Attack Damage', 0.0854, 50/3], ['MDB', 'Magical Damage', 'Magic Damage', 0.082969, 50/3 ], ['Pmit', 'Physical Defense', 'Physical Mitigation', 0.021, 2000], ['Mmit', 'Magical Defense', 'Magical Mitigation', 0.0201, 2000], ['BLK', 'Block Chance', 'Block Chance', 0.0998, 2000], ['Parry', 'Parry Chance', 'Parry Chance', 0.0894, 2000], ['Prof', 'Elemental Proficiency', 'Elemental', 0.0306, 250/7], ['Prof', 'Divine Proficiency', 'Divine', 0.0306, 250/7], ['Prof', 'Forbidden Proficiency', 'Forbidden', 0.0306, 250/7], ['Str', 'Strength Bonus', 'Strength', 0.03, 250/7], ['Dex', 'Dexterity Bonus', 'Dexterity', 0.03, 250/7], ['End', 'Endurance Bonus', 'Endurance', 0.03, 250/7], ['Agi', 'Agility Bonus', 'Agility', 0.03, 250/7], ['Int', 'Intelligence Bonus', 'Intelligence', 0.03, 250/7], ['Wis', 'Wisdom Bonus', 'Wisdom', 0.03, 250/7], ['Evd', 'Evade Chance', 'Evade Chance', 0.025, 2000], ['EDB', 'Holy Spell Damage', 'Holy', 0.0804, 200], ['EDB', 'Dark Spell Damage', 'Dark', 0.0804, 200], ['EDB', 'Wind Spell Damage', 'Wind', 0.0804, 200], ['EDB', 'Elec Spell Damage', 'Elec', 0.0804, 200], ['EDB', 'Cold Spell Damage', 'Cold', 0.0804, 200], ['EDB', 'Fire Spell Damage', 'Fire', 0.0804, 200]]; var maxUpgrade = 0; item.forging = {}; [].forEach.call(data.querySelectorAll('#eu > span'), function(span){ var re = span.textContent.match(/(.+)\sLv\.(\d+)/); var thisUpgrade = parseInt(re[2]); if (maxUpgrade < thisUpgrade) maxUpgrade = thisUpgrade; var htmlNameObj = forgeNameToHtmlName(re[1]); if (htmlNameObj) item.forging[htmlNameObj.htmlName] = {amount:thisUpgrade, baseMultiplier:htmlNameObj.baseMultiplier, scalingFactor:htmlNameObj.scalingFactor}; }); function reverseForgeMultiplierDamage(forgedBase, forgeLevelObj){ var qualityBonus = 0.01 * Math.round(100 * (pxp0 - 100)/25 * forgeLevelObj.baseMultiplier); // *(1 + item.level/forgeLevelObj.scalingFactor) var forgeCoeff = 1 + 0.278875 * Math.log(0.1 * forgeLevelObj.amount + 1); var unforgedBase = (forgedBase - qualityBonus) / forgeCoeff + qualityBonus; //alert('forgedBase ' + forgedBase + ' @ forged ' + forgeLevelObj.amount + ' is ' + unforgedBase + ' @ 0 , qualityBonus ' + qualityBonus); return unforgedBase; } function reverseForgeMultiplierPlain(forgedBase, forgeLevelObj){ var qualityBonus = 0.01 * Math.round(100 * (pxp0 - 100)/25 * forgeLevelObj.baseMultiplier); //*(1 + item.level/forgeLevelObj.scalingFactor) * var forgeCoeff = 1 + 0.2 * Math.log(0.1 * forgeLevelObj.amount + 1); var unforgedBase = (forgedBase - qualityBonus) / forgeCoeff + qualityBonus; //alert('forgedBase ' + forgedBase + ' @ forged ' + forgeLevelObj.amount + ' is ' + unforgedBase + ' @ 0 , qualityBonus ' + qualityBonus); return unforgedBase; } if (maxUpgrade > 0) item.info += ', forged ' + maxUpgrade; function forgeNameToHtmlName(forgeName){ var htmlNameObj; statNames.forEach(function(stats){ if (forgeName == stats[1]) htmlNameObj = {htmlName:stats[2], baseMultiplier:stats[3], scalingFactor:stats[4]}; }); return htmlNameObj; } var lower = item.name.toLowerCase(); if (/leather/.test(lower) || /\splate/.test(lower) || (/cotton/.test(lower) && (/protection/.test(lower) || /warding/.test(lower)))) return item; var htmlMagicTypes = ['Holy', 'Dark', 'Wind', 'Elec', 'Cold', 'Fire']; var htmlProfTypes = ['Divine', 'Forbidden', 'Elemental']; var staffPrefixes = {'Holy':'Hallowed', 'Dark':'Demonic', 'Wind':'Tempestuous', 'Elec':'Shocking', 'Cold':'Arctic', 'Fire':'Fiery'}; var equipStats = {}; function titleStrToBase(title){ return parseFloat(title.substr(6)); } [].forEach.call(data.querySelectorAll('div[title]'), function(div){ if (div.parentElement.parentElement.id == 'equip_extended'){ equipStats['Attack Damage'] = titleStrToBase(div.title) return; } var htmlName = div.childNodes[0].textContent; if (/\+/.test(htmlName)) // "Elec +" htmlName = htmlName.substr(0, htmlName.length - 2); if (htmlMagicTypes.indexOf(htmlName) != -1){ if (div.parentElement.children[0].textContent == 'Damage Mitigations') htmlName += ' Mit'; } equipStats[htmlName] = titleStrToBase(div.title) }); function abbrevNameToHtmlName(abbrevName){ var htmlName; if (abbrevName == 'Prof'){ //ambiguous/wrong for prof and EDB without adding these tests, so: Object.keys(equipStats).forEach(function(equipStatName){ if (htmlProfTypes.indexOf(equipStatName) != -1) htmlName = equipStatName; }); } else if (abbrevName == 'EDB'){ Object.keys(equipStats).forEach(function(equipStatName){ if (htmlMagicTypes.indexOf(equipStatName) != -1 && !/Staff/.test(item.name)) htmlName = equipStatName; if (htmlMagicTypes.indexOf(equipStatName) != -1 && /Staff/.test(item.name)) //For staff, continue on to list EDB of prefixed element only if (item.name.indexOf(staffPrefixes[equipStatName]) != -1) htmlName = equipStatName; }); } else { statNames.forEach(function(stats){ if (abbrevName == stats[0]){ htmlName = stats[2]; } }); } return htmlName; } var found = false; ranges.forEach(function(range){ if (!range[3].every(function(subName){ if (lower.indexOf(subName) != -1) return true; })) return; if (range[4] && lower.indexOf(range[4]) != -1) return; var abbrevName = range[0]; var htmlName = abbrevNameToHtmlName(abbrevName); if (!htmlName){ alert('no htmlname for ' + abbrevName); return; } var stat = equipStats[htmlName]; if (!stat){ alert('found no stat for ' + htmlName); return; } if (abbrevName == 'ADB' || abbrevName == 'MDB'){ if (item.forging[htmlName]) stat = reverseForgeMultiplierDamage(stat, item.forging[htmlName]); } else if (item.forging[htmlName]) stat = reverseForgeMultiplierPlain(stat, item.forging[htmlName]); if (abbrevName == 'ADB'){ var butcher = dataText.match(/Butcher\sLv.(\d)/); if (butcher) stat = stat / (1 + 0.02 * parseInt(butcher[1])) } else if (abbrevName == 'MDB') { var archmage = dataText.match(/Archmage\sLv.(\d)/); if (archmage) stat = stat / (1 + 0.02 * parseInt(archmage[1])); } if (!stat){ alert('didnt find a stat for ' + abbrevName); return; } found = true; var percentile = Math.round(100 * (stat - range[1]) / (range[2] - range[1])); var dontShowInAuction = [/Int/, /Wis/, /Agi/, /Evd/, /Pmit/]; if (percentile < 0) item.badinfo += ', ' + range[0] + ' ' + percentile + '%'; else if (typeof showSeller == 'undefined' || !showSeller || dontShowInAuction.every(function(re){ return !re.test(range[0]); })) item.info += ', ' + range[0] + ' ' + percentile + '%'; }); if (found === false && !/plate/.test(lower) && !/leather/.test(lower)) alert('No match for ' + lower); return item; } This post has been edited by hc br: Jul 2 2017, 16:25
|
|
|
|
|
|
Jul 2 2017, 16:37
|
piyin
Group: Gold Star Club
Posts: 10,797
Joined: 4-February 09
|
QUOTE(Superlatanium @ Jul 2 2017, 09:42) Didn't see that, thanks
HV_Item_Manager_1.6.1.user.js.txt ( 58.88k )
Number of downloads: 493Equipment lists doesnt work properly on some type of equipments or just dont show at all. Also... this was mean to work on alt version? because it doesnt.
|
|
|
|
|
|
Jul 2 2017, 18:31
|
sickentide
Group: Catgirl Camarilla
Posts: 1,355
Joined: 31-August 10
|
QUOTE(DJNoni @ Jul 2 2017, 11:39) It's a nice feature. It doesn't solve the PFUDOR-fest problem though... round starts with holding shift and spamming Imperil, thus using far more imperil then needed, thus running out of mana.
Maybe it's possible to move the mouse pointer away from the monsters upon emergency? That would totally solve the imperil problem.
you have to dip the pointer into a monster and move back out real quick for a single cast, or you can try something like this: CODE hoverShiftAction = Strongest([ToggleHover, Cast('Imperil')]), // ... Bind(KEY_Z, ToggleHover); Bind(KEY_Z, Shift, ToggleHover); hold shift and hover over the first monster you want to imperil, hover over the second monster to imperil and hit Z, do the same for the third, release shift and hit Z to resume attacking
|
|
|
|
|
|
Jul 2 2017, 19:21
|
Maharid
Group: Catgirl Camarilla
Posts: 2,373
Joined: 27-April 10
|
Not much intuitive.
There is a way to make the hover action use the spell once and stop until you release shift?
This will be the better way, at least fo me, maybe it will take jist a slight more time to do the whole thing but i will make errors over errors in the "Z Key Mode".
|
|
|
|
|
|
Jul 2 2017, 19:43
|
Noni
Group: Catgirl Camarilla
Posts: 12,957
Joined: 19-February 16
|
QUOTE(sickentide @ Jul 2 2017, 18:31) you have to dip the pointer into a monster and move back out real quick for a single cast, or you can try something like this: CODE hoverShiftAction = Strongest([ToggleHover, Cast('Imperil')]), // ... Bind(KEY_Z, ToggleHover); Bind(KEY_Z, Shift, ToggleHover); hold shift and hover over the first monster you want to imperil, hover over the second monster to imperil and hit Z, do the same for the third, release shift and hit Z to resume attacking I'll try this. Thanks for the suggestion anyway A final option could be maybe a picture appearing in front of the monster area in case of emergency
|
|
|
2 User(s) are reading this topic (2 Guests and 0 Anonymous Users)
0 Members:
|
|
|
|
|