見守り隊補助ツール
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はすべて削除してください(煩わしくてすいませんでした)
現在、コメントはありません。
実行結果