您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
When typing out a message, you'll be able to use the arrow keys for movement.
// ==UserScript== // @name TagPro Rolling Chat // @description When typing out a message, you'll be able to use the arrow keys for movement. // @author Ko // @version 3.2 // @match *://*.koalabeast.com/* // @match *://*.jukejuice.com/* // @match *://*.newcompte.fr/* // @supportURL https://www.reddit.com/message/compose/?to=Wilcooo // @website https://redd.it/no-post-yet // @require https://greasyfork.runtimutd.eu.org/scripts/371240/code/TagPro%20Userscript%20Library.js // @license MIT // @namespace https://greasyfork.runtimutd.eu.org/users/152992 // ==/UserScript== // These lines announce that this script is running (handy for other scripts, possibly): // It doesn't influence the features of this script in any way. var short_name = 'rollingchat'; // An alphabetic (no spaces/numbers) distinctive name for the script. var version = GM_info.script.version; // The version number is automatically fetched from the metadata. tagpro.ready(function(){ if (!tagpro.scripts) tagpro.scripts = {}; tagpro.scripts[short_name]={version:version};}); console.log('START: ' + GM_info.script.name + ' (v' + version + ' by ' + GM_info.script.author + ')'); if (tpul.playerLocation != 'game') return; (function enableRollingChat(){ // It is perfectly fine to add this function (unchanged) to your own script. // Multiple instances of "rollingchat" can run simultaniously without problems. // intercept all key presses and releases: document.addEventListener('keydown', keyUpOrDown); document.addEventListener('keyup', keyUpOrDown); function keyUpOrDown( event ) { // The key that is pressed/released (undefined when it is any other key) var arrow = ['left','up','right','down'][[37,38,39,40].indexOf(event.keyCode)] // Only if the controls are disabled (usually while composing a message) // AND the key is indeed an arrow (not undefined) if (tagpro.disableControls && arrow) { // Whether you are releasing instead of pressing the key: var releasing = event.type == 'keyup'; // Prevent the 'default' thing to happen, which is the cursor moving through the message you are typing event.preventDefault(); // Return if already pressed/released if (tagpro.players[tagpro.playerId].pressing[arrow] != releasing) return; // Send the key press/release to the server! tagpro.sendKeyPress(arrow, releasing); // Not necesarry, but useful for other scripts to 'hook onto' if (!releasing && tagpro.events.keyDown) tagpro.events.keyDown.forEach(f => f.keyDown(arrow)); if (releasing && tagpro.events.keyUp) tagpro.events.keyUp.forEach(f => f.keyUp(arrow)); tagpro.ping.avg&&setTimeout(()=>(tagpro.players[tagpro.playerId][arrow]=!releasing),tagpro.ping.avg/2); } } })();