davoe15
Beginner
Posts: 2
Team Name (A-Team): J.E.R.K
Team Name (B-Team): CERN Labs
Location: New York, NY
|
Post by davoe15 on Mar 4, 2023 18:38:46 GMT
I am working on a fork version ( beta 1.2) of your script with auto-swap of the 4 teams and a couple of new features. So far it is only a proof of concept made to help regular players to fight back against more and more cheaters & scripters. Let me know if you are interested. If you finish it please let me know!
|
|
mystic
Amateur
Only Dead Fish Go With the Flow...
Posts: 16
Team Name (A-Team): Retired
Team Name (B-Team): Retired
|
Post by mystic on Nov 14, 2023 8:59:15 GMT
I have given up trying to implement automated functions that could lead to a ban. Here is my version with the market correction in English, previously shown in Spanish I replaced the remove all ( but one ) button with a clear button that clears the whole field (it is simply the old function that clears the field without saving the position). I added a fifth slot which I use for e.g. dropping This version is now compatible with the secure protocol ( It works with https://www.neuronball.com/*/my-team/* )Let me know if it works for your Mac or for you browser (like Firefox or any other). I use Windows and Palemoon browser version 32.5 (firefox fork) + greasemonkey ( old compatible version 3.31.4 )It works with recent guerilla too ( tested with Version 0.0.3.7.7 Released: September 15, 2023 Works with Pale Moon 27.0 to 32.5 )www.palemoon.orgwiki.greasespot.net/User_Script_Hostinggithub.com/janekptacijarabaci/greasemonkey/releases/tag/3.31.4Forkaddons.palemoon.org/addon/guerilla-scripting/// ==UserScript==
// @name Neuron Ball on Br-Ba
// @namespace nb
// @description Extra functionality missing in the game, and discussed in the forums
// @include https://www.neuronball.com/*/my-team/*
// @include http://www.neuronball.com/*/my-team/*
// @grant none
// @version 1.1.1
// ==/UserScript==
// Functions
var players = my_team.players;
for(p = 0;p < players.length; p++){
players[p].canvas = {};
}
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function set_neurons(){
var cdnImg = 'http://cdn.neuronball.com.s3.amazonaws.com/img';
var sort_options;
var sort_mode = $('#sort_mode').attr('data-estate') * 1;
switch(sort_type) {
case "number":
sort_options = function(a,b) { return (a.number-b.number) * sort_mode }; break;
case "name":
sort_options = function(a,b) { return (b.name < a.name ? 1 : (a.name < b.name ? -1 : 0)) * sort_mode }; break;
case "charge":
sort_options = function(a,b) { return (a.charge()-b.charge()) * sort_mode }; break;
case "level":
sort_options = function(a,b) { return (b.xp-a.xp) * sort_mode }; break;
case "engaged":
sort_options = function(a,b) { return (b.selected-a.selected) * sort_mode }; break;
case "health":
sort_options = function(a,b) { return (a.health-b.health) * sort_mode }; break;
case "type":
sort_options = function(a,b) { return (a.type_id-b.type_id) * sort_mode }; break;
case "ai":
sort_options = function(a,b) { return (a.ai_image.split('-')[1]-b.ai_image.split('-')[1]) * sort_mode }; break;
case "price":
sort_options = function(a,b) { return (a.recycle_value-b.recycle_value) * sort_mode }; break;
case "capacity":
sort_options = function(a,b) { return (a.capacity * a._charge - b.capacity * b._charge) * sort_mode }; break;
case "level-up":
sort_options = function(a,b) { return (a.level_completion_ratio-b.level_completion_ratio) * sort_mode }; break;
default:
return; break;
}
my_team.players.sort(sort_options);
$("#neurons_overview").empty();
// boxes inclusion
var boxes = 0;
var $p1 = $("<div class='innerpage'/>");
var $p2 = $("<div class='innerpage'/>");
for(idx in my_team.players)
{
var nbox = $("#neuron_overview_template").html()
.replace(/pid/g, my_team.players[idx].id)
.replace("#up#", my_team.players[idx].points_to_spend > 0 ? " up" : "");
if(boxes<10) { $p1.append(nbox); } else { $p2.append(nbox); }
boxes++;
}
for(x=0; x<my_team.free_slots; x++) {
var d = $("<div>").html('<a href="/en/market/" class="neuron-container"><span class="free-slot">Libre</span></a>').addClass("neuron-box").addClass("free-slot-box");
if(boxes<10) { $p1.append(d); } else { $p2.append(d); }
boxes++;
}
for(x=0; x<20-boxes; x++) {
var d = $("<div>").html('<a href="/en/headquarters/" class="neuron-container"><img src="http://nbstatic.s3.amazonaws.com/img/lock26.png"></a>').addClass("neuron-box").addClass("locked-slot-box");
$p2.append(d);
}
$("#neurons_overview").append($p1);
$("#neurons_overview").append($p2);
// neurons canvases
for(idx in my_team.players)
{
my_team.players[idx].canvas = new PlayerView(document.getElementById('neuron_view_'+my_team.players[idx].id), new ViewSize(16));
my_team.players[idx].canvas.setParams(my_team.players[idx]);
my_team.players[idx].canvas.anim = true;
$("#neuron_name_"+my_team.players[idx].id).html(my_team.players[idx].name);
$("#neuron_level_"+my_team.players[idx].id).html("Nivel: "+my_team.players[idx].level);
$("#neuron_advancement_"+my_team.players[idx].id).css("width", my_team.players[idx].level_completion_ratio*100+"%");
$("#neuron_bat_"+my_team.players[idx].id).css("width", my_team.players[idx].charge()*100+"%");
$cpu = $('<img src="' + cdnImg + "/cpu/" + my_team.players[idx].cpu_image + '" style="z-index: 999; width: 24px; height: 24px; position: relative; opacity: 1; left: 24px; top: 71px;" />');
$bat = $('<img src="' + cdnImg + "/battery/" + my_team.players[idx].battery_image + '" style="z-index: 999; width: 24px; height: 24px; position: relative; opacity: 1; left: 24px; top: 71px;" />');
$ai = $('<img src="' + cdnImg + "/ai/" + my_team.players[idx].ai_image + '" style="z-index: 999; width: 24px; height: 24px; position: relative; opacity: 1; left: 24px; top: 71px;" />');
$('#neuron_container_' + my_team.players[idx].id).append($bat);
$('#neuron_container_' + my_team.players[idx].id).append($ai);
$('#neuron_container_' + my_team.players[idx].id).append($cpu);
}
// neuron construction
if(neuron_progress && $(".free-slot-box").length > 0) {
$(".free-slot-box:first").removeClass("free-slot-box").addClass("in-progress-box");
var tpl = $("#in_progress_neuron").html().replace("#title#", neuron_progress.name);
$(".in-progress-box").html(tpl).on("click", function(evt){
document.location.href = "/en/headquarters/";
evt.stopPropagation();
});
clearInterval(neuron_progress.timer);
neuron_progress.timer = setInterval(set_progress, 1000);
neuron_progress.canvas.anim = false;
neuron_progress.canvas = new PlayerView($(".in-progress-box").find("canvas").get(0), new ViewSize(16));
neuron_progress.canvas.setParams({
pattern: 20,
color1: "#FFF",
color2: "#FFF",
number: 1,
eyes: 1,
booster_active: 5,
type_id: neuron_progress.type|0
});
neuron_progress.canvas.anim = true;
}
$(".pageicon").removeClass("selected");
$(".pageicon.p1").addClass("selected");
};
/* Old function Only removes visually, can't save formation */
NB_Management.clear_all = function(){
var p = 0;
var players = my_team.players;
for(p = 0;p < players.length; p++){
if(players[p].selected){
this.unselect_player(players[p].id);
}
}
}
/** New function, removes all but 1 **/
NB_Management.remove_all = function(){
var p;
var players = my_team.players;
for(p = 0;p < players.length; p++){
if(players[p].selected && this.update_selected() > 1){
selected_player = players[p].id;
this.select_player(players[p].id, true);
this.unselect_player(players[p].id);
}
}
this.update_positions();
this.autosave_formation(1);
}
NB_Management.readPositions = function(){
json_to_post = [];
for (idx in my_team.players) {
if (my_team.players[idx].selected) {
if (my_team.players[idx].on_sale) {
my_team.players[idx].on_sale = false;
$("#autoremove_warning").fadeIn().delay(3000).fadeOut();
NB_Management.show_neuron_details(my_team.players[idx].id);
}
json_to_post.push({
id: my_team.players[idx].id,
x: my_team.players[idx].position_x,
y: my_team.players[idx].position_y,
});
}
};
return json_to_post;
}
NB_Management.setPositions = function(j){
for (idx in my_team.players) {
var s = false;
var pid = my_team.players[idx].id
for (sel in j) {
if(j[sel].id == pid){
s = true;
x = j[sel].x;
y = j[sel].y;
}
}
my_team.players[idx].selected = s;
if(s){
my_team.players[idx].position_x = x;
my_team.players[idx].position_y = y;
this.select_player(pid, true);
}
}
this.update_positions();
this.autosave_formation(this.update_selected());
}
// Elements Creation
var $clear_all = $('<a href="#" id="clear_player_all" class="unselect-player" style="display: block;left: 0">Clear</a>');
var $rem_all = $('<a href="#" id="remove_player_all" class="unselect-player" style="display: block;left: 0">Remove All</a>');
var $sm = $('<div id="sort_menu_ext" class="order-zone pull-left"></div>');
var $tm = $('<div id="tactis_menu"></div>');
var $tt = $('<span>Tactics:</span>');
var $t1 = $('<a href="#" class="tactic_btn" id="tactic_one" data-id="1">1</a>');
var $t2 = $('<a href="#" class="tactic_btn" id="tactic_two" data-id="2">2</a>');
var $t3 = $('<a href="#" class="tactic_btn" id="tactic_three" data-id="3">3</a>');
var $t4 = $('<a href="#" class="tactic_btn" id="tactic_four" data-id="4">4</a>');
var $tdrop = $('<a href="#" class="tactic_btn" id="tactic_drop" data-id="5">5</a>');
var $t5 = $('<a href="#" id="tactic_save" data-estate="1"><i class="fa fa-floppy-o"></i></a>');
var $st = $('<span class="title">Adv Sort</span>');
var $sortMode = $('<div id="sort_mode" data-estate="1"><i class="fa fa-sort-numeric-asc"></i></div>');
var $sortType = $('<div class="ordericon advordericon" data-sort="type"><i class="fa fa-info-circle"></i></div>');
var $sortIA = $('<div class="ordericon advordericon" data-sort="ai"><i class="fa fa-tag"></i></div>');
var $sortPrice = $('<div class="ordericon advordericon" data-sort="price"><i class="fa fa-btc"></i></div>');
var $sortCapacity = $('<div class="ordericon advordericon" data-sort="capacity"><i class="fa fa-bolt"></i></div>');
var $sortLevelUp = $('<div class="ordericon advordericon" data-sort="level-up"><i class="fa fa-plus-circle"></i></div>');
var estate = readCookie("save_estate");
if(estate == "0" || estate == 0){
$t5.attr('data-estate', 0);
$t5.html('<i class="fa fa-folder-open-o"></i>');
}
// Elements adoption
// $('#position_zone').append($rem_all);
$('#position_zone').append($clear_all);
//$tm.prepend($tt);
$tm.prepend($t1);
$tm.prepend($t2);
$tm.prepend($t3);
$tm.prepend($t4);
$tm.prepend($tdrop);
$tm.prepend($t5);
$sm.prepend($st);
$sm.append($sortMode);
$sm.append($sortType);
$sm.append($sortIA);
$sm.append($sortPrice);
$sm.append($sortCapacity);
$sm.append($sortLevelUp);
$('#_team_management').prepend($sm);
$('#_team_management').prepend($tm);
//Styles
$sm.css({
'float':'left',
'width': '510px',
'height': '25px',
'margin': '0 0 4px 0'
});
$tm.css({
'float':'right',
'width': '440px',
'height': '25px',
'margin': '0 0 4px 0'
});
$tt.css({
'background': '#222931 none repeat scroll 0 0',
'border-radius': '20px',
'color': '#5bc0de',
'display': 'inline-block',
'font-family': 'Orbitron,Verdana',
'line-height': '25px',
'text-align': 'center',
'float':'left',
'width': '180px',
'height': '25px'
});
$('#_team_management #tactis_menu a').css({
'background': '#222931 none repeat scroll 0 0',
'border-radius': '20px',
'color': '#5bc0de',
'display': 'inline-block',
'font-family': 'Orbitron,Verdana',
'float': 'right',
'line-height': '25px',
'text-align': 'center',
'width': '50px'});
$('#position_warning').css({
'z-index': 99999,
'left': '60px',
'bottom': '-20px'});
$st.css({
'background': 'rgba(0, 0, 0, 0.5) none repeat scroll 0 0',
'border': '2px solid transparent',
'border-radius': '5px 0 0 5px',
'float': 'left',
'margin-right': '14px',
'padding': '4px 10px',
'position': 'relative',
'text-align': 'center',
'width': '100px'
});
$sortMode.css({
'background': 'rgba(0, 0, 0, 0.5) none repeat scroll 0 0',
'border': '2px solid transparent',
'border-radius': '5px',
'cursor': 'pointer',
'display': 'inline-block',
'margin-right': '1px',
'padding': '4px 5px',
'text-align': 'center',
'width': '35px'
});
$('#sort_menu_ext .advordericon').css({
'background': 'rgba(0, 0, 0, 0.5) none repeat scroll 0 0',
'border': '2px solid transparent',
'border-radius': '5px',
'cursor': 'pointer',
'display': 'inline-block',
'margin-right': '1px',
'padding': '4px 5px',
'text-align': 'center',
'width': '35px'
});
$( "<style>.advordericon.selected{border: 2px solid #b6ffff !important;color: #5bc0de !important;}</style>" ).appendTo( "head" )
//Events
$rem_all.click(function(e){e.preventDefault();NB_Management.remove_all()});
$clear_all.click(function(e){e.preventDefault();NB_Management.clear_all()});
$t5.click(function(e){
e.preventDefault();
var estate = $(this).attr('data-estate');
if(estate == "1" || estate == 1){
$(this).attr('data-estate', 0);
$(this).html('<i class="fa fa-folder-open-o"></i>');
estate = 0;
}else{
$(this).attr('data-estate',1);
$(this).html('<i class="fa fa-floppy-o"></i>')
estate = 1;
}
createCookie("save_estate", estate, 365);
});
$('.tactic_btn').click(function(e){
e.preventDefault();
var id = $(this).attr('data-id');
if($("#tactic_save").attr('data-estate') == "1"){
var j = NB_Management.readPositions();
createCookie("BrBa_tactic_" + id, JSON.stringify(j), 365);
}else{
var j = readCookie("BrBa_tactic_" + id);
NB_Management.setPositions(JSON.parse(j));
}
});
$sortMode.click(function(e){
var estate = $(this).attr('data-estate');
if(estate == "1" || estate == 1){
$(this).attr('data-estate', -1);
$(this).html('<i class="fa fa-sort-numeric-desc"></i>');
}else{
$(this).attr('data-estate',1);
$(this).html('<i class="fa fa-sort-numeric-asc"></i>')
}
$(".ordericon.selected").click();
});
$(".ordericon").off("click");
$(".ordericon").on("click", function() {
//if($(this).hasClass("selected")) { return; }
$(".ordericon").removeClass("selected");
$(this).addClass("selected");
$("#neuron_informations").hide();
sort_type = $(this).attr("data-sort");
localStorage.setItem("neuronsortAdv", sort_type);
for(idx in my_team.players) { my_team.players[idx].canvas.anim = false; }
set_neurons();
NB_Management.update_selected();
});
var sort_type = localStorage.getItem("neuronsortAdv") || "number";
$(".ordericon").removeClass("selected");
$(".ordericon[data-sort="+sort_type+"]").addClass("selected");
set_neurons();
|
|