// ==UserScript==
// @name splixHax Vbetter
// @namespace http://tampermonkey.net/
// @version 15.2
// @description better than other splix hacks
// @author You
// @match *://splix.io/*
// @grant none
// @downloadURL https://update.greasyfork.icu/scripts/381594/splixHax%20Vbetter.user.js
// @updateURL https://update.greasyfork.icu/scripts/381594/splixHax%20Vbetter.meta.js
// ==/UserScript==
(function() {
'use strict';
window.serverSel=null;
window.addEventListener('load',function(){
window.MAX_ZOOM=10000;
window.USERNAME_SIZE=6;
var defzm=window.BLOCKS_ON_SCREEN,zm=1;
window.addEventListener('wheel',function(e){
if(window.document.activeElement.tagName=="input")return;
zm+=e.deltaY/window.Math.abs(e.deltaY)*.5;
if(defzm*zm>16000)zm-=.5;
if(defzm*zm<100)zm+=.5;
window.BLOCKS_ON_SCREEN=defzm*zm;
});
window.trackGameStart=function(){
window.sendDir(4);
window.setTimeout(()=>window.sendDir(4),0);
window.setTimeout(()=>window.sendDir(4),125);
window.setTimeout(()=>window.sendDir(4),250);
window.setTimeout(()=>window.sendDir(4),375);
window.setTimeout(()=>window.sendDir(4),500);
window.myOldPlayer=window.myPlayer;
};
window.addEventListener("hashchange",function(){
if(window.serverSel!=null&&window.selectedGamemode.startsWith("N")&&"#"+window.serverSel.value!=window.location.hash)window.selUpd();
},false);
window.selUpd=()=>{
if(window.serverSel==null)return;
var sv=window.serverSel.selectedIndex;
window.serverSel.outerHTML="";
setTimeout(async ()=>{
while(!serversRequestDone)await new window.Promise(r=>window.setTimeout(r,1));
window.createServerSelectPls(true,sv);
},100);
};
window.formElem.appendChild(document.createElement("BR"));
window.createServerSelectPls=function(aa,bb){
window.serverSel=document.createElement("SELECT");
window.serverSel.className="fancyBox inputFancy";
var tobesrvselectinnerhtml='';
window.serverSel.onchange=function(){if(window.serverSel.value==""){window.history.replaceState(null,null,' ');}else{window.location.hash=window.serverSel.value;}};
window.formElem.appendChild(window.serverSel);
window.servers.forEach((srv,indx)=>{
tobesrvselectinnerhtml+='';
if(indx+1==window.servers.length){
window.serverSel.innerHTML=tobesrvselectinnerhtml;
if(aa&&[...window.serverSel.options].some(e=>e.value==window.location.hash.slice(1)))window.serverSel.value=window.location.hash.slice(1);
if(bb==0)window.serverSel.selectedIndex=0;
}
});
};
(async ()=>{
while(!serversRequestDone)await new window.Promise(r=>window.setTimeout(r,1));
window.createServerSelectPls(false,0);
})();
window.tutorialPlayers[0].name="splixHax vBetter";
window.tutorialPlayers[1].name="better than other splix hacks";
});
window.myOldPlayer=null;
window.macroMaker=function(k,s){
if(typeof k=="undefined"||typeof s=="undefined")return "1st arg=array of nums (see desc. for more info), 2nd arg=milliseconds between presses";
for(var i=0;i{window.honkStart();window.honkEnd();},s*i);
}else if(k[i]==6){
//do nothing
}else{
window.setTimeout(a=>window.sendDir(a),s*i,k[i]);
}
}
};
window.spectate=function(back){
window.pressedKeys=[];
if(typeof back!="undefined"&&back){
if(window.myOldPlayer==window.myPlayer)return;
window.myPlayer.isMyPlayer=false;
window.myOldPlayer.isMyPlayer=true;
window.myPlayer=window.myOldPlayer;
lstPlyrIndx=window.players.indexOf(window.myPlayer);
return;
}
if(lstPlyrIndx==-1)lstPlyrIndx=players.indexOf(window.myPlayer);
if(players.length<2)return "error: there is nobody else nearby to spectate";
players[lstPlyrIndx].isMyPlayer=false;
lstPlyrIndx+=1;
if(lstPlyrIndx>=players.length)lstPlyrIndx=0;
players[lstPlyrIndx].isMyPlayer=true;
window.myPlayer.trails=[];
window.myPlayer=players[lstPlyrIndx];
window.myPlayer.trails=[];
return 'now spectating "'+window.myPlayer.name+'"';
}
var lstPlyrIndx=-1,high=false,spam=false,dark=false,keyHandler=function(e){
if(e.keyCode>=112&&e.keyCode<=121&&e.keyCode!=116)return e.preventDefault();
if(window.document.activeElement.tagName=="input")return;
if(e.type.endsWith("n")){
switch(e.key){
case "y":
if(window.myOldPlayer==window.myPlayer){
window.document.title=window.spectate();
window.sendDir(4);
}
break;
case "e":
window.myPlayer.addHitLine(window.myPlayer.pos,window.myColorId);
window.sendDir(4);
break;
}
if("y".split("").includes(e.key)){
if(e.key=="y"?window.myOldPlayer==window.myPlayer:true)window.myPlayer.addHitLine(window.myPlayer.pos,window.myColorId);
resetTitle();
}
};
if(e.type.endsWith("p")){
//window.wsSendMsg(window.sendAction.REQUEST_MY_TRAIL);
switch(e.key){
case "h":
high=!high;
window.document.title="high mode "+(high?"en":"dis")+"abled";
break;
case "g":
spam=!spam;
window.document.title="spam mode "+(spam?"en":"dis")+"abled";
break;
case "f":
window.GLOBAL_SPEED=.006+(+(GLOBAL_SPEED==.006))*.00075;
window.document.title="speed mode "+(window.GLOBAL_SPEED==.006?"dis":"en")+"abled";
break;
case "t":
dark=!dark;
window.document.title="dark mode "+(dark?"en":"dis")+"abled";
break;
case "y":
window.spectate(1);
window.myPlayer.addHitLine(window.myPlayer.pos,window.myColorId);
break;
case "e":
if(window.confirm("are you sure you would like to eat the entire universe?"))window.myPlayer.doHonk(window.Infinity);
break;
}
if("hgft".split("").includes(e.key)){
window.myPlayer.addHitLine(window.myPlayer.pos,window.myColorId);
resetTitle();
}
}
};
var setTitleInterval=-1;
function resetTitle(){
window.clearInterval(setTitleInterval);
setTitleInterval=window.setTimeout(()=>{
window.document.title="splix.io";
setTitleInterval=-1;
},3000);
}
window.addEventListener('keydown',keyHandler);
window.addEventListener('keyup',keyHandler);
var tmpColId;
window.setInterval(()=>{if(!window.isConnectingWithTransition&&window.myPlayer!=null&&window.myOldPlayer!=window.myPlayer)window.spectate();},3000);
window.setInterval(()=>{
var tmpSkinBlock=window.Math.floor(window.Math.random()*13);
try{
window.tutorialPlayers[0].skinBlock=tmpSkinBlock;
window.tutorialPlayers[1].skinBlock=12-tmpSkinBlock;
window.tutorialPlayers[0].doHonk(128);
window.tutorialPlayers[1].doHonk(128);
}catch(e){console.error(e);}
if(window.myPlayer==null)return;
if(window.myOldPlayer==null)window.myOldPlayer=window.myPlayer;
tmpColId=window.myColorId;
while(window.myColorId==tmpColId)window.myColorId=window.Math.floor(window.Math.random()*13);
tmpColId=window.myColorId;
window.myPlayer.skinBlock=(high|!dark)?window.myColorId:13;
if(high)window.myColorId=13;
window.colorUI();
if(high){
window.myColorId=tmpColId;
//window.toggleUglyMode();
}
//make other players stoopid
window.players.filter(v=>v!=window.myPlayer&&!v.name.startsWith('[stoopid] ')&&v!=window.myOldPlayer).forEach(v=>v.name="[stoopid] "+v.name);
window.players.filter(v=>v!=window.myPlayer&&v!=window.myOldPlayer).forEach(v=>{v.skinBlock=high?13:window.myColorId;});
},1000);
var prevGameMode=null;
window.setInterval(()=>{if(spam)window.wsSendMsg(window.sendAction.HONK,128);},10);
window.setInterval(async ()=>{
if(window.selectedGamemode==null)return;
if(prevGameMode==null)prevGameMode=window.selectedGamemode;
if(prevGameMode!=window.selectedGamemode){
prevGameMode=window.selectedGamemode;
window.selUpd();
}
if(window.myPlayer==null)return;
if(window.myOldPlayer==null||(window.myPlayer!=window.myOldPlayer&&window.myPlayer.id==window.myOldPlayer.id))window.myOldPlayer=window.myPlayer;
if(spam)window.myPlayer.doHonk(16);
if(window.myPlayer.isDead){
if(window.myPlayer==window.myOldPlayer){
if(window.myPlayer.deathWasCertain)window.sendDir(4);
window.myPlayer.undoDie();
window.myPlayer.deathWasCertain=false;
//window.doSkipDeathTransition();
}else if(window.myOldPlayer.isDead){
//window.myOldPlayer=window.myPlayer=null;
window.setTimeout(()=>window.myOldPlayer=window.myPlayer=null,100);
window.myPlayer.undoDie();
//window.myPlayer.deathWasCertain=false;
window.spectate(1);
if(window.myPlayer.deathWasCertain)window.sendDir(4);
window.myPlayer.deathWasCertain=false;
}else{window.spectate();}
}
if(high)window.myPlayer.die();
if(window.myPlayer!=window.myOldPlayer)window.pressedKeys=[];
window.clearTimeout(window.deathTransitionTimeout);
if(window.pressedKeys.includes(27))window.doTransition("Despacito",true,null,()=>{window.setTimeout(window.afterDeath,250);window.onClose();window.resetAll();},true);
},0);
window.document.head.innerHTML+="";
})();