您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Boost performance for better game experience.
// ==UserScript== // @name TankTrouble Booster // @namespace http://tampermonkey.net/ // @version 3.1.3 // @license GPL-3.0 // @description Boost performance for better game experience. // @author kamarov // @match https://tanktrouble.com/* // @run-at document-end // @grant GM_addStyle // @require https://update.greasyfork.org/scripts/482092/1297984/TankTrouble%20Development%20Library.js // ==/UserScript== //Disable camera shake UIConstants.MAX_CAMERA_SHAKE = 0; UIConstants.CAMERA_SHAKE_FADE = 0; UIConstants.MINE_EXPLOSION_CAMERA_SHAKE = 0; //Disable feather particles spawning UIConstants.TANK_FEATHER_COUNT = 0; UIConstants.TANK_FEATHER_POOL_SIZE = 0; //Disable score fragments particles spawning UIConstants.MAX_SCORE_FRAGMENTS_PER_EXPLOSION = 0; UIConstants.MIN_SCORE_FRAGMENTS_PER_LETTER = 0; //Lower the sparkle effects UIConstants.GOLD_SPARKLE_MAX_INTERVAL_TIME = 9999 UIConstants.GOLD_SPARKLE_MIN_INTERVAL_TIME = 9999 UIConstants.DIAMOND_SPARKLE_MAX_INTERVAL_TIME = 9999 UIConstants.DIAMOND_SPARKLE_MIN_INTERVAL_TIME = 9999 //Lower and disable garage animations UIConstants.GARAGE_WELD_PARTICLE_TIME = 500 UIConstants.GARAGE_WELD_SMOKE_TIME = 500 UIConstants.GARAGE_WELD_SPARK_TIME = 500 UIConstants.GARAGE_SPRAY_SHAKE_PROBABILITY = 0 UIConstants.GARAGE_SPRAY_PARTICLE_TIME = 550 //Disable rubble particles UIConstants.RUBBLE_TREAD_OFFSET = 0 UIConstants.RUBBLE_FRAGMENT_POOL_SIZE = 0 UIConstants.RUBBLE_FRAGMENT_MAX_LIFETIME= 0 UIConstants.RUBBLE_FRAGMENT_MIN_LIFETIME= 0 UIConstants.RUBBLE_FRAGMENT_MAX_ROTATION_SPEED= 0 UIConstants.RUBBLE_FRAGMENT_SPEED_SCALE = 0 UIConstants.RUBBLE_FRAGMENT_RANDOM_SPEED = 0 UIConstants.RUBBLE_SMOKE_SPEED_SCALE = 0 UIConstants.RUBBLE_SMOKE_RANDOM_SPEED = 0 UIConstants.INVERSE_RUBBLE_SPAWN_PROBABILITY_IN_COLLISION = 9999 UIConstants.INVERSE_RUBBLE_SPAWN_PROBABILITY_IN_THE_OPEN = 9999 //Lower and disable shield animations UIConstants.SHIELD_LAYER_1_ROTATION_SPEED = 0 UIConstants.SHIELD_LAYER_2_ROTATION_SPEED = 0 UIConstants.SHIELD_NUM_BOLTS = 0 UIConstants.SHIELD_SPARK_BOLT_POOL_SIZE = 0 //Disable poof effects weapons UIConstants.BULLET_PUFF_POOL_SIZE = 0 //Lower the amount of particles spawning for each quality QualityManager.QUALITY_VALUES.auto = { "tank explosion smoke count": 2, "tank explosion fragment count": 2, "missile launch smoke count": 0, "missile smoke frequency": 9999, "mine explosion smoke count": 2, "crate land dust count": 0, "aimer min segment length":2, "aimer off max segment length": 15.0, "aimer on max segment length": 6.0, "bullet puff count": 0, "shield inverse bolt probability": 1, "shield spark particles per emit": 0, "spawn zone inverse unstable particle probability": 1, "spawn zone num collapse particles": 0 }; QualityManager.QUALITY_VALUES.high = { "tank explosion smoke count": 2, "tank explosion fragment count": 2, "missile launch smoke count": 0, "missile smoke frequency": 9999, "mine explosion smoke count": 2, "crate land dust count": 0, "aimer min segment length": 2, "aimer off max segment length": 10.0, "aimer on max segment length": 5.0, "bullet puff count": 0, "shield inverse bolt probability": 1, "shield spark particles per emit": 0, "spawn zone inverse unstable particle probability": 1, "spawn zone num collapse particles": 0 }; QualityManager.QUALITY_VALUES.low = { "tank explosion smoke count": 1, "tank explosion fragment count": 1, "missile launch smoke count": 0, "missile smoke frequency": 9999, "mine explosion smoke count": 1, "crate land dust count": 0, "aimer min segment length": 0, "aimer off max segment length": 12.0, "aimer on max segment length": 6.0, "bullet puff count": 0, "shield inverse bolt probability": 1, "shield spark particles per emit": 0, "spawn zone inverse unstable particle probability": 1, "spawn zone num collapse particles": 0 }; whenContentInitialized().then(() => { Game.UIBootState.method('create', function () { this.log = Log.create('UIBootState'); // Input & scale settings this.input.touch.preventDefault = false; this.scale.compatibility.scrollTo = false; // Disable right-click context menu this.game.canvas.oncontextmenu = function (e) { e.preventDefault(); }; // Prevent game from pausing when tab loses focus this.game.stage.disableVisibilityChange = true; // Add key capture for common keys this.input.keyboard.addKeyCapture([ Phaser.Keyboard.LEFT, Phaser.Keyboard.RIGHT, Phaser.Keyboard.UP, Phaser.Keyboard.DOWN, Phaser.Keyboard.SPACEBAR ]); // Disable input if overlay is showing if (OverlayManager.isOverlayShowing()) { this.input.enabled = false; } // Set world bounds and background this.world.bounds = new Phaser.Rectangle(0, 0, this.game.width, this.game.height); this.camera.setBoundsToWorld(); this.stage.backgroundColor = '#fff'; // Change animation frames var time = this.game.time; time.physicsElapsed = 1 / 120; time.physicsElapsedMS = 1000 * time.physicsElapsed; // Handle high DPI scaling if (this.game.device.pixelRatio > 1) { this.scale.scaleMode = Phaser.ScaleManager.USER_SCALE; // Scale down for high DPI const scaleRatio = 1 / this.game.device.pixelRatio; this.scale.setUserScale(scaleRatio, scaleRatio, 0, 0); this.scale.setGameSize( this.game.width * this.game.device.pixelRatio, this.game.height * this.game.device.pixelRatio ); // Handle resizing this.scale.setResizeCallback(function (scale, parentBounds) { const newWidth = parentBounds.width * this.game.device.pixelRatio; const newHeight = parentBounds.height * this.game.device.pixelRatio; if ( Math.abs(newWidth - this.game.width) >= 0.01 || Math.abs(newHeight - this.game.height) >= 0.01 ) { this.log.debug('RESIZE CANVAS!'); this.scale.setGameSize(newWidth, newHeight); } }, this); } else { this.scale.scaleMode = Phaser.ScaleManager.RESIZE; } // Start preload state this.state.start('Preload'); }); //Uncap FPS (function() { 'use strict'; const originalRequestAnimationFrame = window.requestAnimationFrame; window.requestAnimationFrame = function(callback) { return originalRequestAnimationFrame(function(timestamp) { setTimeout(() => callback(performance.now()), 0); }); }; if ('requestAnimationFrame' in window) { console.log('FPS uncapped.'); } })(); })