@@ -5431,47 +5437,72 @@ margin: 0 0 3px;
});
}
});
+ // 宝箱检测
const chestTypeDict = {'1': '金', '2': '银', '3': '铜',};
+ const chestTypeColorDict = {'1': 'gold', '2': 'silver', '3': 'sandybrown',};
const lootTypeDict = {'chests': '宝箱', 'gifts': '礼物箱',}
- window.setInterval(() => {
+ const intervalID = window.setInterval(() => {
const $city_wrapper = $root.querySelector('#ct-wrap');
if ($city_wrapper) {
+ const $pos = $city_wrapper.querySelector('.map-title span[class^="position___"]') || $city_wrapper.querySelector('.status-title span[class^="position___"]');
+ if(!$pos) return;
+ const $pos_spl = $pos.innerText.trim().split(',');
+ const player_position={};
+ player_position.x=parseInt($pos_spl[0]);
+ player_position.y=parseInt($pos_spl[1]);
const $wh_loot_container = $root.querySelector('#wh-loot-container');
if (!$wh_loot_container) {
const insert_html = `
`;
$($city_wrapper).before(insert_html);
}
+ let item_list = [];
+ const items = $root.querySelectorAll('div.grid-layer div.items-layer div.ct-item');
+ items.forEach(e => {
+ const item_props = {x: 0, y: 0, name: '', type: '', url: '',};
+ item_props.x = parseInt(e.style.left.replaceAll('px', '')) / 30;
+ item_props.y = -parseInt(e.style.top.replaceAll('px', '')) / 30;
+ const srcSpl = e.firstElementChild.src.trim().split('/');
+ item_props.name = srcSpl[6];
+ item_props.type = srcSpl[8].slice(0, 1);
+ item_props.url = e.firstElementChild.src;
+ item_list[item_list.length] = item_props;
+ });
+ const $wh_loot_container_items = $root.querySelector('#wh-loot-container-items');
+ const $wh_loot_container_chests = $root.querySelector('#wh-loot-container-chests');
+ let item_count = 0, chest_count = 0;
+ if ($wh_loot_container_items) $wh_loot_container_items.innerHTML = ``;
+ if ($wh_loot_container_chests) $wh_loot_container_chests.innerHTML = ``;
+ item_list.forEach(e => {
+ let path='·';
+ if (e.x
player_position.y) path='↖';
+ if (e.x===player_position.x&&e.y>player_position.y) path='↑';
+ if (e.x>player_position.x&&e.y>player_position.y) path='↗';
+ if (e.x>player_position.x&&e.y===player_position.y) path='→';
+ if (e.x>player_position.x&&e.y${path}[${e.x},${e.y}] - ${chestTypeDict[e.type]}${lootTypeDict[e.name]}
`
+ } else {
+ item_count++;
+ $wh_loot_container_items.innerHTML += `${path}[${e.x},${e.y}] - ${lootTypeDict[e.name] || '?钥匙'}
`
+ }
+ });
+ $root.querySelector('#wh-loot-item-count').innerText = `(${item_count})`;
+ if (item_count === 0) $wh_loot_container_items.innerText = `暂未发现`;
+ $root.querySelector('#wh-loot-chest-count').innerText = `(${chest_count})`;
+ if (chest_count === 0) $wh_loot_container_chests.innerText = `暂未发现`;
}
- const items = $root.querySelectorAll('div.grid-layer div.items-layer div.ct-item');
- let item_list = [];
- items.forEach(e => {
- const item_props = {x: 0, y: 0, name: '', type: ''};
- item_props.x = parseInt(e.style.left.replaceAll('px', '')) / 30;
- item_props.y = -parseInt(e.style.top.replaceAll('px', '')) / 30;
- const srcSpl = e.firstElementChild.src.trim().split('/');
- item_props.name = srcSpl[6];
- item_props.type = srcSpl[8].slice(0, 1);
- item_list[item_list.length] = item_props;
- });
- const $wh_loot_container_items = $root.querySelector('#wh-loot-container-items');
- const $wh_loot_container_chests = $root.querySelector('#wh-loot-container-chests');
- $wh_loot_container_items.innerHTML = ``;
- $wh_loot_container_chests.innerHTML = ``;
- item_list.forEach(e => {
- if (e.name === 'chests') {
- $wh_loot_container_chests.innerHTML += `[${e.x},${e.y}] - ${chestTypeDict[e.type]}${lootTypeDict[e.name]}
`
- } else {
- $wh_loot_container_items.innerHTML += `[${e.x},${e.y}] - ${lootTypeDict[e.name] || '?钥匙'}
`
- }
- });
}, 1200);
return;
}
diff --git a/torn-wh-show-loot-pos.user.js b/torn-wh-show-loot-pos.user.js
index 4d2026c..cb85dd1 100644
--- a/torn-wh-show-loot-pos.user.js
+++ b/torn-wh-show-loot-pos.user.js
@@ -1,7 +1,7 @@
// ==UserScript==
// @name Torn圣诞小镇掉落物品坐标显示
// @namespace WH
-// @version 0.1
+// @version 0.2
// @description 在地图界面上方显示附近的宝箱、物品、钥匙坐标,兼容手机APP Torn PDA及Alook
// @author Woohoo[2687093]
// @match https://www.torn.com/*
@@ -12,7 +12,7 @@
(function () {
'use strict';
const ___window___ = window || window.unsafeWindow;
- if (___window___.WHLOOTPOS) return;
+ if (___window___.WHLOOTPOS||___window___.WHTRANS) return;
___window___.WHLOOTPOS = true;
const $ = ___window___.jQuery;
@@ -20,46 +20,70 @@
if (/christmas_town\.php/.test(window.location.href)) {
const $root = document.querySelector('#christmastownroot');
const chestTypeDict = {'1': '金', '2': '银', '3': '铜',};
+ const chestTypeColorDict = {'1': 'gold', '2': 'silver', '3': 'sandybrown',};
const lootTypeDict = {'chests': '宝箱', 'gifts': '礼物箱',}
- window.setInterval(() => {
+ const intervalID = window.setInterval(() => {
const $city_wrapper = $root.querySelector('#ct-wrap');
if ($city_wrapper) {
+ const $pos = $city_wrapper.querySelector('.map-title span[class^="position___"]') || $city_wrapper.querySelector('.status-title span[class^="position___"]');
+ if(!$pos) return;
+ const $pos_spl = $pos.innerText.trim().split(',');
+ const player_position={};
+ player_position.x=parseInt($pos_spl[0]);
+ player_position.y=parseInt($pos_spl[1]);
const $wh_loot_container = $root.querySelector('#wh-loot-container');
if (!$wh_loot_container) {
const insert_html = ``;
$($city_wrapper).before(insert_html);
}
+ let item_list = [];
+ const items = $root.querySelectorAll('div.grid-layer div.items-layer div.ct-item');
+ items.forEach(e => {
+ const item_props = {x: 0, y: 0, name: '', type: '', url: '',};
+ item_props.x = parseInt(e.style.left.replaceAll('px', '')) / 30;
+ item_props.y = -parseInt(e.style.top.replaceAll('px', '')) / 30;
+ const srcSpl = e.firstElementChild.src.trim().split('/');
+ item_props.name = srcSpl[6];
+ item_props.type = srcSpl[8].slice(0, 1);
+ item_props.url = e.firstElementChild.src;
+ item_list[item_list.length] = item_props;
+ });
+ const $wh_loot_container_items = $root.querySelector('#wh-loot-container-items');
+ const $wh_loot_container_chests = $root.querySelector('#wh-loot-container-chests');
+ let item_count = 0, chest_count = 0;
+ if ($wh_loot_container_items) $wh_loot_container_items.innerHTML = ``;
+ if ($wh_loot_container_chests) $wh_loot_container_chests.innerHTML = ``;
+ item_list.forEach(e => {
+ let path='·';
+ if (e.xplayer_position.y) path='↖';
+ if (e.x===player_position.x&&e.y>player_position.y) path='↑';
+ if (e.x>player_position.x&&e.y>player_position.y) path='↗';
+ if (e.x>player_position.x&&e.y===player_position.y) path='→';
+ if (e.x>player_position.x&&e.y${path}[${e.x},${e.y}] - ${chestTypeDict[e.type]}${lootTypeDict[e.name]}
`
+ } else {
+ item_count++;
+ $wh_loot_container_items.innerHTML += `${path}[${e.x},${e.y}] - ${lootTypeDict[e.name] || '?钥匙'}
`
+ }
+ });
+ $root.querySelector('#wh-loot-item-count').innerText = `(${item_count})`;
+ if (item_count === 0) $wh_loot_container_items.innerText = `暂未发现`;
+ $root.querySelector('#wh-loot-chest-count').innerText = `(${chest_count})`;
+ if (chest_count === 0) $wh_loot_container_chests.innerText = `暂未发现`;
}
- const items = $root.querySelectorAll('div.grid-layer div.items-layer div.ct-item');
- let item_list = [];
- items.forEach(e => {
- const item_props = {x: 0, y: 0, name: '', type: ''};
- item_props.x = parseInt(e.style.left.replaceAll('px', '')) / 30;
- item_props.y = -parseInt(e.style.top.replaceAll('px', '')) / 30;
- const srcSpl = e.firstElementChild.src.trim().split('/');
- item_props.name = srcSpl[6];
- item_props.type = srcSpl[8].slice(0, 1);
- item_list[item_list.length] = item_props;
- });
- const $wh_loot_container_items = $root.querySelector('#wh-loot-container-items');
- const $wh_loot_container_chests = $root.querySelector('#wh-loot-container-chests');
- $wh_loot_container_items.innerHTML = ``;
- $wh_loot_container_chests.innerHTML = ``;
- item_list.forEach(e => {
- if (e.name === 'chests') {
- $wh_loot_container_chests.innerHTML += `[${e.x},${e.y}] - ${chestTypeDict[e.type]}${lootTypeDict[e.name]}
`
- } else {
- $wh_loot_container_items.innerHTML += `[${e.x},${e.y}] - ${lootTypeDict[e.name] || '?钥匙'}
`
- }
- });
}, 1200);
}
diff --git a/torn-wh-xmas.user.js b/torn-wh-xmas.user.js
index 5a48c9d..a0e1a55 100644
--- a/torn-wh-xmas.user.js
+++ b/torn-wh-xmas.user.js
@@ -12,7 +12,7 @@
(function () {
'use strict';
const ___window___ = window || window.unsafeWindow;
- if (___window___.WHXMAS) return;
+ if (___window___.WHXMAS||___window___.WHTRANS) return;
___window___.WHXMAS = true;
const $ = ___window___.jQuery;