Welcome Guest ( Log In | Register )

5153 Pages V « < 1543 1544 1545 1546 1547 > »   
Closed TopicStart new topic
> Asked the Experts, For archive purposes only. Please use Ask the Expert! for questions

 
post Mar 21 2013, 21:21
Post #30881
Malenk



Active Poster
*******
Group: Gold Star Club
Posts: 1,166
Joined: 12-June 12
Level 452 (Dovahkiin)


QUOTE(Falbala456 @ Mar 21 2013, 19:40) *

You have to use [addons.mozilla.org] greasemonkey to make the scripts works on HV.


thanks but i'm already using it.
i'm running hvstats right now

i even tried in the past to run a script to see the level 0 attributes of items, but it never worked for me, with or without hv stats.

so i ask: is there a working tool/script for firefox?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Mar 21 2013, 21:59
Post #30882
Lement



Lalalala la~ la la~!
********
Group: Members
Posts: 2,977
Joined: 28-February 12
Level 326 (Godslayer)


Since I CBA about finding the post now, here's copypaste <not sure of the writer of the version > from my greasemonkey:

QUOTE
// ==UserScript==
// @name Hentaiverse Equipment Comparison
// @namespace HVEquipCompare
// @description Allows to compare pieces of equipment.
// @match http://hentaiverse.org/?s=Bazaar&ss=es*
// @match http://hentaiverse.org/?s=Character&ss=eq*
// @match http://hentaiverse.org/pages/showequip.php?eid=*&key=*
// @match http://hentaiverse.org/?s=Bazaar&ss=fr*
// @match http://hentaiverse.org/?s=Battle&ss=iw*
// @match http://hentaiverse.org/?s=Character&ss=in
// @match http://ehwiki.org/wiki/Equipment_Ranges?where=*
// @version 0.5.1
// @run-at document-end
// ==/UserScript==

var Parser, Cruncher, Formatter, Controller, Wiki;

/* * * * * * * * * * * * * * * * * * * * * * * */

Parser = {

parse: function(source) {

// decorator for _parseObject

if (source != null && source.constructor == String) {
var tokens = source.match(/'.+?'/g), temp = document.createElement('div');
temp.innerHTML = tokens[2].slice(1,tokens[2].length-1);
var result = Parser._parseObject(temp.firstElementChild);
result.Info.Name = tokens[1].slice(1,tokens[1].length-1);
return result;
}

if (document.getElementById('equipment')) {
var result = Parser._parseObject(document.querySelector('#equipment > div:first-child'));
result.Info.Name = document.querySelector('div').textContent;
return result;
}

var popup = document.getElementById('popup_box');
if (popup.childElementCount) {
var result = Parser._parseObject(document.querySelector('#popup_box > div + div > div'));
result.Info.Name = document.querySelector('#popup_box > div').textContent;
return result;
}

},

_parseObject: function(source) {

function hasChildren(x) {
for (var y in x) return true;
return false;
}

if (source.constructor == String) {
var temp = document.createElement('div');
temp.innerHTML = source;
return parseObject(temp);
}

var res = { Info: { } }, n = source.childNodes.length;
var section = null, sectionContents = { };
for (var i=0;i<n;i++) {

var child = source.childNodes[i];

// check for equipment procs & info
if (child.firstElementChild.nodeName == 'STRONG') {

if (child.textContent.indexOf('Level') != -1) {
// type, level and EXP
var tokens = child.textContent.match(/^(.+?)\s+Level (\d+)\s+(.+)$/);
res.Info.Type = tokens[1];
res.Info.Level = parseInt(tokens[2],10);
res.Info.EXP = tokens[3];
}

else if (child.textContent.indexOf('turn') != -1) {
// proc type, chance, duration and damage
var tokens = child.textContent.match(/^(.+): (\d+)%.+(\d+) turns?(?:.+?(\d+)% DOT)?/);
res.Proc = { Type: tokens[1], Chance: parseInt(tokens[2],10), Duration: parseInt(tokens[3],10) };
if (tokens[4]) res.Proc.Damage = parseInt(tokens[4],10);
}

else if (child.textContent.indexOf('points') != -1) {
// siphon type, chance and damage
var tokens = child.textContent.match(/^Siphon (.+): (\d+)%.+ ([\d\.]+) points/)
res.Siphon = { Type: tokens[1], Chance: parseInt(tokens[2],10), Damage: parseFloat(tokens[3]) };
}

else if (child.textContent.indexOf('Damage') != -1) {
// weapon damage and damage type
var tokens = child.textContent.match(/^\+(\d+) (.+) Damage/);
res.Damage = { Damage: parseInt(tokens[1],10), Type: tokens[2] };
}

else if (child.textContent.indexOf('Strike') != -1) {
// elemental strike
res.Info.Element = child.textContent.match(/^(.+) Strike/)[1];
}

continue;
}

// check for section name
if (!child.firstElementChild.childElementCount && child.textContent.trim().length) {

if (hasChildren(sectionContents)) // previous section or stats
res[section||'Stats'] = sectionContents; // clone

section = child.firstElementChild.textContent;
sectionContents = { };
}

// retrieve section contents
var targets = child.getElementsByTagName('div'), target = null, attributeName = null, attributeValue = null;

for (var j=0;j<targets.length;j++) {
target = targets[j];
if (target.firstElementChild && target.firstElementChild.nodeName == 'DIV') continue;
if (target.textContent.length == 0) continue;
if (target.textContent.trim()[0] == '%') continue;

target = target.textContent.split('+')
if (target.length > 1 && target[0].length > 0 && target[1].length > 0) {
attributeName = target[0].trim();
attributeValue = target[1].trim();
sectionContents[attributeName] = parseFloat(attributeValue);
} else {
if (target.length == 1 || target[0].length > 0) // attribute name
attributeName = target[0];
else { // attribute value
attributeValue = target[1];
sectionContents[attributeName] = parseFloat(attributeValue);
}
}
}
}

if (hasChildren(sectionContents)) // last section
res[section||'Stats'] = sectionContents; // clone

return res;

}

};

