Calculator Advanced Features

please re-upload the script.
It's not available anymore.
Thanks
"
nebunelux wrote:
please re-upload the script.
It's not available anymore.
Thanks


Second that
i too fas fo youuuuuuu
Userscripts had some controversy, because many scripts were not safe and there was no moderation at all. I believe the site was taken down.

Please upload to some other site.
Oops! Google Chrome could not connect to userscripts.org
"Yeena thinks she knows the Spirit. That it talks to her. She talks to herself." -Greust <3
pls Re-upload the script to another hosting site, as userscripts seems to be down for good..
I downloaded the script before, so I'll just put the whole script here. The only change I made is to include a link to this thread after the comment header.

Script

// ==UserScript==
// @name PoECAF
// @namespace https://userscripts.org/scripts/show/161828
// @version 6.3.2
// @description Path of Exile Calculator Advanced Features
// @match http://www.pathofexile.com/passive-skill-tree*
// @downloadURL https://userscripts.org/scripts/source/161828.user.js
// @updateURL https://userscripts.org/scripts/source/161828.meta.js
// @copyright 2013+, https://userscripts.org/users/274679
// @grant none
// @run-at document-start
// ==/UserScript==
// Forum thread http://www.pathofexile.com/forum/view-thread/250370

function main () {
function objectSortedForEach(o,f){Object.keys(o).sort().forEach(function(k){f(k,o[k])})}
function hookBeforeCallReturnOriginal(o,m,h){var t=o[m];o[m]=function(){h.apply(this,arguments);return t.apply(this,arguments)}}
PoeCaf = function () { return this.init.apply(this, arguments) }
PoeCaf.prototype = {
init : function (instance) {
this.skillTree = instance;
this.initContainer(true);

instance.passiveAllocation.calculateTotal = function (replacer) {
var keyword = replacer || '', total = {}, regexp = /([+|-]?\d+(?:\.\d+)?)/gi;
this.foreachAllocatedSkill(function (e) {
if (e.keyStone) {
total['* ' + e.skill.displayName + ': ' + keyword] = [e.skill.skillDescription.join(", ")];
} else for (var i = e.skill.skillDescription.length - 1; i >= 0; --i) {
var s = e.skill.skillDescription, m = s.match(regexp);
if (m) {
s = s.replace(regexp, keyword);
if (!total)
total = [];
total.push(+m[0]);
}
}
});
return total;
};

var caf = this;
instance.finalDrawFuncs.push(function () {
instance.events.pointsChanged.add(function () {
caf.update();
});
caf.update();
});
},
initContainer : function (showing) {
var head = $('<div/>', {id: 'totalStats', class: 'cursor-pointer'}),
instance = this.skillTree;

$('<style/>', {type: 'text/css'}).html('#poe-popup-container #skillTreeInfo { position: fixed; top: 10px; left: 10px; z-index: 1004; pointer-events: none; } .cursor-pointer { cursor: pointer; pointer-events: auto; } #toggleControlsForm { position: absolute; right: 4px; top: 4px; } .fullscreen.fullscreen-hide { display: none; } div.icon { overflow: hidden; display: inline-block; background-repeat: no-repeat; background-position: center center; } .toggleable { overflow: hidden; display: inline-block; background-repeat: no-repeat; background-position: center center; } .icon-arrow { width: 10px; height: 10px; } .icon-arrow.toggleable { background-image: url(http://cdn1.iconfinder.com/data/icons/lullacons/bullet-arrow-down.png); } .icon-arrow.toggleable.toggled { background-image: url(http://cdn1.iconfinder.com/data/icons/lullacons/bullet-arrow-right.png); } .icon-toggle { width: 32px; height: 32px; } .icon-toggle.toggleable { background-image: url(http://cdn1.iconfinder.com/data/icons/realistiK-new/32x32/actions/window_fullscreen.png); } .icon-toggle.toggleable.toggled { background-image: url(http://cdn1.iconfinder.com/data/icons/realistiK-new/32x32/actions/window_nofullscreen.png); }').appendTo('head');
$('#passiveControlsForm > :not(.buttonContainer):not(.clear)').addClass('fullscreen-affected').not('#skillTreeInfo').addClass('fullscreen-hide');

$("<div/>", {id: 'toggleControlsForm', class: 'buttonContainer cursor-pointer icon-toggle toggleable'}).click(function () {
$(this).toggleClass('toggled');
$('#passiveControlsForm > .fullscreen-affected').toggleClass('fullscreen-hide');
instance.updateCanvasSize();
}).prependTo('#passiveControlsForm').hide();

hookBeforeCallReturnOriginal(instance, 'toggleFullScreen', function () {
var isFullScreen = !this.fullScreen; // flag is currently in before toggle state
$('#skillTreeInfo').prependTo(isFullScreen ? '#poe-popup-container' : '#passiveControlsForm');
$('.fullscreen-affected').toggleClass('fullscreen');
$('#toggleControlsForm').toggle();
});

head.click(function () {
$(this).contents().add('.icon-arrow').toggleClass('toggled');
$(this).next().slideToggle();
}).prepend(
$('<div/>', {class: 'icon-arrow toggleable'})
);
$('#skillTreeInfo').contents().replaceWith(head).appendTo(head);

this.container = $("<div/>").appendTo('#skillTreeInfo');
},
update : function () {
var keyword = '{v}', passiveSkillBonuses = this.skillTree.passiveAllocation.calculateTotal(keyword), container = this.container.empty();

objectSortedForEach(passiveSkillBonuses, function(pattern, bonuses) {
var value = bonuses.reduce(function(a,b){return a+b;}),
bonus = pattern.replace(keyword, value%1>0?value.toFixed(1):value);
if (bonus.split(' ')[1] === 'to') bonus = (value < 0 ? '-' : '+') + bonus;
$("<div/>", {text: bonus, class: 'text formTextInline'}).appendTo(container);
});
}
}

// hook on constructor of skill tree
define('PassiveSkillTree-adapter', ['PoE/PassiveSkillTree/PassiveSkillTree'], function (PassiveSkillTree) {
console.log('PoECAF Installed');
return function () {
var instance = new Object();
PassiveSkillTree.apply(instance, arguments);
new PoeCaf(instance);
return instance;
};
});
require.config({
map: {
'*': { 'PoE/PassiveSkillTree/PassiveSkillTree': 'PassiveSkillTree-adapter' },
'PassiveSkillTree-adapter': { 'PoE/PassiveSkillTree/PassiveSkillTree': 'PoE/PassiveSkillTree/PassiveSkillTree' }
}
});
}

// we have to do it after requirejs is configured, but before any skill tree was created
window.addEventListener("DOMNodeInserted", function (event) {
for (var tags = document.getElementsByTagName("script"), i = tags.length - 1; i >= 0; --i) {
var e = tags.item(i);
if (e.text.indexOf('require.config') !== -1) {
window.removeEventListener(event.type, arguments.callee, true);
var script = document.createElement('script');
script.appendChild(document.createTextNode('('+ main +')();'));
e.parentNode.insertBefore(script, e.nextSibling);
return;
}
}
}, true);

Will there ever be a release for newer browser versions?

Either my firefox updated automatically to 31.0 today or someone used my computer earlier today and cant get this to work again.
Miss it a lot, made it so much easier to check not only my builds but other people's builds too..

EDIT: Nevermind it still works, I took the link from the build of the week and it was on https so no scripts were allowed I guess.
I cant into computers
Oblivious
Last edited by Disrupted#3096 on Sep 23, 2014, 12:04:38 PM

Report Forum Post

Report Account:

Report Type

Additional Info