No License
JavaScript
1 時間前
window.extractedGames = window.extractedGames || {};window.processedFetchId = 0;// 観戦欄から肉球、プロマークの付いたプレイヤーのいる試合を抜き出します// コンソールには"名前 開始時刻 uuid"とログが残ります// 左クリックしたときに自動的に実行されますwindow.extractGames = () => {const Inst = uiscript.UI_Ob.Inst;if (Inst.fetch_id === window.processedFetchId) return;window.processedFetchId = Inst.fetch_id;const live_datas = Inst.live_datas;if (live_datas.length === 0) return;const toTimeStr = ms => new Date(ms).toTimeString().slice(0, 5);outerloop:for (let i = live_datas.length - 1; i >= 0; i--) {const GameLiveHead = live_datas[i];for (const player of GameLiveHead.players) {// マークが付いていても観戦欄から消したいときは// ここにコードを追加してください// if (player.account_id === 73343254) continue; // ウヒョ助// if (player.account_id === 71333623) continue; // 獅子ヶ谷フレアif (!player.verified) continue;const uuid = GameLiveHead.uuid;if (!extractedGames[uuid]) {extractedGames[uuid] = GameLiveHead;console.log(player.nickname + ["", "🐾", "𝙋"][player.verified],toTimeStr(GameLiveHead.start_time * 1000),uuid,);}// マークが付いたプレイヤーが2人以上同卓しているときは// 1人のプレイヤーのみログが残る仕様ですcontinue outerloop;}live_datas.splice(i, 1);}Inst.onShowDataChange();};window.onclick = () => {setTimeout(extractGames, 500)};// 観戦欄から流れて見られなくなった試合は// ゲーム画面を右クリックして、uuid(を含む文字列)を入力すると観戦できます// 数分前に終局した試合を観戦したときに// ロード画面で止まることがあります(要再起動)// 試合中はバグるので実行しないでくださいwindow.watchGame = uuidstr => {const result = `${uuidstr}`.match(/[0-9a-f-]{43}/);if (!result) return;const uuid = result[0];uiscript.UI_Live_Broadcast1.fetchInfo(uuid,Laya.Handler.create(uiscript.UI_Ob.Inst, e => {uiscript.UI_Ob.Inst._locking = false;// goToWatchの第二引数にaccount_idを設定すると視点変更の手間が省けますe.success && uiscript.UI_Live_Broadcast1.goToWatch(uuid, 0)}));};window.oncontextmenu = () => {watchGame(prompt("uuid"))};// 観戦欄にあるプルダウンの値を、クリックせずに切り替えます// そして、観戦中でも関係なく観戦欄のデータを取得・更新できます// changeGameMode("玉南");// changeGameMode("三金東");window.changeGameMode = str => {const Inst = uiscript.UI_Ob.Inst;Inst.dropdown0._choosed_index = /玉/.test(str) + /王/.test(str) * 2;Inst.dropdown1._choosed_index = /南/.test(str) + /三/.test(str) * 2;Inst.refresh_content();setTimeout(extractGames, 500);};
以前の補助ツールについて conditional breakpointはすべて削除してください(煩わしくてすいませんでした)
現在、コメントはありません。
実行結果