This commit is contained in:
Liwanyi 2022-10-05 16:23:03 +08:00
parent 3963f1c6e4
commit 56b02ebf5e
52 changed files with 311 additions and 330 deletions

View File

@ -1,22 +1,40 @@
# TODO # TODO
- 翻译baza npc商店、imarket、imarket搜索结果 - 翻译baza npc商店、imarket、imarket搜索结果
- TS重构 - TS重构
# CHANGE # CHANGE
## 0.5.2 ## 0.5.3
2022年10月01日
2022年10月05日
### 修改 ### 修改
- TS重构
- 修复PDA多次加载的错误
## 0.5.2
2022年10月01日
### 修改
- TS重构 - TS重构
- 修复侧边栏与session存取数据获取引起的错误 - 修复侧边栏与session存取数据获取引起的错误
- 加快了飞行闹钟的加载速度 - 加快了飞行闹钟的加载速度
### 添加 ### 添加
- 动态显示更新 - 动态显示更新
- 查看日志 - 查看日志
## 0.5.1 ## 0.5.1
2022年09月08日 2022年09月08日
### 修改 ### 修改
- 错误修复 - 错误修复
## 0.5.0 ## 0.5.0

9
global.d.ts vendored
View File

@ -19,16 +19,18 @@ declare interface Window {
// 插件运行标识 // 插件运行标识
WHTRANS?: boolean; WHTRANS?: boolean;
Vue?: Function; Vue?: Function;
/* 油猴脚本引擎自带 */
unsafeWindow?: Window & typeof globalThis;
eval(exc: string): void; eval(exc: string): void;
/* TORN自带 */ /* TORN自带 */
addRFC(url: URL | string): string; addRFC(url: URL | string): string;
getAction(opt: TornGetActionParams): void;
// initMiniProf(selector: string): void; // initMiniProf(selector: string): void;
getAction(opt: TornGetActionParams): void;
initializeTooltip(selector: string, elemId: string): void; initializeTooltip(selector: string, elemId: string): void;
renderMiniProfile(node: Element, props: any): never; renderMiniProfile(node: Element, props: any): never;
@ -38,9 +40,6 @@ declare interface Window {
PDA_httpPost(url: URL | string, init: any, body: any): Promise<PDA_Response>; PDA_httpPost(url: URL | string, init: any, body: any): Promise<PDA_Response>;
/* 油猴脚本引擎自带 */
unsafeWindow?: Window & typeof globalThis;
GM_xmlhttpRequest(init: GM_RequestParams): void; GM_xmlhttpRequest(init: GM_RequestParams): void;
GM_getValue(k: string, def: any): unknown; GM_getValue(k: string, def: any): unknown;

View File

@ -1,6 +1,6 @@
{ {
"name": "wuhu-torn-helper", "name": "wuhu-torn-helper",
"version": "0.5.4", "version": "0.5.3",
"description": "芜湖助手", "description": "芜湖助手",
"dependencies": {}, "dependencies": {},
"scripts": { "scripts": {

File diff suppressed because one or more lines are too long

View File

@ -13,7 +13,7 @@ export default {
typescript(), typescript(),
json(), json(),
string({ string({
include: "**/*.html" include: ["**/*.html", "**/*.css"]
}), }),
uglify(), uglify(),
], ],

View File

@ -8,10 +8,10 @@ import Log from "./Log";
import WuhuConfig from "./WuhuConfig"; import WuhuConfig from "./WuhuConfig";
import Alert from "./utils/Alert"; import Alert from "./utils/Alert";
import InfoUtils from "./utils/InfoUtils"; import InfoUtils from "./utils/InfoUtils";
import SHOP_BEER_STATIC_ITEM_HTML from "../html/buyBeer/shop_beer_static_item.html"; import SHOP_BEER_STATIC_ITEM_HTML from "../static/html/buyBeer/shop_beer_static_item.html";
import ADD_BEER_HEAD_HTML from "../html/buyBeer/add_beer_head.html"; import ADD_BEER_HEAD_HTML from "../static/html/buyBeer/add_beer_head.html";
import QUICK_CRIMES_HTML from "../html/quick_crimes.html"; import QUICK_CRIMES_HTML from "../static/html/quick_crimes.html";
import RW_RIDER_HTML from "../html/rw_rider.html"; import RW_RIDER_HTML from "../static/html/rw_rider.html";
import christmasTownHelper from "../func/module/christmasTownHelper"; import christmasTownHelper from "../func/module/christmasTownHelper";
export default class UrlPattern extends WuhuBase { export default class UrlPattern extends WuhuBase {

View File

@ -7,6 +7,12 @@ export default class WuhuBase extends Provider {
static glob: IGlobal = null; static glob: IGlobal = null;
protected static className = 'WuhuBase'; protected static className = 'WuhuBase';
constructor() {
super();
// Log.info({ 'constructor': this.constructor, this: this, test: this.getClassName() });
Log.info('创建对象:', this);
}
static getLocal(): IWHSettings { static getLocal(): IWHSettings {
return JSON.parse(localStorage.getItem('wh_trans_settings')) || {}; return JSON.parse(localStorage.getItem('wh_trans_settings')) || {};
} }
@ -22,12 +28,6 @@ export default class WuhuBase extends Provider {
if (condition) throw '芜湖'; if (condition) throw '芜湖';
} }
constructor() {
super();
// Log.info({ 'constructor': this.constructor, this: this });
Log.info('创建对象:', this);
}
static PDAExecute() { static PDAExecute() {
if (window.WHTRANS) throw '已运行,退出'; if (window.WHTRANS) throw '已运行,退出';
window.WHTRANS = true; window.WHTRANS = true;

View File

@ -5,7 +5,7 @@ import TravelItem from "./action/TravelItem";
import Global from "./Global"; import Global from "./Global";
import Log from "./Log"; import Log from "./Log";
import WuhuConfig from "./WuhuConfig"; import WuhuConfig from "./WuhuConfig";
import * as CSS_JSON from "../json/css.json" import * as CSS_JSON from "../static/json/css.json"
export default class WuHuTornHelper extends WuhuBase { export default class WuHuTornHelper extends WuhuBase {

View File

@ -11,22 +11,22 @@ import Log from "./Log";
import CommonUtils from "./utils/CommonUtils"; import CommonUtils from "./utils/CommonUtils";
import WuhuConfig from "./WuhuConfig"; import WuhuConfig from "./WuhuConfig";
import Alert from "./utils/Alert"; import Alert from "./utils/Alert";
import * as EVENTS from "../json/event.json"; import * as EVENTS from "../static/json/event.json";
import * as FEST from "../json/fest.json"; import * as FEST from "../static/json/fest.json";
import Popup from "./utils/Popup"; import Popup from "./utils/Popup";
import TravelItem from "./action/TravelItem"; import TravelItem from "./action/TravelItem";
import QUICK_FLY_HTML from "../html/quick_fly.html"; import QUICK_FLY_HTML from "../static/html/quick_fly.html";
import NNB_INFO_HTML from "../html/nnb_info.html"; import NNB_INFO_HTML from "../static/html/nnb_info.html";
import PRICE_WATCHER_HTML from "../html/price_watcher.html"; import PRICE_WATCHER_HTML from "../static/html/price_watcher.html";
import DANGER_ZONE_HTML from "../html/danger_zone.html"; import DANGER_ZONE_HTML from "../static/html/danger_zone.html";
import ActionButtonUtils from "./utils/ActionButtonUtils"; import ActionButtonUtils from "./utils/ActionButtonUtils";
import ZHONG_MENU_HTML from "../html/zhong/zhong_menu.html"; import ZHONG_MENU_HTML from "../static/html/zhong/zhong_menu.html";
import ZHONG_UPDATE_HTML from "../html/zhong/zhong_update.html"; import ZHONG_UPDATE_HTML from "../static/html/zhong/zhong_update.html";
import ZHONG_LOOT_HTML from "../html/zhong/zhong_loot.html"; import ZHONG_LOOT_HTML from "../static/html/zhong/zhong_loot.html";
import QUICK_CRIMES_HTML from "../html/quick_crimes.html"; import QUICK_CRIMES_HTML from "../static/html/quick_crimes.html";
import DEV_DETAILS_HTML from "../html/zhong/setting/dev_details.html"; import DEV_DETAILS_HTML from "../static/html/zhong/setting/dev_details.html";
import QUICK_FLY_CSS from "../css/quick_fly.css"; import QUICK_FLY_CSS from "../static/css/quick_fly.css";
import QUICK_LINK_CSS from "../css/quick_link.css"; import QUICK_LINK_CSS from "../static/css/quick_link.css";
export default class ZhongIcon extends WuhuBase { export default class ZhongIcon extends WuhuBase {
public static ZhongNode: MyHTMLElement = null; public static ZhongNode: MyHTMLElement = null;

View File

@ -3,8 +3,8 @@ import Log from "../Log";
import WuhuBase from "../WuhuBase"; import WuhuBase from "../WuhuBase";
import UserScriptEngine from "../../enum/UserScriptEngine"; import UserScriptEngine from "../../enum/UserScriptEngine";
import Popup from "../utils/Popup"; import Popup from "../utils/Popup";
import STOCK_IMG_HTML from "../../html/stock_img.html"; import STOCK_IMG_HTML from "../../static/html/stock_img.html";
import * as FILTER from "../../json/for_stock_item_filter.json"; import * as FILTER from "../../static/json/for_stock_item_filter.json";
export default class TravelItem extends WuhuBase { export default class TravelItem extends WuhuBase {
private obj: any = null; private obj: any = null;

View File

@ -4,7 +4,7 @@ import Log from "../Log";
import Device from "../../enum/Device"; import Device from "../../enum/Device";
import AjaxFetchOption from "../../interface/AjaxFetchOption"; import AjaxFetchOption from "../../interface/AjaxFetchOption";
import Alert from "./Alert"; import Alert from "./Alert";
import LOADING_IMG_HTML from "../../html/loading_img.html"; import LOADING_IMG_HTML from "../../static/html/loading_img.html";
export default class CommonUtils extends WuhuBase { export default class CommonUtils extends WuhuBase {
static getScriptEngine() { static getScriptEngine() {

View File

@ -1,10 +1,10 @@
import WuhuBase from "../WuhuBase"; import WuhuBase from "../WuhuBase";
import POPUP_HTML from "../../html/popup.html"; import POPUP_HTML from "../../static/html/popup.html";
export default class Popup extends WuhuBase { export default class Popup extends WuhuBase {
protected className = 'Popup';
private readonly container: HTMLElement = null; private readonly container: HTMLElement = null;
private readonly node: HTMLElement = null; private readonly node: HTMLElement = null;
protected className = 'Popup';
constructor(innerHTML: string, title: string = '芜湖助手') { constructor(innerHTML: string, title: string = '芜湖助手') {
super(); super();

View File

@ -1,18 +1,18 @@
import WuhuConfig from "../../class/WuhuConfig"; import WuhuConfig from "../../class/WuhuConfig";
import WT_HTML from "../../html/xmasTown/wt.html"; import WT_HTML from "../../static/html/xmasTown/wt.html";
import WT_XMAS_TOWN_HTML from "../../html/xmasTown/wt_xmas_town.html"; import WT_XMAS_TOWN_HTML from "../../static/html/xmasTown/wt_xmas_town.html";
import WT_MALTESE_SNOW_GLOBE_HTML from "../../html/xmasTown/wt_maltese_snow_globe.html"; import WT_MALTESE_SNOW_GLOBE_HTML from "../../static/html/xmasTown/wt_maltese_snow_globe.html";
import WT_LONG_WAY_FROM_HOME_HTML from "../../html/xmasTown/wt_long_way_from_home.html"; import WT_LONG_WAY_FROM_HOME_HTML from "../../static/html/xmasTown/wt_long_way_from_home.html";
import WT_CHEDBURN_TOWERS_HTML from "../../html/xmasTown/wt_chedburn_towers.html"; import WT_CHEDBURN_TOWERS_HTML from "../../static/html/xmasTown/wt_chedburn_towers.html";
import WT_KIDNAPPED_SANTA_HTML from "../../html/xmasTown/wt_kidnapped_santa.html"; import WT_KIDNAPPED_SANTA_HTML from "../../static/html/xmasTown/wt_kidnapped_santa.html";
import WT_HOLIDAY_TERROR_HTML from "../../html/xmasTown/wt_holiday_terror.html"; import WT_HOLIDAY_TERROR_HTML from "../../static/html/xmasTown/wt_holiday_terror.html";
import WT_AMONG_US_HTML from "../../html/xmasTown/wt_among_us.html"; import WT_AMONG_US_HTML from "../../static/html/xmasTown/wt_among_us.html";
import WT_KISS_MY_FESTIVUS_HTML from "../../html/xmasTown/wt_kiss_my_festivus.html"; import WT_KISS_MY_FESTIVUS_HTML from "../../static/html/xmasTown/wt_kiss_my_festivus.html";
import WT_STANLEY_HOTEL_HTML from "../../html/xmasTown/wt_stanley_hotel.html"; import WT_STANLEY_HOTEL_HTML from "../../static/html/xmasTown/wt_stanley_hotel.html";
import WT_DOGGOQUEST_HTML from "../../html/xmasTown/wt_doggoQuest.html"; import WT_DOGGOQUEST_HTML from "../../static/html/xmasTown/wt_doggoQuest.html";
import WT_POKEMON_CT_HTML from "../../html/xmasTown/wt_pokemon_ct.html"; import WT_POKEMON_CT_HTML from "../../static/html/xmasTown/wt_pokemon_ct.html";
import WT_WINTER_IN_GATLIN_HTML from "../../html/xmasTown/wt_winter_in_gatlin.html"; import WT_WINTER_IN_GATLIN_HTML from "../../static/html/xmasTown/wt_winter_in_gatlin.html";
import XMAS_TOWN_NOTIFY_HTML from "../../html/xmasTown/xmas_town_notify.html"; import XMAS_TOWN_NOTIFY_HTML from "../../static/html/xmasTown/xmas_town_notify.html";
export default function christmasTownHelper() { export default function christmasTownHelper() {
let $root = document.querySelector('#christmastownroot'); let $root = document.querySelector('#christmastownroot');

View File

@ -2,7 +2,7 @@ import UserScriptEngine from "../../../enum/UserScriptEngine";
import WuhuBase from "../../../class/WuhuBase"; import WuhuBase from "../../../class/WuhuBase";
import CommonUtils from "../../../class/utils/CommonUtils"; import CommonUtils from "../../../class/utils/CommonUtils";
import Popup from "../../../class/utils/Popup"; import Popup from "../../../class/utils/Popup";
import * as FILTER from "../../../json/for_stock_item_filter.json"; import * as FILTER from "../../../static/json/for_stock_item_filter.json";
/** /**
* @deprecated * @deprecated

View File

@ -1,69 +0,0 @@
<div class="acc-title">
<span class="item-desc">
<span tabindex="0" aria-labelledby="180-name 180-price 180-stock" class="item Alcohol" itemid="180" loaded="0">
<img class="torn-item item-plate" data-size="large" src="/images/items/180/large.png" alt="Bottle of Beer"
style="opacity: 0;" id="item-1bea9f66-a6c4-475c-accb-41dcb67af64f-old" data-converted="1" aria-hidden="true">
<span class="item-hover">
<button class="view-h wai-btn" aria-label="Show info: Bottle of Beer" value="100" i-data="i_723_228_51_52"></button>
<button class="buy-h wai-btn" aria-label="Buy: Bottle of Beer" value="100" i-data="i_774_228_51_52"></button>
</span>
<canvas id="item-1bea9f66-a6c4-475c-accb-41dcb67af64f" role="img" aria-label="Bottle of Beer" style="opacity: 1;"
class="torn-item item-plate item-converted" item-mode="light" width="100" height="50"></canvas></span>
<span class="desc">
<span id="180-name" class="name t-overflow bold">啤酒</span>
<span id="180-price" class="price t-gray-6" data-sell="$5">$10</span>
<span id="180-stock" class="stock t-gray-6 t-overflow">酒 (<span class="instock">1100</span>存货)</span>
</span>
<span class="buy-act-wrap">
<label for="180" class="wai">Amount
of Bottle of Beer</label>
<input id="180" type="text" value="100" maxlength="3" name="buyAmount[]" autocomplete="new-amount">
<span class="buy-act bold">
<button class="wai-support t-blue h"></button>
<div class="tt-max-buy-overlay"></div>
</span>
</span>
</span>
<div class="confirm-wrap">
<span class="confirm">
<span>
点击确定购买
</span>
<span>
<span class="count">100</span>
瓶啤酒
$<span class="total">1,000</span>
</span>
<span class="confirm-act m-top5">
<a href="#" class="wai-support yes m-right10 bold t-blue h" data-id="180" i-data="i_819_263_23_16">
确定
</a>
<span class="no bold">
<a href="#" class="wai-support t-blue h" i-data="i_852_263_18_16">
</a>
</span>
</span>
</span>
</div>
<div class="success-wrap">
<span class="success">
<span class="t-red bold">
<span class="ajax-preloader"></span>
</span>
</span>
<button aria-label="Close" class="close-icon p0 wai-btn" value="100" i-data="i_954_228_10_11"></button>
</div>
<div class="msg-wrap">
<span class="t-green bold">
<span class="ajax-preloader"></span>
</span>
</div>
</div>
<div class="view-item-info">
<div class="item-cont">
<div class="item-wrap">
<span class="ajax-preloader m-top10 m-bottom10"></span>
</div>
</div>
</div>

View File

@ -1,52 +0,0 @@
<div id="wh-loot-container" class="m-bottom10">
<audio src="https://www.torn.com/js/chat/sounds/Chirp_3.mp3" style="display:none"></audio>
<div class="title-black"><span>附近物品</span></div>
<div id="wh-loot-container-main" class="cont-gray">
<b>物品</b><span id="wh-loot-item-count"></span>
<div id="wh-loot-container-items"></div>
<b>箱子</b><span id="wh-loot-chest-count"></span>
<div id="wh-loot-container-chests"></div>
</div>
<div id="wh-loot-container-ex" class="cont-gray wh-hide">
<div><label><input type="checkbox" id="wh-loot-setting-blink" {{}} /> 闪烁提示</label></div>
<div><label><input type="checkbox" id="wh-loot-setting-sound" {{}} /> 声音提示 <del>(iOS)</del></label></div>
<div><label><input type="checkbox" id="wh-loot-setting-chest" {{}} /> 不记录需要钥匙的宝箱</label></div>
<div id="wh-hist">
<div id="wh-hist-clear">
<p><button>清空数据</button>- 长时间不清空会出现奇怪的问题</p>
</div>
<table><thead><tr><th colspan="5">历史记录</th></tr><tr><th>坐标</th><th>地图</th><th>类型</th><th>发现</th><th>获取</th></tr></thead><tbody></tbody></table>
</div>
</div>
<div id="wh-loot-btn" class="cont-gray"><button>设置</button></div>
</div>
<style>
#wh-loot-container-main{padding: 0.5em;}
#wh-loot-container-main div{overflow-x: auto;overflow-y: hidden;white-space: nowrap;min-height: 4em;}
#wh-loot-container-main div span{display: inline-block;background-color: #2e8b57;color: white;margin: 0 1em 0 0;border-radius: 4px;padding: 0.5em;}
#wh-loot-container-main div span img{height: 1em; width: 1em;}
#wh-loot-container-ex{padding: 0.5em;}
#wh-loot-container-ex.wh-hide{display: none;}
#wh-loot-container-ex #wh-hist{overflow-x: auto;}
#wh-loot-container-ex table {margin-top: 0.5em;}
#wh-loot-container-ex tbody {background-color: antiquewhite;}
#wh-loot-container-ex table, #wh-loot-container-ex th, #wh-loot-container-ex td {
padding: 5px;
border: 1px solid black;
height: auto;
}
#wh-loot-container-ex th:nth-child(1) {min-width: 5em;}
#wh-loot-container-ex th:nth-child(2) {min-width: 8em;}
#wh-loot-container-ex th:nth-child(3) {min-width: 4em;}
#wh-loot-container-ex th:nth-child(4) {min-width: 9em;}
#wh-loot-container-ex th:nth-child(5) {min-width: 3em;}
#wh-loot-container-ex thead {
background-color: #2e8b57;
color: white;
}
@keyframes lootFoundAlert {
0% {background: #f2f2f2}
50% {background: #2e8b57}
100% {background: #f2f2f2}
}
</style>

View File

@ -0,0 +1,71 @@
<div class="acc-title">
<span class="item-desc">
<span aria-labelledby="180-name 180-price 180-stock" class="item Alcohol" itemid="180" loaded="0" tabindex="0">
<img alt="Bottle of Beer" aria-hidden="true" class="torn-item item-plate" data-converted="1"
data-size="large" id="item-1bea9f66-a6c4-475c-accb-41dcb67af64f-old" src="/images/items/180/large.png"
style="opacity: 0;">
<span class="item-hover">
<button aria-label="Show info: Bottle of Beer" class="view-h wai-btn" i-data="i_723_228_51_52" value="100"></button>
<button aria-label="Buy: Bottle of Beer" class="buy-h wai-btn" i-data="i_774_228_51_52" value="100"></button>
</span>
<canvas aria-label="Bottle of Beer" class="torn-item item-plate item-converted" height="50"
id="item-1bea9f66-a6c4-475c-accb-41dcb67af64f"
item-mode="light" role="img" style="opacity: 1;" width="100"></canvas></span>
<span class="desc">
<span class="name t-overflow bold" id="180-name">啤酒</span>
<span class="price t-gray-6" data-sell="$5" id="180-price">$10</span>
<span class="stock t-gray-6 t-overflow" id="180-stock">酒 (<span class="instock">1100</span>存货)</span>
</span>
<span class="buy-act-wrap">
<label class="wai" for="180">Amount
of Bottle of Beer</label>
<input autocomplete="new-amount" id="180" maxlength="3" name="buyAmount[]" type="text" value="100">
<span class="buy-act bold">
<button class="wai-support t-blue h"></button>
<div class="tt-max-buy-overlay"></div>
</span>
</span>
</span>
<div class="confirm-wrap">
<span class="confirm">
<span>
点击确定购买
</span>
<span>
<span class="count">100</span>
瓶啤酒
$<span class="total">1,000</span>
</span>
<span class="confirm-act m-top5">
<a class="wai-support yes m-right10 bold t-blue h" data-id="180" href="#" i-data="i_819_263_23_16">
确定
</a>
<span class="no bold">
<a class="wai-support t-blue h" href="#" i-data="i_852_263_18_16">
</a>
</span>
</span>
</span>
</div>
<div class="success-wrap">
<span class="success">
<span class="t-red bold">
<span class="ajax-preloader"></span>
</span>
</span>
<button aria-label="Close" class="close-icon p0 wai-btn" i-data="i_954_228_10_11" value="100"></button>
</div>
<div class="msg-wrap">
<span class="t-green bold">
<span class="ajax-preloader"></span>
</span>
</div>
</div>
<div class="view-item-info">
<div class="item-cont">
<div class="item-wrap">
<span class="ajax-preloader m-top10 m-bottom10"></span>
</div>
</div>
</div>

View File

@ -1,5 +1,5 @@
<div class="m-top10"> <div class="m-top10">
<h4 id="skip-to-content" class="left">RW 雷达</h4> <h4 class="left" id="skip-to-content">RW 雷达</h4>
<div class="clear"></div> <div class="clear"></div>
<hr class="page-head-delimiter"> <hr class="page-head-delimiter">
</div> </div>
@ -8,9 +8,16 @@
<a href="/profiles.php?XID=2687093" target="_blank">woohoo</a> <a href="/profiles.php?XID=2687093" target="_blank">woohoo</a>
<table> <table>
<thead> <thead>
<tr><th>123</th><th>456</th></tr> <tr>
<th>123</th>
<th>456</th>
</tr>
</thead> </thead>
<tbody> <tbody>
<tr><td>789</td><td>012</td></tr> <tr>
</tbody></table> <td>789</td>
<td>012</td>
</tr>
</tbody>
</table>
</div> </div>

View File

@ -1,5 +1,6 @@
<div id="wh-xmas-cont"> <div id="wh-xmas-cont">
<div class="title-black"><span>水晶球解密地图攻略</span><span><button style="color: white">[隐藏]</button></span></div> <div class="title-black"><span>水晶球解密地图攻略</span><span><button style="color: white">[隐藏]</button></span>
</div>
<div class="cont-gray select-wrap dropdown-new dropdown-default"> <div class="cont-gray select-wrap dropdown-new dropdown-default">
<select> <select>
<option value="None">未选择</option> <option value="None">未选择</option>
@ -24,10 +25,11 @@
<hr class="page-head-delimiter m-top10 m-bottom10 r1854"> <hr class="page-head-delimiter m-top10 m-bottom10 r1854">
</div> </div>
<style> <style>
#wh-xmas-cont .cont-gray{ #wh-xmas-cont .cont-gray {
padding: 0.5em; padding: 0.5em;
} }
#wh-xmas-cont p,#wh-xmas-cont select,#wh-xmas-cont li{
#wh-xmas-cont p, #wh-xmas-cont select, #wh-xmas-cont li {
margin: 0 0 3px; margin: 0 0 3px;
} }
</style> </style>

View File

@ -9,7 +9,8 @@
<li>来到第二层,直接向东走上楼梯[11-19]</li> <li>来到第二层,直接向东走上楼梯[11-19]</li>
<li>来到了这个地牢的第03层</li> <li>来到了这个地牢的第03层</li>
<li>向东再向南走到墙边,然后向东走,与绿色<span style="color: #32CD32">史莱姆</span>战斗</li> <li>向东再向南走到墙边,然后向东走,与绿色<span style="color: #32CD32">史莱姆</span>战斗</li>
<li>继续向东走,经过被打败的史莱姆,然后向南和向西绕过墙,向北走一格,向西打败另一个<span style="color: #32CD32">史莱姆</span></li> <li>继续向东走,经过被打败的史莱姆,然后向南和向西绕过墙,向北走一格,向西打败另一个<span
style="color: #32CD32">史莱姆</span></li>
<li>向西南方向走下楼梯[53-49]</li> <li>向西南方向走下楼梯[53-49]</li>
<li>来到了第 04 层</li> <li>来到了第 04 层</li>
<li>走到墙边,撞右边两个镣铐之间的墙,然后向北直接走到墙里[15-65]</li> <li>走到墙边,撞右边两个镣铐之间的墙,然后向北直接走到墙里[15-65]</li>

View File

@ -1,11 +1,12 @@
<ul> <ul>
<li>1. 从出生地沿着路向东,然后向北。过桥并沿着穿过城镇的小路继续前行,避开任何明显的陷阱(道路上的洞、打开的井盖等)。</li> <li>1. 从出生地沿着路向东,然后向北。过桥并沿着穿过城镇的小路继续前行,避开任何明显的陷阱(道路上的洞、打开的井盖等)。
</li>
<li>2. 继续向东和向北前进,直到到达 Mansion's Labyrinth豪宅迷宫[121,29]</li> <li>2. 继续向东和向北前进,直到到达 Mansion's Labyrinth豪宅迷宫[121,29]</li>
<li>3. 豪宅入口在[131,41]</li> <li>3. 豪宅入口在[131,41]</li>
<li>4. 进入豪宅后向北走,你会看到一条由骷髅守卫的道路</li> <li>4. 进入豪宅后向北走,你会看到一条由骷髅守卫的道路</li>
<li>5. 沿着棕色的小路走,在黑色的<b>区域前</b>停下</li> <li>5. 沿着棕色的小路走,在黑色的<b>区域前</b>停下</li>
<li>6. 按照如下的方式行进</li> <li>6. 按照如下的方式行进</li>
<li> 上3格左2上2右4下1右3上6左2下1左6下2左2上4右5上4</li> <li> 上3格左2上2右4下1右3上6左2下1左6下2左2上4右5上4</li>
<li>7. 来到一个区域,在这里你必须在两个洞穴中做出选择</li> <li>7. 来到一个区域,在这里你必须在两个洞穴中做出选择</li>
<li>第一次选择答案是Christmas Miracle选择左边的洞窟。</li> <li>第一次选择答案是Christmas Miracle选择左边的洞窟。</li>
<li>第二次选择答案是24/12/2019选择左边的洞窟。</li> <li>第二次选择答案是24/12/2019选择左边的洞窟。</li>

View File

@ -12,6 +12,7 @@
<li>移动1到最右移动2到中间移动1到2上面,移动3到最右,移动1到最左,移动2到3.上面移动1到2上面。</li> <li>移动1到最右移动2到中间移动1到2上面,移动3到最右,移动1到最左,移动2到3.上面移动1到2上面。</li>
<li>11.往上走出铁丝网往左绕一个大圈走到300,476</li> <li>11.往上走出铁丝网往左绕一个大圈走到300,476</li>
<li>12.走到363,406的隧道走到361,400的隧道 ,往南走。</li> <li>12.走到363,406的隧道走到361,400的隧道 ,往南走。</li>
<li>13.走到352,334的迷宫好像有好几条路,我说我的走法,往左下走,走倒最下了往右走走到1个不一样的绿色的时候往上走。</li> <li>13.走到352,334的迷宫好像有好几条路,我说我的走法,往左下走,走倒最下了往右走走到1个不一样的绿色的时候往上走。
</li>
<li>14.走到迷宫中间的小人,后面就只有一条路走了,完成。</li> <li>14.走到迷宫中间的小人,后面就只有一条路走了,完成。</li>
</ul> </ul>

View File

@ -0,0 +1,132 @@
<div class="m-bottom10" id="wh-loot-container">
<audio src="https://www.torn.com/js/chat/sounds/Chirp_3.mp3" style="display:none"></audio>
<div class="title-black"><span>附近物品</span></div>
<div class="cont-gray" id="wh-loot-container-main">
<b>物品</b><span id="wh-loot-item-count"></span>
<div id="wh-loot-container-items"></div>
<b>箱子</b><span id="wh-loot-chest-count"></span>
<div id="wh-loot-container-chests"></div>
</div>
<div class="cont-gray wh-hide" id="wh-loot-container-ex">
<div><label><input id="wh-loot-setting-blink" type="checkbox" {{}}/> 闪烁提示</label></div>
<div><label><input id="wh-loot-setting-sound" type="checkbox" {{}}/> 声音提示
<del>(iOS)</del>
</label></div>
<div><label><input id="wh-loot-setting-chest" type="checkbox" {{}}/> 不记录需要钥匙的宝箱</label></div>
<div id="wh-hist">
<div id="wh-hist-clear">
<p>
<button>清空数据</button>
- 长时间不清空会出现奇怪的问题
</p>
</div>
<table>
<thead>
<tr>
<th colspan="5">历史记录</th>
</tr>
<tr>
<th>坐标</th>
<th>地图</th>
<th>类型</th>
<th>发现</th>
<th>获取</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
<div class="cont-gray" id="wh-loot-btn">
<button>设置</button>
</div>
</div>
<style>
#wh-loot-container-main {
padding: 0.5em;
}
#wh-loot-container-main div {
overflow-x: auto;
overflow-y: hidden;
white-space: nowrap;
min-height: 4em;
}
#wh-loot-container-main div span {
display: inline-block;
background-color: #2e8b57;
color: white;
margin: 0 1em 0 0;
border-radius: 4px;
padding: 0.5em;
}
#wh-loot-container-main div span img {
height: 1em;
width: 1em;
}
#wh-loot-container-ex {
padding: 0.5em;
}
#wh-loot-container-ex.wh-hide {
display: none;
}
#wh-loot-container-ex #wh-hist {
overflow-x: auto;
}
#wh-loot-container-ex table {
margin-top: 0.5em;
}
#wh-loot-container-ex tbody {
background-color: antiquewhite;
}
#wh-loot-container-ex table, #wh-loot-container-ex th, #wh-loot-container-ex td {
padding: 5px;
border: 1px solid black;
height: auto;
}
#wh-loot-container-ex th:nth-child(1) {
min-width: 5em;
}
#wh-loot-container-ex th:nth-child(2) {
min-width: 8em;
}
#wh-loot-container-ex th:nth-child(3) {
min-width: 4em;
}
#wh-loot-container-ex th:nth-child(4) {
min-width: 9em;
}
#wh-loot-container-ex th:nth-child(5) {
min-width: 3em;
}
#wh-loot-container-ex thead {
background-color: #2e8b57;
color: white;
}
@keyframes lootFoundAlert {
0% {
background: #f2f2f2
}
50% {
background: #2e8b57
}
100% {
background: #f2f2f2
}
}
</style>