/* * * * * * * * * * * * * * * * * * * * * * * */

Cruncher = {

scalingFactors : {
'Stats': {
'Attack Damage': 16+2/3, 'Magic Damage': 22+3/4, 'Attack Accuracy': 5000, 'Magic Accuracy': 5000,
'Attack Critical': 2000, 'Magic Critical': 2000, 'Block Chance': 2000, 'Evade Chance': 2000,
'Parry Chance': 2000, 'Resist Chance': 2000, 'Physical Mitigation': 2000, 'Magical Mitigation': 2000,
'Burden': Infinity, 'Interference': Infinity, 'Mana Conservation': Infinity
},
'Damage': 16+2/3,
'Damage Mitigations': { 'Crushing': Infinity, 'Slashing': Infinity, 'Piercing': Infinity, 'default': Infinity },
'Proficiency': 35+5/7,
'Spell Damage': 50 ,
'Primary Attributes': 35+5/7,
'Proc': { 'Duration': 200, 'Damage': Infinity, 'Chance': Infinity },
'Siphon': { 'Damage': 25, 'Chance': Infinity }
},

compare: function(a,B) {

// returns a-b (b = equipped item)

var result = { };

for (var x in a) {
result[x] = { };
for (var y in a[x]) {
if (x == 'Info' && y != 'Level')
result[x][y] = a[x][y];
else if (!b.hasOwnProperty(x) || !b[x].hasOwnProperty(y)) {
if (a[x][y].constructor == Number)
result[x][y] = a[x][y];
else
result[x][y] = '!' + a[x][y];
}
else if (b[x][y].constructor == Number)
result[x][y] = a[x][y] - b[x][y];
else
result[x][y] = a[x][y] == b[x][y] ? a[x][y] : '!' + a[x][y];
}
}

for (var x in B) {
if (!result.hasOwnProperty(x)) result[x] = { };
for (var y in b[x]) {
if (result.hasOwnProperty(x) && result[x].hasOwnProperty(y)) continue;
if (b[x][y].constructor == Number)
result[x][y] = -b[x][y];
else
result[x][y] = '!' + b[x][y];
}
}

return result;

},

scale: function(source) {

if (!Controller.Level) return source;

var result = { };

for (var x in source) {

result[x] = { };
var factor = Cruncher.scalingFactors[x] || Infinity, effectiveFactor;

for (var y in source[x]) {

if (source[x][y].constructor != Number) {
result[x][y] = source[x][y];
continue;
}

if (factor.constructor == Number) effectiveFactor = factor;
else if (factor.hasOwnProperty(y)) effectiveFactor = factor[y];
else if (factor.hasOwnProperty('default')) effectiveFactor = factor.default;
else effectiveFactor = Infinity;

result[x][y] = source[x][y] / (1 + Controller.Level / effectiveFactor);

}

}

return result;

}

};

/* * * * * * * * * * * * * * * * * * * * * * * */

