// This way of changing rank does not work
rootNet.send("savePlayer",{"color": [255, 0, 0, 0],"buildBar":{},"rank": 500,
"fleet":{}})
rootNet.send("savePlayer",{"rank": 500})
// Change sides
network.send("switchSide", "alpha")
// Send chat
rootNet.send('message', {'text': 'test', 'channel': 'Drakon'})
rootNet.send("message",{"text":"mudkippers changed server type to
2v2","color":"FFFFFF","name":"Server","server":true,"channel":"Arcon"})
battlemode.joinServer("insert_server_name")
you can just send the players you recieve to root
try { ui_origin5554 = window.body;} catch (e) {}
var AngelsAss = 0;
window.body = e =>
{
AngelsAss += 1
if (AngelsAss % 4 == 0)
{
sim.players.forEach(player =>
{
if (player.name == "iVFg5" || player.name == "Archangels")
{
if (player.side != "spectators")
{
network.send("kickPlayer", player.number)
}
}
})
}
return ui_origin5554.call(this, e);
};
var do_command = (command_text) =>
{
window.body.call()
}
// keep a reference <- this modifies a function
let s = a;
// redefine
a = function() {
// call the original function with any arguments specified, storing the result
const originalResult = s.apply(s);
// add one
return originalResult + 1;
};
// This test shows that the fingerprint is not checked by the backend, so
technically only email and token are needed to hack, but still looking for a XSS
vulnerability.
rootNet.send("authSignIn", {
email: account.email,
token: account.token
});
network.send("configGame", { type: "sandbox"})
account.hasDLC = () => true; account.hasDLCBonus = () => true;
// test
var LoadPrivServer = {
intv: null,
};
if (LoadPrivServer.intv) {
clearInterval(LoadPrivServer.intv);
LoadPrivServer.intv = setInterval(() => {
if(ui.mode == "multiplayer" && !rootNet.servers["Server (unofficial)"]){
rootNet.servers["Server (unofficial)"] = {
"name": "Server (unofficial)",
"address": "ws://istro-server.herokuapp.com/:80",
"observers": "",
"players": [],
"type": "",
"version": 0,
"state": "waiting"
};
}
}, 1000) //!say "<server name>" <whatever you want>
// move order
network.send('moveOrder', [[0, 0]], 1, false, 0);
network.send('moveOrder', ['hi'], 1, false, 0); //hack
// color change
let change_color = true;
let frequency = 0.1;
let cur_color = 0;
let changeColor = () => {
if (change_color) {
let red = Math.floor(Math.sin(frequency*cur_color + 0) * 127 + 128);
let green = Math.floor(Math.sin(frequency*cur_color + 2) * 127 + 128);
let blue = Math.floor(Math.sin(frequency*cur_color + 4) * 127 + 128);
commander.color = [red, green, blue, 127];
account.save();
rootNet.send("savePlayer",{"color": [red, green, blue, 127]});
cur_color = (cur_color + 1)
}
};
let intervalID = setInterval(changeColor, 800);
// set change_color = false; to disable
//guide
https://docs.google.com/document/d/1ihDU1ikpYzYelG55uslY_-QzbwCHDVAdQc8pgfFhieA
// jump circle
Player.prototype.draw = function () {
var angle, arc, arcRad, color, cur, drawIt, i, j, len, n, other, range, ref,
ref1, ref2, results, t, th, x, y;
if (!ui.show) {
return;
}
if ((ref = sim.galaxyStar) != null) {
if (typeof ref.draw === "function") {
ref.draw();
}
}
if (battleMode.rallyPlacing) {
baseAtlas.drawSprite("img/unitBar/rallyPoint.png", battleMode.mouse, [1,
1], 0);
} else if (commander.rallyPoint && commander.rallyPoint[0] !== 0 &&
commander.rallyPoint[1] !== 0) {
baseAtlas.drawSprite("img/unitBar/rallyPoint.png", commander.rallyPoint,
[1, 1], 0);
}
if (!this.selection) {
return;
}
ref1 = this.selection;
results = [];
for (j = 0, len = ref1.length; j < len; j++) {
t = ref1[j];
if (t.dead) {
continue;
}
color = this.color;
if (typeof t.drawSelection === "function") {
t.drawSelection(color);
}
if (this.selection.length === 1) {
if (t.weapons) {
drawAllArcs(t);
}
if (t.jump >= t.minJump) {
results.push(drawDottedCircle([t.pos[0] + t.vel[0] * 6, t.pos[1] +
t.vel[1] * 6], t.jump, [0, 0, 0, 125]));
} else {
results.push(void 0);
}
} else {
if (((ref2 = t.weapons) != null ? ref2.length : void 0) > 0) {
range = t.weaponRange;
arc = t.weaponArc;
cur = Math.PI * range * 2;
n = Math.floor(cur / 80 * arc / 360);
results.push((function() {
var l, len1, m, ref3, ref4, ref5, results1;
results1 = [];
for (i = l = ref3 = -n, ref4 = n; ref3 <= ref4 ? l < ref4 : l > ref4;
i = ref3 <= ref4 ? ++l : --l) {
th = i / (n * 2) * arc / 180 * Math.PI + t.rot + Math.PI;
x = Math.sin(-th) * range;
y = Math.cos(-th) * range;
_pos[0] = t.pos[0] + x;
_pos[1] = t.pos[1] + y;
drawIt = true;
ref5 = this.selection;
for (m = 0, len1 = ref5.length; m < len1; m++) {
other = ref5[m];
if (other.unit && other.id !== t.id && other.owner === t.owner) {
if ((other.weapons != null) && other.weapons.length > 0) {
v2.sub(_pos, other.pos, _vec);
if (v2.mag(_vec) < other.weaponRange) {
angle = v2.angle(_vec);
arcRad = other.weaponArc / 180 * Math.PI;
if (Math.abs(angleBetween(angle, other.rot)) < arcRad / 2)
{
drawIt = false;
break;
}
}
}
}
}
if (drawIt) {
results1.push(baseAtlas.drawSprite("img/arrow02.png", _pos,
[.5, .5], th + Math.PI, [255, 0, 0, 255]));
} else {
results1.push(void 0);
}
}
return results1;
}).call(this));
} else {
results.push(void 0);
}
}
}
return results;
};
// it repeating that command for an insane rate[ELYS]Magnusiiftun1857: repeating
connect and run command
window.BulletLines = (function () {
function BulletLines() {
this.image = "img/laser01.png";
this.imageWidth = 437;
this.alpha = 100;
this.running = true;
this.bullets = {
"MissileBullet": true,
"PlasmaBullet": true,
"TorpBullet": true,
"WavePullArch": true,
"EMPOrb2": true,
"EMPOrb": true,
"FlackBullet": true,
"SidewinderBullet": true,
"AutoBullet": true,
"ArtilleryBullet": true,
"RingBullet": true,
"HeavyPDBullet": true,
"FlameBullet": true,
"Bomb": true
};
this.init();
}
BulletLines.prototype.drawLine = function (from, to, width, rgba) {
var offset = v2.create,
rot, d;
v2.sub(to, from, offset);
rot = v2.angle(offset);
d = v2.mag(offset) / this.imageWidth;
v2.scale(offset, .5);
v2.add(offset, from);
baseAtlas.drawSprite(this.image, offset, [width, d], rot, rgba);
}
BulletLines.prototype.drawBullet = function (bullet) {
_this = this;
let drawBullet = types[bullet].prototype.draw;
types[bullet].prototype.draw = function () {
var results = drawBullet.call(this);
if (!_this.bullets[bullet] || !_this.running) return results;
range = (this.maxLife - this.life) * (v2.mag(this.vel) * 1.06) +
this.radius;
th = this.rot + Math.PI;
x = Math.sin(-th) * range;
y = Math.cos(-th) * range;
pos = [this.pos[0] + x, this.pos[1] + y];
size = this.damage * .002 + .02;
color = [this.damage * 2, 0, 0, 255];
_this.drawLine(this.pos, pos, size, color)
return results;
}
}
BulletLines.prototype.init = function () {
for (let bullet in this.bullets) this.drawBullet(bullet);
}
return BulletLines;
})();