您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
ffff
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/539067/1605547/jjjj.js
Tabs.AutoPorterBlocker = { tabOrder: 910, // Place after Chat tab tabLabel: 'Auto Porter Blocker', tabDisabled: false, myDiv: null, blockedPlayers: [], init: function(div) { var t = Tabs.AutoPorterBlocker; t.myDiv = div; t.createUI(); t.loadBlockedPlayers(); }, createUI: function() { var t = Tabs.AutoPorterBlocker; var m = '<DIV class=divHeader align=center>' + tx('Auto Porter Blocker') + '</div>'; m += '<p>Enter player names to block from automatically receiving resources via auto-porters (one name per line):</p>'; m += '<textarea id="pbBlockedPlayersInput" style="width: 100%; height: 200px;"></textarea><br>'; m += '<button id="pbSaveBlockedPlayers">Save Blocked Players</button>'; t.myDiv.innerHTML = m; ById('pbSaveBlockedPlayers').addEventListener('click', function() { t.saveBlockedPlayers(); }); }, loadBlockedPlayers: function() { var t = Tabs.AutoPorterBlocker; // Load blocked players from local storage var storedPlayers = localStorage.getItem('pbBlockedPlayers'); if (storedPlayers) { t.blockedPlayers = JSON.parse(storedPlayers); ById('pbBlockedPlayersInput').value = t.blockedPlayers.join('\n'); } }, saveBlockedPlayers: function() { var t = Tabs.AutoPorterBlocker; // Save blocked players to local storage var playerNames = ById('pbBlockedPlayersInput').value.split('\n').map(function(name) { return name.trim(); }).filter(function(name) { return name !== ''; // Remove empty names }); t.blockedPlayers = playerNames; localStorage.setItem('pbBlockedPlayers', JSON.stringify(t.blockedPlayers)); alert('Blocked players saved!'); }, isPlayerBlocked: function(playerName) { var t = Tabs.AutoPorterBlocker; return t.blockedPlayers.includes(playerName); }, // You'll need to hook into the game's auto-porter logic here // This is a placeholder function that shows how you might use the isPlayerBlocked function handleAutoPorterTransfer: function(resource, targetPlayer) { var t = Tabs.AutoPorterBlocker; if (t.isPlayerBlocked(targetPlayer)) { console.log('Auto-porter transfer to ' + targetPlayer + ' blocked!'); return false; // Prevent the transfer } else { console.log('Auto-porter transfer to ' + targetPlayer + ' allowed.'); return true; // Allow the transfer } } };