Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Tagpro SpinPupsTimers
- // @namespace http://*.koalabeast.com:*
- // @version 1.4.1
- // @description Shows ball spin, empty power-up tiles & timers. also PPG text pack
- // @match http://koalabeast.com
- // @copyright 2014+, Ly and a little bit of Cumflakes & 420
- // @include http://tagpro-*.koalabeast.com:*
- // @include http://tangent.jukejuice.com:*
- // @include http://maptest.newcompte.fr:*
- // @include http://justletme.be:*
- // ==/UserScript==
- tagpro.ready(function(){
- //This is important.
- if(tagpro.events.drawPlayer)
- return;
- //Textures.Change at will
- var image = new Image();
- image.src = "http://i.imgur.com/2PLWzgV.png";
- document.getElementById("tiles").src = "http://i.imgur.com/HB2OecD.png";
- document.getElementById("splats").src = "http://i.imgur.com/onbZ4Bc.png";
- document.getElementById("speedpad").src = "http://i.imgur.com/yqF0WRE.png";
- document.getElementById("speedpadred").src = "http://i.imgur.com/eip9Kqt.png";
- document.getElementById("speedpadblue").src = "http://i.imgur.com/3IF7ljc.png";
- document.getElementById("portal").src = "http://i.imgur.com/A4nhUp9.png";
- //Empty power-up tile. Located beneath the other powerups
- tagpro.tiles[6]["x"] = 12;
- tagpro.tiles[6]["y"] = 8;
- tagpro.events.register({
- drawPlayer: function(player, context, drawPos, TILESIZE) {
- if (player.team == 1)
- context.drawImage(image, 3 * 40, 0, 40, 40, drawPos.x, drawPos.y, 40 / tagpro.zoom, 40 / tagpro.zoom);
- if (player.team == 2)
- context.drawImage(image, 1 * 40, 0, 40, 40, drawPos.x, drawPos.y, 40 / tagpro.zoom, 40 / tagpro.zoom);
- var radian = (Math.PI / 180),
- points = [],
- angle = (player.angle/radian % 360)+360;
- for (i = 0; i < 10; i++) {
- var iAngle = angle + 360 / 10 * i,
- side = ((iAngle + 270) % 360 > 180) ? 0 : -0,
- outerAngle = (iAngle + 90) % 180,
- outerAngle = (side > 0) ? 180 - outerAngle : outerAngle,
- offset = (-8.546e-10 * Math.pow(outerAngle, 5)
- + 4.311e-7 * Math.pow(outerAngle, 4)
- - 6.669e-5 * Math.pow(outerAngle, 3)
- + 0.001099 * Math.pow(outerAngle, 2)
- + 0.3462 * outerAngle),
- innerX = 18 * Math.cos(iAngle * radian) / tagpro.zoom,
- innerY = 18 * Math.sin(iAngle * radian) / tagpro.zoom,
- outerX = 30 * Math.cos((iAngle + offset * side) * radian) / tagpro.zoom,
- outerY = 30 * Math.sin((iAngle + offset * side) * radian) / tagpro.zoom;
- points.push({ix: innerX, iy: innerY, ox: outerX, oy: outerY});
- }
- for (i = 0; i < points.length; i += 2) {
- var color = (player.team == 1) ? 2 : 0;
- first = points[i],
- second = points[(i + 1) % points.length];
- context.save();
- context.beginPath();
- context.moveTo(drawPos.x + 20 / tagpro.zoom, drawPos.y + 20 / tagpro.zoom);
- context.quadraticCurveTo(drawPos.x + first.ix + 20 / tagpro.zoom, drawPos.y + first.iy + 20 / tagpro.zoom, drawPos.x + first.ox + 20 / tagpro.zoom, drawPos.y + first.oy + 20 / tagpro.zoom);
- context.lineTo(drawPos.x + second.ox + 20 / tagpro.zoom, drawPos.y + second.oy + 20 / tagpro.zoom);
- context.quadraticCurveTo(drawPos.x + second.ix + 20 / tagpro.zoom, drawPos.y + second.iy + 20 / tagpro.zoom, drawPos.x + 20 / tagpro.zoom, drawPos.y + 20 / tagpro.zoom);
- context.clip();
- context.drawImage(image, color * 40, 0, 40, 40 , drawPos.x, drawPos.y, 40 / tagpro.zoom, 40 / tagpro.zoom);
- context.restore();
- context.closePath();
- }
- if (player.tagpro)
- context.drawImage(image, 5 * 40, 0, 40, 40 , drawPos.x, drawPos.y, 40 / tagpro.zoom, 40 / tagpro.zoom);
- else
- context.drawImage(image, 4 * 40, 0, 40, 40 , drawPos.x, drawPos.y, 40 / tagpro.zoom, 40 / tagpro.zoom);
- if (player.bomb && Math.round(Math.random() * 4) == 1) {
- context.globalAlpha = 0.7;
- context.drawImage(image, 6 * 40, 0, 40, 40 , drawPos.x, drawPos.y, 40 / tagpro.zoom, 40 / tagpro.zoom);
- context.globalAlpha = 1;
- }
- }
- });
- });
- //Arrays for juke juices
- gripExpires={};
- gripTimerStarted={};
- gripLeft = {};
- //Arrays for rolling bombs
- bombExpires={};
- bombTimerStarted={};
- bombLeft = {};
- //Arrays for tagpros
- tagproExpires={};
- tagproTimerStarted={};
- tagproLeft = {};
- //Array for old degrees (Since we will be replacing the current degree
- degree = {};
- //Array to see if a player has been checked
- checked = {};
- tileMark = {};
- tileTimer = {};
- powerups = {};
- tagpro.tiles[6]["x"] = 12;
- tagpro.tiles[6]["y"] = 8;
- //Others (???)
- //tagpro.tiles.draw=function(e,t,n,r,i,u,a){a=a||!1;var f=tagpro.tiles[t];if(!f)return;r=r||40,i=i||40,this.firstLoad&&f.drawFloor&&tagpro.tiles.draw(e,2,n,undefined,undefined,undefined,a);if(f.draw){var l=n.x+","+n.y,c=s[l];this.firstLoad&&tagpro.tiles.draw(e,2,n,undefined,undefined,undefined,a),c?c.tile=f:s[l]={tile:f,context:e,pos:{x:n.x,y:n.y}}}else{var h=f.spread||0,p=(f.size||r)*(a?1/tagpro.zoom:1),d=(f.size||i)*(a?1/tagpro.zoom:1),v=function(){u!=undefined&&(e.globalAlpha=u),f.drawFloor&&tagpro.tiles.draw(e,2,n,undefined,undefined,undefined,a),f.isFlag&&tagpro.events.drawFlag?tagpro.events.drawFlag.forEach(function(t){t.drawFlag(e,n,p,d)}):e.drawImage(tagpro.tiles.image,f.x*40-h,f.y*40-h,(f.size||40)+h*2,(f.size||40)+h*2,n.x-h,n.y-h,p+h*2,d+h*2),e.globalAlpha=1};h?(o.push(v),n={x:n.x,y:n.y}):v()}};
- //Maptest(???)
- //tagpro.tiles.draw=function(e,t,n,r,i,u,a){a=a||!1;var f=tagpro.tiles[t];if(!f)return;r=r||40,i=i||40,this.firstLoad&&f.drawFloor&&tagpro.tiles.draw(e,2,n,undefined,undefined,undefined,a);if(f.draw){var l=n.x+","+n.y,c=s[l];this.firstLoad&&tagpro.tiles.draw(e,2,n,undefined,undefined,undefined,a),c?c.tile=f:s[l]={tile:f,context:e,pos:{x:n.x,y:n.y}}}else{if(t==6)createTimer(n.x,n.y);var h=f.spread||0,p=(f.size||r)*(a?1/tagpro.zoom:1),d=(f.size||i)*(a?1/tagpro.zoom:1),v=function(){u!=undefined&&(e.globalAlpha=u),f.drawFloor&&tagpro.tiles.draw(e,2,n,undefined,undefined,undefined,a),e.drawImage(tagpro.tiles.image,f.x*40-h,f.y*40-h,(f.size||40)+h*2,(f.size||40)+h*2,n.x-h,n.y-h,p+h*2,d+h*2),e.globalAlpha=1};h?(o.push(v),n={x:n.x,y:n.y}):v()}};
- /* tagpro.tiles.draw = function (e,t,n,r,i,u,a){
- a=a||!1;
- var f=tagpro.tiles[t];
- if(!f) return;
- r=r||40,i=i||40,this.firstLoad&&f.drawFloor&&tagpro.tiles.draw(e,2,n,undefined,undefined,undefined,a);
- var h=f.spread||0,p=(f.size||r)*(a?1/tagpro.zoom:1),d=(f.size||i)*(a?1/tagpro.zoom:1),v=function(){u!=undefined&&(e.globalAlpha=u),f.drawFloor&&tagpro.tiles.draw(e,2,n,undefined,undefined,undefined,a),e.drawImage(tagpro.tiles.image,f.x*40-h,f.y*40-h,(f.size||40)+h*2,(f.size||40)+h*2,n.x-h,n.y-h,p+h*2,d+h*2),e.globalAlpha=1};h?(o.push(v),n={x:n.x,y:n.y}):v()
- if (t==6) {
- e.font="18px Helvetica";
- e.fillStyle="white";
- e.fillText(gameClock-60, n.x+8, n.y+28);
- //createTimer(n.x,n.y);
- }
- }*/
- /*function addPowerup(x,y,type,respawnTime) {
- var delta = x+"_"+y;
- for (var i=0; i<powerups.length; i++)
- if (powerups[i].delta==delta) {
- powerups.splice(i,1);
- break;
- }
- powerups[delta] = {delta: delta, x: x, y: y, type: type, respawnTime: respawnTime};
- };
- */
- tagpro.flair.draw = function(t,n,r){
- var img=document.getElementById("flair");
- t.drawImage(img,r.x*16,r.y*16,16,16,n.x+13,n.y-16,16,16)
- };
- tagpro.ui.createPlayerCache = function f(e){e.cache={canvas:$("<canvas></canvas>").attr("width",125).attr("height",35).get(0)},e.degreeCache={canvas:$("<canvas></canvas>").attr("width",45).attr("height",35).get(0)},e.cache.context=e.cache.canvas.getContext("2d"),e.degreeCache.context=e.degreeCache.canvas.getContext("2d"),e.cache.update=function(){e.cache.context.clearRect(0,0,125,35),e.degreeCache.context.clearRect(0,0,45,35);var t=e.auth?"#BFFF00":"#ffffff";tagpro.settings.ui.names&&tagpro.prettyText(e.name,15,15,t,!1,!1,e.cache.context),e.degree&&tagpro.settings.ui.degrees&&tagpro.prettyText(e.degree,20,15,"#ffffff",!1,!1,e.degreeCache.context)},e.cache.update()};
- //Start up the loop...
- setInterval(function(){
- //Loop through the players object
- for(player in tagpro.players){
- //This is for players that do not currently have flair
- tagpro.players[player].flair = tagpro.players[player].flair || { }
- //Extend the width of the degree area so more text will fit in it..
- tagpro.players[player].degreeCache.context.canvas.width=500;
- //Juke juice checking...
- if (tagpro.players[player].grip) {
- if (gripTimerStarted[player]!=true) {
- gripExpires[player] = Math.round(new Date().getTime() / 1000)+21;
- gripTimerStarted[player]=true;
- }
- gripLeft[player] = gripExpires[player]-Math.round(new Date().getTime() / 1000);
- }
- else {
- gripLeft[player]=0;
- gripTimerStarted[player]=false;
- }
- //Rolling bomb checking...
- if (tagpro.players[player].bomb) {
- if (bombTimerStarted[player]!=true) {
- bombExpires[player] = Math.round(new Date().getTime() / 1000)+21;
- bombTimerStarted[player]=true;
- }
- bombLeft[player] = bombExpires[player]-Math.round(new Date().getTime() / 1000);
- }
- else {
- bombLeft[player]=0;
- bombTimerStarted[player]=false;
- }
- //Tagpro checking..
- if (tagpro.players[player].tagpro) {
- if (tagproTimerStarted[player]!=true) {
- tagproExpires[player] = Math.round(new Date().getTime() / 1000)+21;
- tagproTimerStarted[player]=true;
- }
- tagproLeft[player] = tagproExpires[player]-Math.round(new Date().getTime() / 1000);
- }
- else {
- tagproLeft[player]=0;
- tagproTimerStarted[player]=false;
- }
- //If this is the first time seeing the player, store their degree, and add it to their name
- if (checked[player]!=true) {
- degree[player]=tagpro.players[player].degree;
- tagpro.players[player].name = tagpro.players[player].name + " ("+degree[player]+")";
- }
- //Update the players degree with the times of the current powerups
- tagpro.players[player].degree="";
- if (gripLeft[player]>0) tagpro.players[player].degree="JJ: "+gripLeft[player];
- if (gripLeft[player]>0 && (bombLeft[player]>0 || tagproLeft[player]>0)) tagpro.players[player].degree=tagpro.players[player].degree+" | ";
- if (bombLeft[player]>0) tagpro.players[player].degree=tagpro.players[player].degree+"RB: "+bombLeft[player];
- if (bombLeft[player]>0 && tagproLeft[player]>0) tagpro.players[player].degree=tagpro.players[player].degree+" | ";
- if (tagproLeft[player]>0) tagpro.players[player].degree=tagpro.players[player].degree+"TP: "+tagproLeft[player];
- //Update the players cache so it actually shows up in game
- tagpro.players[player].cache.update();
- //Check the player off
- checked[player] = true;
- }
- //Redraw player (???)
- //6: PU Spawn
- //6.1: JJ
- //6.2: RB
- //6.3: TP
- /* for(collumn in tagpro.map){
- for(tile in tagpro.map[collumn]){
- if(tagpro.map[collumn][tile]==6.1) {
- addPowerup(collumn,tile,"Juke Juice",0);
- }
- if(tagpro.map[collumn][tile]==6.2) {
- addPowerup(collumn,tile,"Rolling Romb",0);
- }
- if(tagpro.map[collumn][tile]==6.3) {
- addPowerup(collumn,tile,"TagPro",0);
- }
- if(tagpro.map[collumn][tile]==6) {
- var delta = collumn+"_"+tile;
- for (var i=0; i<powerups.length; i++)
- if (powerups[i].delta==delta) var added=true;
- if (added=!true) {
- var respawnTime = Math.round(new Date().getTime() / 1000)+60;
- addPowerup(collumn,tile,"Unknown",respawnTime);
- }
- }
- }
- }
- console.clear();
- powerups.forEach(function(powerup){
- var secondsUntilRespawn = powerup.respawnTime - Math.round(new Date().getTime() / 1000);
- console.log("X: "+powerup.x+" | Y: "+powerup.y+" | Type: "+powerup.type+" | Respawns in: "+secondsUntilRespawn);
- //if (secondsUntilRespawn<1) powerups.splice(powerup,1);
- });
- */
- },200);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement