Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name TagPro Easter Aim Helper
- // @version 0.4.2
- // @author Some Ball -1
- // @include http://tagpro-*.koalabeast.com:*
- // @grant none
- // ==/UserScript==
- /* jshint -W097 */
- 'use strict';
- var wait = 0;
- tagpro.ready(function init() {
- var rotation = false;
- var rotationSpeed = 0.25; //number in radians to change each step
- var rotationFreq = 50; //milliseconds between rotation steps
- var lineWidth = 23; //23 is default
- var showCount = true;
- var clickThroughScoreboard = false; //will not be able to report or change name via scoreboard if enabled
- var disableRightClickOnCanvas = false; //also allows right click to shoot if enabled
- var customEggs = false;
- var redEgg = 'http://i.imgur.com/K0B2Nem.png';
- var blueEgg = 'http://i.imgur.com/4bqBaDp.png';
- var customCrosshair = 'http://i.imgur.com/SqgcQCb.png'; //url for custom crosshair image, designed for a 32x32 image; set to empty single quote marks, '', to disable
- var tr = tagpro.renderer;
- if(!tr.stage.click) {
- if(wait>25) return;
- wait++;
- return setTimeout(init,10);
- }
- if(clickThroughScoreboard) $('#options').css('pointer-events','none');
- var mousePos = {x: 0, y: 0};
- if(customCrosshair) {
- $("<style type='text/css'>canvas{cursor: url("+customCrosshair+") 16 16, crosshair !important;}</style>").appendTo("head");
- $('body').append('<img id="crosshair" src='+customCrosshair+' style="display: none; position: absolute; pointer-events: none;">');
- $(document).keydown(function(e) {
- if(tagpro.disableControls) return;
- $('#crosshair').show().css({top: (mousePos.y-16)+'px', left: (mousePos.x+17)+'px'});
- });
- }
- var usps = tr.updatePlayerSpritePosition;
- tr.updatePlayerSpritePosition = function(player) {
- if(player.id===tagpro.playerId && (!player.sprites.mouseLine || !player.sprites.mouseLine.parent)) {
- var rect = new PIXI.Graphics();
- rect.beginFill(player.team===1?0xff0000:0x0000ff).drawRect(0,0,lineWidth,40*15).alpha = 0.5;
- rect.pivot.set(lineWidth/2,-lineWidth/2);
- rect.position.set(20,20);
- player.sprites.mouseLine = rect;
- player.sprites.ball.addChildAt(player.sprites.mouseLine,0);
- }
- return usps.apply(this,arguments);
- }
- if(customEggs) {
- tr.drawMarsball = function(object, position) {
- if (object.type == "marsball") {
- return oldDrawMarsball(object, position);
- }
- if (object.type !== "egg") {
- return;
- }
- if (tagpro.spectator) {
- object.draw = true;
- }
- if (object.team === "Red") {
- object.sprite = new PIXI.Sprite.fromImage(redEgg);
- } else {
- object.sprite = new PIXI.Sprite.fromImage(blueEgg);
- }
- object.sprite.position.x = position.x;
- object.sprite.position.y = position.y;
- object.sprite.pivot.set(-8, -4);
- tagpro.renderer.layers.foreground.addChild(object.sprite);
- object.sprite.keep = true;
- if (!object.draw) {
- object.sprite.visible = false;
- }
- };
- }
- function ab(v1,v2) { return Math.atan((v1.x-v2.x)/(v1.y-v2.y)) };
- var clearable;
- function disableTint() {
- if(!clearable) {
- var me = tagpro.players[tagpro.playerId];
- if(me.sprites.mouseLine) me.sprites.mouseLine.tint = 0x000000;
- clearable = setTimeout(() => {
- if(me.sprites.mouseLine) me.sprites.mouseLine.tint = 0xffffff;
- clearable = false;
- }, 1000);
- }
- }
- var pause = 0;
- tr.stage.interactive = true;
- tr.stage.click = function(event) {
- if(!event.originalEvent) {
- if(rotation) return;
- event.global = mousePos;
- }
- //var pos = event.getLocalPosition(tr.gameContainer);
- var pos = {
- x: (event.global.x-tr.gameContainer.position.x)/tr.gameContainer.scale.x,
- y: (event.global.y-tr.gameContainer.position.y)/tr.gameContainer.scale.y
- };
- tagpro.socket.emit("click",pos);
- disableTint();
- };
- if(disableRightClickOnCanvas) {
- $('#viewport').attr('oncontextmenu','return false;');
- tr.stage.rightclick = function(event) {
- tr.stage.click(event);
- }
- }
- tr.stage.mousemove = function(event) {
- var me = tagpro.players[tagpro.playerId];
- if(!me.sprites.mouseLine) return;
- mousePos = event.global;//{x: event.originalEvent.pageX, y: event.originalEvent.pageY};
- $('#crosshair').hide();
- var pos = event.getLocalPosition(tr.gameContainer);
- pause = 1;
- me.sprites.mouseLine.rotation = Math.PI+(((Math.round(me.y)+20)<pos.y)?Math.PI:0)-ab({x: Math.round(me.x)+20,y: Math.round(me.y)+20},{x: pos.x,y: pos.y});
- };
- $(document).click((event) => {
- if(event.target!=$('#viewport')[0]) {
- var e = {originalEvent: true};
- e.global = {x: event.pageX-parseInt($('#viewport').css('left')), y: event.pageY-parseInt($('#viewport').css('top'))};
- tr.stage.click(e);
- }
- });
- if(showCount) {
- var pops = 0;
- var tags = 0;
- function makeCount(me) {
- me.sprites.count = tr.veryPrettyText(tags+' - '+pops, me.team===1?'#ff0000':'#2222ff');
- me.sprites.count.position.x = 4-Math.round((new PIXI.Text(tags+' - '+pops, {font: "bold 8pt Arial"})).width/2);
- me.sprites.count.position.y = 40;
- me.sprites.info.addChild(me.sprites.count);
- }
- tagpro.socket.on('p',(data) => {
- data = data.u || data;
- for(var i = 0;i < data.length;i++) {
- if(data[i].id===tagpro.playerId) {
- var me = tagpro.players[tagpro.playerId];
- if(me.sprites) {
- if(!me.sprites.count) makeCount(me);
- if(data[i]['s-pops'] || data[i]['s-tags']) {
- if(data[i]['s-pops']) pops = data[i]['s-pops'];
- if(data[i]['s-tags']) tags = data[i]['s-tags'];
- if(me.sprites.count) me.sprites.info.removeChild(me.sprites.count);
- makeCount(me);
- }
- }
- }
- }
- });
- }
- if(rotation) {
- tagpro.events.register({
- keyDown: function(key) {
- var me = tagpro.players[tagpro.playerId];
- if(key==='space' && me.sprites && me.sprites.mouseLine) {
- var e = {originalEvent: true};
- e.global = {x: Math.round(me.x)+20-10*Math.sin(me.sprites.mouseLine.rotation)+tr.gameContainer.position.x,
- y: Math.round(me.y)+20+10*Math.cos(me.sprites.mouseLine.rotation)+tr.gameContainer.position.y};
- tr.stage.click(e);
- }
- }
- });
- setInterval(function() {
- var me = tagpro.players[tagpro.playerId];
- if(pause>0) pause++;
- else if(me && me.sprites && me.sprites.mouseLine) me.sprites.mouseLine.rotation += rotationSpeed;
- if(pause>5) pause = 0;
- }, rotationFreq);
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement