diff --git a/torn-trans-zhcn.user.js b/torn-trans-zhcn.user.js index 7c1cb20..31ad56a 100644 --- a/torn-trans-zhcn.user.js +++ b/torn-trans-zhcn.user.js @@ -1,8 +1,8 @@ // ==UserScript== -// @lastmodified 202112181703 +// @lastmodified 202112191659 // @name Torn翻译 // @namespace WOOH -// @version 0.1.1218a +// @version 0.1.1219a // @description Torn UI翻译 // @author Woohoo-[2687093] sabrina_devil[2696209] // @match https://www.torn.com/* @@ -23,6 +23,11 @@ todo: true, cont: `baza npc商店 imarket及imarket搜索结果`, }, + { + ver: '0.1.1219a', + date: '20211219', + cont: `优化了小镇掉落物品的显示样式`, + }, { ver: '0.1.1218a', date: '20211218', @@ -5132,6 +5137,7 @@ contentTitleLinksTransReact(); }); const $city_wrapper = $root.querySelectorAll('div[class^="core-layout__"]'); + // 解密攻略 const insert_html = `
水晶球解密地图攻略
@@ -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.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); 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;