Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name TagPro Chat Macros Userscript
- // @namespace http://www.reddit.com/user/contact_lens_linux/
- // @description Help your team with quick chat macros.
- // @include http://tagpro-*.koalabeast.com:*
- // @include http://tangent.jukejuice.com:*
- // @include http://maptest.newcompte.fr:*
- // @license GPL version 3 or any later version; http://www.gnu.org/copyleft/gpl.html
- // @author steppin, Watball
- // @version 0.4
- // ==/UserScript==
- (function() {
- function contentEval(source) {
- // Check for function input.
- if ('function' == typeof source) {
- // Execute this function with no arguments, by adding parentheses.
- // One set around the function, required for valid syntax, and a
- // second empty set calls the surrounded function.
- source = '(' + source + ')();'
- }
- // Create a script node holding this source code.
- var script = document.createElement('script');
- script.setAttribute("type", "application/javascript");
- script.textContent = source;
- // Insert the script node into the page, so it will run, and immediately
- // remove it to clean up.
- document.body.appendChild(script);
- document.body.removeChild(script);
- }
- function actualScript() {
- var macros = {};
- macros[103] = {"message": "Top Left", "toAll": false}; // numpad 7
- macros[104] = {"message": "Top", "toAll": false}; // numpad 8
- macros[105] = {"message": "Top Right", "toAll": false}; // numpad 9
- macros[102] = {"message": "Right", "toAll": false}; // numpad 6
- macros[99] = {"message": "Bottom Right", "toAll": false}; // numpad 3
- macros[98] = {"message": "Bottom", "toAll": false}; // numpad 2
- macros[97] = {"message": "Bottom Right", "toAll": false}; // numpad 1
- macros[100] = {"message": "Left", "toAll": false}; // numpad 4
- macros[101] = {"message": "Centre", "toAll": false}; // numpad 5
- macros[106] = {"message": "Rolling Bomb", "toAll": false}; // multiply
- macros[109] = {"message": "TagPro", "toAll": false}; // subtract
- macros[107] = {"message": "Juke Juice", "toAll": false}; // add
- macros[110] = {"message": "mb", "toAll": false}; // decimal point
- macros[96] = {"message": "Base Cleared", "toAll": false}; // numpad 0
- macros[49] = {"message": "1 in Base", "toAll": false}; // 1
- macros[50] = {"message": "2 in Base", "toAll": false}; // 2
- macros[51] = {"message": "3 in Base", "toAll": false}; // 3
- macros[52] = {"message": "4 in Base", "toAll": false}; // 4
- macros[66] = {"message": "Grab Button", "toAll": false}; // B
- macros[111] = {"message": "gg", "toAll": false}; // divide
- macros[53] = {"message": "1", "toAll": false}; // 5
- macros[54] = {"message": "2", "toAll": false}; // 6
- macros[55] = {"message": "3", "toAll": false}; // 7
- macros[56] = {"message": "4", "toAll": false}; // 8
- // Game bindings overriding adapted from JohnnyPopcorn's NeoMacro https://gist.github.com/JohnnyPopcorn/8150909
- var handlerbtn = $('#macrohandlerbutton');
- handlerbtn.keydown(keydownHandler)
- .keyup(keyupHandler);
- handlerbtn.focus();
- $(document).keydown(documentKeydown);
- function documentKeydown(event) {
- if (!tagpro.disableControls) {
- handlerbtn.focus(); // The handler button should be always focused
- }
- }
- function keydownHandler(event) {
- var code = event.keyCode || event.which;
- if (code in macros && !tagpro.disableControls) {
- chat(macros[code]);
- event.preventDefault();
- event.stopPropagation();
- //console.log(macros[code]);
- }
- }
- function keyupHandler(event) {
- if (event.keyCode in macros && !tagpro.disableControls) {
- event.preventDefault();
- event.stopPropagation();
- }
- }
- var lastMessage = 0;
- var active = false;
- function chat(chatMessage) {
- var limit = 500 + 10;
- var now = new Date();
- var timeDiff = now - lastMessage;
- if (timeDiff > limit) {
- tagpro.socket.emit("chat", chatMessage);
- lastMessage = new Date();
- } else if (timeDiff >= 0 && !active) {
- active = true;
- setTimeout(function(chatMessage) { chat(chatMessage); active = false }, limit - timeDiff, chatMessage);
- }
- }
- }
- // This dummy input will handle macro keypresses
- var btn = document.createElement("input");
- btn.style.opacity = 0;
- btn.style.position = "absolute";
- btn.style.top = "-100px";
- btn.style.left = "-100px";
- btn.id = "macrohandlerbutton";
- document.body.appendChild(btn);
- contentEval(actualScript);
- })();
Add Comment
Please, Sign In to add comment