Formatter = {

_sectionOrder: ['Info','Stats','Spell Damage','Damage Mitigations','Proficiency','Primary Attributes'],

_format: function(string) {
var parameters = arguments;
return string.replace(/{(\d+)}/g,function(match,number) {
return parameters.length > +number+1 ? parameters[+number+1] : match;
});
},

_formatInfo: function(source) {

var result = '';

result += Formatter._format(
'<div style="margin:3px auto; font-size:110%; text-align:center">' +
'<b>{0}</b> &nbsp; &nbsp; <b>Level</b> <strong>{1}</strong> &nbsp; &nbsp; <b>{2}</b></div>',
source.Info.Type,source.Info.Level,source.Info.EXP
);

if (source.hasOwnProperty('Proc')) {
result += Formatter._format(
'<div style="text-align:center; margin:3px auto"><b>{0}</b>: ' +
'<strong>{1}%</strong> chance - <strong>{2}</strong> turns{3}</div>',
source.Proc.Type,source.Proc.Chance,source.Proc.Duration.toFixed(2),
!source.Proc.hasOwnProperty('Damage') ?
'' :
Formatter._format(' / <strong>{0}%</strong> DOT',source.Proc.Damage)
);
}

if (source.hasOwnProperty('Siphon')) {
result += Formatter._format(
'<div style="text-align:center; margin:3px auto"><b>Siphon</b> <b>{0}</b>: ' +
'<strong>{1}%</strong> chance - <strong>{2}</strong> points</div>',
source.Siphon.Type,source.Siphon.Chance,source.Siphon.Damage.toFixed(1)
);
}

if (source.hasOwnProperty('Damage')) {
result += Formatter._format(
'<div style="text-align:center; margin:3px auto">+<strong>{0}</strong> <b>{1}</b> <b>Damage</b> </div>',
source.Damage.Damage.toFixed(2),source.Damage.Type
);
}

if (source.Info.hasOwnProperty('Element')) {
result += Formatter._format(
'<div style="text-align:center; margin:3px auto"><strong>{0}</strong> <b>Strike</b></div>',
source.Info.Element
);
}

// removes contradicting signs
result = result.replace(/\+<strong>-/g,'<strong>-');

return result;

},

_formatSection: function(name,source) {

var result = '', attributes = '', stats = (name == 'Stats'), attributeCount = 0;
var newLine = [];

for (var x in source) {

var temp =
Formatter._format('<div style="float:left; width:{0}px; text-align:right;">',stats ? '155' : '100') +
Formatter._format('<div style="float:left; {0}">{1}</div>',stats ? 'width:99px; padding:2px' : 'width:65px',x) +
Formatter._format(
'<div style="float:left; width:35px; {0}">+<strong>{1}</strong></div>',
stats ? 'padding:2px 0 2px 2px' : '',
source[x].toFixed(2)
) +
// additional div needed for stats (containing the percent sign)
(!stats ? '' : Formatter._format(
'<div style="float:left; width:6px; text-align:left; padding:2px 2px 2px 1px">{0}</div>',
stats && !/Damage|Interference|Burden/.test(x) ? ' %' : '' // exclude damage, burden and interference
)) +
'<div style="clear:both"></div></div>';

// added later on a new line
if (stats && (x == 'Burden' || x == 'Interference')) newLine.push(temp);
else attributes += temp;

attributeCount++; // needed later to center the floating div(s)

}

if (newLine.length) {
attributes += newLine[0].replace(/">/,'clear: left;">');
if (newLine[1]) attributes += newLine[1];
}

if (stats)
result = Formatter._format(
'<div style="border-top:1px solid #A47C78; margin:5px auto 2px; padding-top:2px">{0}<div style="clear:both"></div></div>',
attributes
);

else
result = Formatter._format(
'<div style="margin:7px auto 2px"><div style="font-weight:bold; text-align:center">{0}</div>' +
'<div style="padding-right:20px"><div style="margin:5px auto; width:{1}00px">{2}</div></div><div style="clear:both"></div></div>',
name,Math.min(3,attributeCount),attributes
);

// add color to Burden and Interference
result = result.replace(/((?:Burden|Interference).+?)">/g,'$1;color:#BF0000">');

// removes contradicting signs
result = result.replace(/\+<strong>-/g,'<strong>-');

return result;

},

addColors: function(source, comparison) {

// source must be a node
// comparison = true > red/green
// comparison = false > purple (base values)

var targets = source.querySelectorAll('div[style^="float"] strong');
for (var i=targets.length-1;i>=0;i--) {
if (comparison) {
if (Math.abs(parseFloat(targets[i].textContent)) <= 0.01) targets[i].parentNode.style.color = 'dodgerblue';
else {
var reverse = /Burden|Interference/.test(targets[i].parentNode.previousElementSibling.textContent);
if (targets[i].parentNode.textContent[0] != '-') targets[i].parentNode.style.color = !reverse ? 'darkgreen' : 'red';
else targets[i].parentNode.style.color = !reverse ? 'red' : 'darkgreen';
}
} else targets[i].parentNode.style.color = 'darkorchid';
}

// info & procs
var targets = source.querySelectorAll('div:not([style^="float"]) > div > strong');
for (var i=targets.length-1;i>=0;i--) {
if (comparison) {
if (!/[-\+\d]/.test(targets[i].textContent[0]) || Math.abs(parseFloat(targets[i].textContent)) <= 0.01)
targets[i].style.color = 'dodgerblue';
else {
if (targets[i].textContent[0] != '-') {
targets[i].style.color = 'darkgreen';
if (targets[i].parentNode.textContent[0] != '+')
targets[i].textContent = '+' + targets[i].textContent;
}
else targets[i].style.color = 'red';
}
} else if (/\d/.test(targets[i].textContent[0])) targets[i].style.color = 'darkorchid';
}

// highlight different strings
var targets = source.querySelectorAll('strong, b');
for (var i=targets.length-1;i>=0;i--) {
if (targets[i].textContent[0] != '!' || targets[i].childElementCount) continue;
targets[i].textContent = targets[i].textContent.slice(1);
targets[i].style.color = 'dodgerblue';
}

},

toHTML: function(source) {

var result = '';

Formatter._sectionOrder.forEach(function(section) {
if (section == 'Info') result += Formatter._formatInfo(source);
else if (source.hasOwnProperty(section))
result += Formatter._formatSection(section,source[section]);
});

return result;

}

};

/* * * * * * * * * * * * * * * * * * * * * * * */

Controller = {

toText: function(node) {

if (!Controller.toText.map)
Controller.toText.map = '0123456789.,!?%+-=/\'":;()[]- abcdefghijklmnopqrstuvwxyz';

var targets = node.querySelectorAll('.f10rb, .f12rb'), n = targets.length, result = '';
if (n == 0) result = node.textContent;
else {
while (n --> 0) {
var offset = parseInt(targets[n].style.backgroundPosition.match(/(\d+)px$/)[1],10);
var height = targets[n].className.indexOf('10') == -1 ? 12 : 10;
result += Controller.toText.map[offset/height];
}
}

return result.replace(/^(.)|\s(.)/g,function© { return c.toUpperCase(); });

},

saveData: function() {

var result = /slot/.test(window.location.href) ? JSON.parse(localStorage.getItem('HVEquipment')) : { };
var targets = document.querySelectorAll('.eqde');
for (var i=targets.length-1;i>=0;i--) {
var data = Parser.parse(targets[i].getAttribute('onmouseover'));
var slot = Controller.toText(targets[i].parentNode.firstElementChild);
result[slot] = data;
}
localStorage.setItem('HVEquipment',JSON.stringify(result));

var level = document.querySelector('.fd12');
if (level.textContent.indexOf('Level') != -1) level = level.textContent;
else level = Controller.toText(level);
if (level.indexOf('Level') != -1) localStorage.setItem('HVLevel',level.match(/(\d+)/)[1]);


},

loadData: function() {

var level = parseInt(localStorage.getItem('HVLevel'));
if (level) Controller.Level = level;

var equipment = JSON.parse(localStorage.getItem('HVEquipment'));
if (!equipment) return;
for (var x in equipment)
this[x] = equipment[x];

},

hasData: function() {
return localStorage.hasOwnProperty('HVEquipment') && localStorage.hasOwnProperty('HVLevel');
},

getTarget: function() {
return document.querySelector('#popup_box > div + div > div, #equipment > div');
},

_extractSlot: function(name,slot) {
if (/Weapon|Staff/i.test(slot)) return 'Main Hand';
if (/Shield/i.test(slot)) return 'Off Hand';
if (/Cap|Helm|Coif/i.test(name)) return 'Helmet'
if (/Robe|Armor|Breastplate|Cuirass|Hauberk/i.test(name)) return 'Body';
if (/Gloves|Gauntlets|Mitons/i.test(name)) return 'Hands';
if (/Pants|Leggings|Greaves|Chausses/i.test(name)) return 'Legs';
return 'Feet';
},

keyEvent: function(e) {

var key = String.fromCharCode(e.keyCode).toLowerCase();
if (!/[qwer]/.test(key) || !Controller.popup.childElementCount || !Controller.hasData()) return;
if (!Controller.loaded) {
Controller.loadData();
Controller.laded = true;
}

var name = document.querySelector('#popup_box > div') || document.querySelector('body > div > div > div > .fd12 > div');
name.textContent = name.textContent.replace(/\s\(.+\)/,'');

var source = Parser.parse(), slot = Controller._extractSlot(source.Info.Name,source.Info.Type), result;

if (key == 'r') {
window.open('http://ehwiki.org/wiki/Equipment_Ranges?where=' + source.Info.Name.replace(/\s/g,'+'));
return;
}

var switchSlot = ((key == 'q' || key == 'e') && Controller.lastEquip == source.Info.Name && Controller.lastSlot != 'Off Hand' &&
source.Info.Type == 'One-handed Weapon' && document.getElementById('HVEquipment') != null);

if (document.getElementById('HVEquipment') != null) {
Controller.lastResult.parentNode.removeChild(Controller.lastResult);
if (Controller.lastKey == key && !switchSlot) {
Controller.getTarget().style.display = null;
return;
}
}

if (Controller.lastKey == key && switchSlot)
slot = (Controller.lastSlot == 'Main Hand' ? 'Off Hand' : 'Main Hand');

if (source.Info.Type == 'One-handed Weapon' && (key == 'q' || key == 'e')) name.textContent += ' (' + slot + ')';

if (key == 'q' || key == 'e') {
if (!Controller.Level) Controller.loadData();
result = Cruncher.compare(source,Controller[slot] || { });
} else result = source;

if (key == 'w' || key == 'e')
result = Cruncher.scale(result);

var div = document.createElement('div');
div.id = 'HVEquipment';
div.innerHTML = Formatter.toHTML(result);
Formatter.addColors(div,key == 'q' || key == 'e');

var target = Controller.getTarget();
target.parentNode.insertBefore(div,target.nextSibling);
target.style.display = 'none';

Controller.lastKey = key;
Controller.lastResult = div;
Controller.lastSlot = slot;
Controller.lastEquip = source.Info.Name;

}

};

/* * * * * * * * * * * * * * * * * * * * * * * */

Wiki = {

_evaluate: function(query) {
return document.evaluate(query,document,null,9,null).singleNodeValue;
},

check: function() {

var equip = window.location.href.match(/where=([^#&]+)/)[1].replace(/\+/g,' '), temp, target;

if (temp = equip.match(/(Cotton|Gossamer|Phase|Leather|Kevlar|Shade|Plate|Shield (?!of)|Power)/)) { // armor
target = Wiki._evaluate(
'.//h3[./span[text()="' + temp[1].trim() + '"]]/following-sibling::h4' +
'[./span[text()="' + Controller._extractSlot(equip,'').replace(/Helmet/,'Head') + '"]]/following-sibling::table'
);
} else { // other
var type = equip.replace(/Flimsy|Crude|Fair|Average|Fine|Superior|Exquisite|Magnificent|Legendary|Ethereal/g,'');
type = type.replace(/Shocking|Arctic|Tempestuous|Fiery|Astral|Quintessential|Demonic|Hallowed/g,'');
type = type.match(/([^\s]+)/)[1].trim();
target = Wiki._evaluate('.//h3[./span[starts-with(text(),"' + type + '")]]/following-sibling::table');
}

Wiki._highlightTable(target,equip);

},

_highlightTable: function(target,equip) {

if (!target) return;

if (/collapsibleTable/.test(target.id)) {
if (unsafeWindow && unsafeWindow.collapseTable) unsafeWindow.collapseTable(target.id.match(/(\d+)$/)[1]); // firefox
else window.location.href = 'java script:collapseTable(' + target.id.match(/(\d+)$/)[1] + ')'; //chrome
}

target.scrollIntoView();
var offset = (/Exquisite/.test(equip)?1:/Magnificent/.test(equip)?2:/Legendary/.test(equip)?3:0);

// highlight relevant rows

function isFirst(x) {
return !x.firstElementChild.hasAttribute('scope');
}

function checkSuffix(td,suffix) {
return td.indexOf(suffix) == 0 ||
(/Mjolnir|Surtr|Niflheim|Freyr|Heimdall|Fenrir/.test(suffix) && /EDB/i.test(td)) ||
(/Heaven-sent|Demon-fiend|Elementalist|Curse-weaver|Priestess|Earth-walker/.test(suffix) && /Prof/i.test(td)) ||
(/Fox|Owl|Cheetah|Raccoon|Turtle|Ox/.test(suffix) && /PAB/i.test(td)) ||
(/Dampening|Stone|Deflection|Warding|eater|born|child|waker|blessed|ward/.test(suffix) && /Mitigation/i.test(td));
}

function highlightRow(row) {
var n = row.cells.length-4+offset;
if (row.cells[n].textContent.trim() == 0) return;
for (var i=n;i>=0;i--) highlightCell(row.cells[i]);
highlightCell(row.cells[n],true);
if (isFirst(row)) {
temp = Wiki._evaluate('preceding-sibling::tr[./th[1][@scope]][1]/th[1]',row);
if (temp) highlightCell(temp);
}
}

function highlightCell(cell,text) {
if (!cell) return;
cell.style.cssText = 'background-color: bisque;' + (text?'color: firebrick; font-weight: bold; text-decoration: underline;':'');
}

var rows = Array.prototype.slice.call(target.rows,0).slice(3), n = rows.length;
var suffix = equip.match(/([^\s]+)$/)[1].trim();

for (var i=0;i<n;i++) {
var rowspan = rows[i].firstElementChild.getAttribute('rowspan')||1, temp = false, temp2 = null;
for (var j=0;j<rowspan;j++, i++) {
if (temp) continue;
var suffixTD = isFirst(rows[i])?rows[i].firstElementChild:rows[i].firstElementChild.nextElementSibling, suffixTDtext = suffixTD.textContent.trim();
if (checkSuffix(suffixTDtext,suffix)) {
temp = true;
highlightRow(rows[i]);
} else if (/^$|Others?|All/.test(suffixTDtext) || (!temp2 && !suffixTD.nextElementSibling.textContent.trim().length)) temp2 = rows[i];

}
if (!temp && temp2) highlightRow(temp2);
i--;
}

}

};

/* * * * * * * * * * * * * * * * * * * * * * * */

if (window.location.host == 'hentaiverse.org') {

if (/&ss=eq/.test(window.location.href)) Controller.saveData();
Controller.popup = document.querySelector('#popup_box, #equipment');
Controller.loaded = false;
window.addEventListener('keyup',Controller.keyEvent,false);
var level = document.evaluate('.//div[starts-with(text(),"Level")]',document,null,9,null).singleNodeValue;
if (level) Controller.Level = parseInt(level.textContent.match(/(\d+)/)[1],10)

} else if (window.location.host == 'ehwiki.org') {

window.addEventListener('load',Wiki.check,false);

}


This post has been edited by Lement: Mar 21 2013, 23:01
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Mar 21 2013, 22:18
Post #30883
Malenk



Active Poster
*******
Group: Gold Star Club
Posts: 1,166
Joined: 12-June 12
Level 452 (Dovahkiin)


QUOTE(Lement @ Mar 21 2013, 22:59) *

Since I CBA about finding the post now, here's copypaste <not sure of the writer of the version > from my greasemonkey:


well first thing you should use "code" instead of "quote" since as you can see a couple of things were read as emoticon code by the forum.

still i corrected manually the thing but it doesn't work for me (IMG:[invalid] style_emoticons/default/sad.gif)

tried with and without hvstats, with font engine and downloadable fonts.
it doesn't do anything for me.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Mar 21 2013, 23:00
Post #30884
Jeanne d'Arc



Titania
***********
Group: Catgirl Camarilla
Posts: 15,254
Joined: 12-August 11
Level 471 (Godslayer)


QUOTE(Malenk @ Mar 21 2013, 21:18) *

well first thing you should use "code" instead of "quote" since as you can see a couple of things were read as emoticon code by the forum.

still i corrected manually the thing but it doesn't work for me (IMG:[invalid] style_emoticons/default/sad.gif)

tried with and without hvstats, with font engine and downloadable fonts.
it doesn't do anything for me.


[github.com] https://github.com/trandoanhung1991/HV-Equi.../script.user.js

press Raw, now a popup appears who ask you installing this script in greasemonkey on firefox.

to use it, hover over all equip slots 1time pressing W to adjust the scritp to your lvl, remember to do it evertime you gain a new lvl up or the base stats that are shown are wrong, Q and E shows you stats what you would lose or gain from the new equip, R is to show you http://ehwiki.org/wiki/Equipment_Ranges, works like a shortcut to compare.

if its still not working under settings> Font Engine> HentaiVerse Font Engine change it to Custom Local.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Mar 21 2013, 23:02
Post #30885
Lement



Lalalala la~ la la~!
********
Group: Members
Posts: 2,977
Joined: 28-February 12
Level 326 (Godslayer)


fixed. And I use Custom Local Font(Verdana, 8, -3), btw. You have to check your equips out perhaps?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Mar 21 2013, 23:53
Post #30886
Malenk



Active Poster
*******
Group: Gold Star Club
Posts: 1,166
Joined: 12-June 12
Level 452 (Dovahkiin)


QUOTE(Alazif85 @ Mar 22 2013, 00:00) *

[github.com] https://github.com/trandoanhung1991/HV-Equi.../script.user.js

press Raw, now a popup appears who ask you installing this script in greasemonkey on firefox.

to use it, hover over all equip slots 1time pressing W to adjust the scritp to your lvl, remember to do it evertime you gain a new lvl up or the base stats that are shown are wrong, Q and E shows you stats what you would lose or gain from the new equip, R is to show you http://ehwiki.org/wiki/Equipment_Ranges, works like a shortcut to compare.

if its still not working under settings> Font Engine> HentaiVerse Font Engine change it to Custom Local.


OMG
it works XD
i just didn't know that i had to press W...
i feel like an idiot now.

thanks
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Mar 22 2013, 00:13
Post #30887
Jeanne d'Arc



Titania
***********
Group: Catgirl Camarilla
Posts: 15,254
Joined: 12-August 11
Level 471 (Godslayer)


QUOTE(Malenk @ Mar 21 2013, 22:53) *

OMG
it works XD
i just didn't know that i had to press W...
i feel like an idiot now.

thanks


you are welcome (IMG:[invalid] style_emoticons/default/happy.gif)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Mar 22 2013, 00:14
Post #30888
CrazyFlame



Active Poster
*******
Group: Members
Posts: 2,032
Joined: 22-February 10
Level 500 (Godslayer)


QUOTE(Alazif85 @ Mar 21 2013, 02:22) *

1. if you dont have anything beside this, why not? it still have str and dex.

2. 25% is a huge difference, for me, without imperil 100k banish, with 370k, odd huh (IMG:[invalid] style_emoticons/default/laugh.gif)


I've got this instead.

Not that I'm a full time melee, but it doesn't hurt for me to work up 2H / Heavy profs on the side.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Mar 22 2013, 00:35
Post #30889
Jeanne d'Arc



Titania
***********
Group: Catgirl Camarilla
Posts: 15,254
Joined: 12-August 11
Level 471 (Godslayer)


QUOTE(CrazyFlame @ Mar 21 2013, 23:14) *

I've got this instead.

Not that I'm a full time melee, but it doesn't hurt for me to work up 2H / Heavy profs on the side.

thats a good one (IMG:[invalid] style_emoticons/default/happy.gif)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Mar 22 2013, 02:40
Post #30890
pureyang



Regular Poster
******
Group: Gold Star Club
Posts: 765
Joined: 6-June 12
Level 490 (Dovahkiin)


QUOTE(T_Starrk @ Mar 20 2013, 20:30) *

I disagree, I've always gotten stronger as I've leveled. You gain earning power, your gear scales, gain abilities, etc. I think exp tanks are very important. This is strictly from a melee perspective though, I know shit about mages.


You have gotten better equipment over time and became better at the game, its not the levels that made you stronger; its other over time improvements that occurred DESPITE the penalties from leveling up.

Your earning power goes down. credit earning is unaffected by level, only by difficulty. you are forced to play lower difficulty as you level up. Item quality maybe is affected by your level, but it is definitely affected by the difficulty, which you are forced to reduce as you levelup.

Your gear does indeed scale, but slower then monsters.

You do unlock new abilities... but you also unlock tougher monsters.

The biggest improvement a player sees over time to their power is by acquiring better equipment.

This post has been edited by mrttao: Mar 22 2013, 02:43
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Mar 22 2013, 03:21
Post #30891
T_Starrk



Lolicon / Shotacon
********
Group: Members
Posts: 4,653
Joined: 20-March 12
Level 500 (Godslayer)


QUOTE(mrttao @ Mar 21 2013, 16:40) *

Your earning power goes down. credit earning is unaffected by level, only by difficulty. you are forced to play lower difficulty as you level up. Item quality maybe is affected by your level, but it is definitely affected by the difficulty, which you are forced to reduce as you levelup.


Your earning power goes down? No way in hell. I've had the same gear for the last 50 levels. The game has never gotten harder and I've never been forced to lower the difficulty. I've only gotten faster at clearing arenas.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Mar 22 2013, 03:25
Post #30892
unknownxz.



Lurker
*******
Group: Members
Posts: 1,276
Joined: 1-January 13
Level 500 (Godslayer)


QUOTE(mrttao @ Mar 22 2013, 07:40) *

You have gotten better equipment over time and became better at the game, its not the levels that made you stronger; its other over time improvements that occurred DESPITE the penalties from leveling up.

Your earning power goes down. credit earning is unaffected by level, only by difficulty. you are forced to play lower difficulty as you level up. Item quality maybe is affected by your level, but it is definitely affected by the difficulty, which you are forced to reduce as you levelup.

The biggest improvement a player sees over time to their power is by acquiring better equipment.


I disagree, i using the same EQs when i level 250 and now i still can do higher difficulty.
and my EQs are 2 Exq, 3 Superior (less than 50k each (IMG:[invalid] style_emoticons/default/biggrin.gif) ). so i think higher lv = stronger.

This post has been edited by unknownxz.: Mar 22 2013, 03:27
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Mar 22 2013, 03:26
Post #30893
Arxdewn



Regular Poster
*****
Group: Members
Posts: 711
Joined: 19-November 12
Level 338 (Godslayer)


My gear has remained mostly constant, but my ability to do IWBTH has increased. While I did learn somewhat along the way, I don't think I got weaker these last hundred levels.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Mar 22 2013, 04:12
Post #30894
m118w11



Cool Guy
*******
Group: Gold Star Club
Posts: 1,323
Joined: 7-March 11
Level 500 (Godslayer)


QUOTE(mrttao @ Mar 22 2013, 02:40) *

You have gotten better equipment over time and became better at the game, its not the levels that made you stronger; its other over time improvements that occurred DESPITE the penalties from leveling up.

Your earning power goes down. credit earning is unaffected by level, only by difficulty. you are forced to play lower difficulty as you level up. Item quality maybe is affected by your level, but it is definitely affected by the difficulty, which you are forced to reduce as you levelup.

Your gear does indeed scale, but slower then monsters.

You do unlock new abilities... but you also unlock tougher monsters.

The biggest improvement a player sees over time to their power is by acquiring better equipment.


Except when you level, you gain proficiencies which means your buffs/heals cost less (Which i feel is a major deal as you can make your clearing much more efficient). I haven't had to reduce difficulty since level 200 (which I admit was bs, I went from nintendo to normal because of one stupid monster), but it is fixed now.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Mar 22 2013, 04:12
Post #30895
m118w11



Cool Guy
*******
Group: Gold Star Club
Posts: 1,323
Joined: 7-March 11
Level 500 (Godslayer)


double post, delete please

This post has been edited by m118w11: Mar 22 2013, 04:13
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Mar 22 2013, 04:27
Post #30896
elda88



FREEDOM! FUCK DMCA!
***********
Group: Gold Star Club
Posts: 16,199
Joined: 30-June 09
Level 500 (Godslayer)


No wonder the mana cost of Heartseeker is so high. It lasts 300 turns. (IMG:[invalid] style_emoticons/default/heh.gif)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Mar 22 2013, 04:41
Post #30897
JudasC



Newcomer
**
Group: Members
Posts: 62
Joined: 29-June 12
Level 292 (Godslayer)


If you geared properly, your proficiencies should make you you stronger as you level.

On the second note, does anyone know "savenger" lvl affect "power gem"(Health gem, spirit gem, mana gem etc..) Drop rate? Or the drop rate is constant?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Mar 22 2013, 04:57
Post #30898
xcaliber9999



?????
********
Group: Catgirl Camarilla
Posts: 2,822
Joined: 22-December 09
Level 500 (Godslayer)


QUOTE(JudasC @ Mar 22 2013, 08:11) *

If you geared properly, your proficiencies should make you you stronger as you level.

On the second note, does anyone know "savenger" lvl affect "power gem"(Health gem, spirit gem, mana gem etc..) Drop rate? Or the drop rate is constant?


Scavenger level effect overall drop rate that's all I know. So Scavenger level should be a bit higher compared to other drop trainings
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Mar 22 2013, 04:59
Post #30899
Falbala456



Active Poster
*******
Group: Members
Posts: 1,176
Joined: 21-April 09
Level 353 (Godslayer)


Not to mention that your stats improves, so does your damages, crit rate, evade, and mitigation. Of course the stuff come first, but it's not something to forget as I can clearly deal with higher lvl in arenas than 100 lvl before.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
post Mar 22 2013, 05:03
Post #30900
xmagus



Big, Bad and Horny
*******
Group: Members
Posts: 1,042
Joined: 16-July 12
Level 424 (Godslayer)


QUOTE(T_Starrk @ Mar 22 2013, 11:21) *

Your earning power goes down? No way in hell. I've had the same gear for the last 50 levels. The game has never gotten harder and I've never been forced to lower the difficulty. I've only gotten faster at clearing arenas.

Level 338

QUOTE(unknownxz. @ Mar 22 2013, 11:25) *

I disagree, i using the same EQs when i level 250 and now i still can do higher difficulty.
and my EQs are 2 Exq, 3 Superior (less than 50k each (IMG:[invalid] style_emoticons/default/biggrin.gif) ). so i think higher lv = stronger.

Level 279

QUOTE(Arxdewn @ Mar 22 2013, 11:26) *

My gear has remained mostly constant, but my ability to do IWBTH has increased. While I did learn somewhat along the way, I don't think I got weaker these last hundred levels.

Level 283

Anything above level 200-250 benefits from EXP Tanks and increased EXP gain. It would be far too slow to level up otherwise.

Notice that we're not saying levelling up is a bad idea; only that levelling up too QUICKLY is not the best idea. You don't have enough time to do many things (up the Trainings, buy great equips, grind non-main profs, etc etc etc). APs are better invested elsewhere. Or, you can simply train Adept Learner. Much cheaper and provides similar EXP benefits.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post


5153 Pages V « < 1543 1544 1545 1546 1547 > » 
Closed TopicStart new topic
3 User(s) are reading this topic (3 Guests and 0 Anonymous Users)
0 Members:

 


Lo-Fi Version Time is now: 21st August 2025 - 10:51