ETH官方钱包

前往
大廳
主題

瑪奇貿易走私翻譯腳本

小毛毛蟲 | 2024-01-21 21:11:04 | 巴幣 1000 | 人氣 470

退坑了七八年最近才回鍋,很多貿易小工具都壞了,韓文每次都要找對照翻譯也很麻煩,所以就整理成以下腳本了,腳本只是將文字做替換而已,很安全,可以自己看 code。

主要針對韓國fantazm做了地區和物品的翻譯以及時間調整,時間調整僅供參考我也不保證一定對XD

注意的是杜卡特是售價而且不會和臺灣一樣所以可以忽略

主要功能
- 加上轉換臺灣時區並且校時
- 翻譯物品名稱及加上地點
- 翻譯地區名稱



腳本可自行安裝 TamperMonkey 之類的載入使用
// ==UserScript==
// @name         瑪奇走私繁體中文翻譯
// @description  翻譯走私預報
// @version      0.0.3
// @author       小毛毛蟲@愛麗莎
// @grant        GM_addStyle
// @license      MIT
// @match        https://lute.fantazm.net/*
// ==/UserScript==


/* global $ */
GM_addStyle('.tw-time { color: red; }'); // 添加 CSS

(function() {
    'use strict';

    // 設定對應韓文到中文的字典
    const translationMap = {
        '????': '現實時間',
        '??': '位置',
        '???': '走私品',
        '???': '杜卡特(售價)',
        '??? ??':'嬰孩藥水(堤爾克那)',
        '???? ??':'減肥藥水(堤爾克那)',
        '??? ?? ??':'預防打鼾藥水(堤爾克那)',
        '?? ??':'人蔘藥水(堤爾克那)',
        '??? ??':'限-討喜藥水(堤爾克那)',
        '??? ??':'蜘蛛絲手套(杜巴頓)',
        '?? ??':'羊毛靴子(杜巴頓)',
        '?? ??? ??':'食人魔屠夫面具(杜巴頓)',
        '???? ??':'惡翅魅魔正裝(杜巴頓)',
        '???? ???':'限-魅魔泳衣(杜巴頓)',
        '???? ??':'班克爾煤炭(班克爾)',
        '???':'大理石(班克爾)',
        '???':'黃水晶(班克爾)',
        '???? ??':'高地礦石(班克爾)',
        '?':'限-鉛(班克爾)',
        '?? ????':'莓燕麥片(艾明馬夏)',
        '?? ??':'奶油啤酒(艾明馬夏)',
        '?? ???? ??':'燻烤野生動物(艾明馬夏)',
        '??? ???':'松露義大利麵(艾明馬夏)',
        '?? ???':'限-烤全熊(艾明馬夏)',
        '??? ??':'熱氣的結晶(塔爾汀)',
        '??? ???':'留聲石(塔爾汀)',
        '??? ??':'帕拉魯結晶(塔爾汀)',
        '????? ??':'防護壁圓形結晶(塔爾汀)',
        '?? ??':'限-鍊金結晶(塔爾汀)',
        '?? ???':'迷你梳妝臺(塔拉)',
        '? ???':'茶幾(塔拉)',
        '?? ??':'搖椅(塔拉)',
        '??? 2? ??':'小朋友兩層樓床(塔拉)',
        '?? ???':'限-大型葡萄酒架(塔拉)',
        '??? ?':'卡普海苔(卡普)',
        '??? ?':'卡普牡蠣()',
        '?? ????':'鯊魚魚鰭(卡普)',
        '?? ???':'海蜇皮(卡普)',
        '??? ??':'限-那伊德鱗片(卡普)',
        '???':'鐵鞭子(貝爾法斯特)',
        '?? ??':'闇之劍(貝爾法斯特)',
        '??':'金庫(貝爾法斯特)',
        '???? ?? ??':'骷髏食人魔盔甲(貝爾法斯特)',
        '?? ???? ??':'限-摩根特頭盔仿製品(貝爾法斯特)',
        '???? ???':'薄荷巧克力粉(克拉)',
        '??? ??':'新鮮的石榴(克拉)',
        '???? ????':'魔法之門模型(克拉)',
        '??? ?? ??':'探險用救援工具(克拉)',
        '??? ??? ???':'限-卡比仙人掌精華(克拉)',
        '?? ???':'玻璃鵝卵石(比路里亞)',
        '?? ??':'桂皮香水(比路里亞)',
        '?? ???':'乾燥番紅花(比路里亞)',
        '?? ?? ??':'侖格天然巖鹽(比路里亞)',
        '??? ? ??':'限-比路里亞肉乾(比路里亞)',
        '???? ?? ???':'庫爾勒克遺跡紀念品(科爾)',
        '??? ?? ??':'儀式用大型面具(科爾)',
        '??? ????':'拉圖勒樹梅(科爾)',
        '?? ?? ?? ??':'遺物修復工具組(科爾)',
        '???? ?? ??':'限-庫爾勒克天然橡膠(科爾)',
        '??? ??? ??':'巴雷斯合成棉外套(巴雷斯)',
        '?? ?? ??':'天然冰川泉水(巴雷斯)',
        '???? ??':'溜冰鞋(巴雷斯)',
        '??? ??':'滑雪板(巴雷斯)',
        '??? ???':'限-巴雷斯伏特加(巴雷斯)',
        '??? ?? ???? ??':' 杜加德走廊伐木場東邊',
        '??? ?? ???? ???':' 杜加德走廊伐木場東南',
        '??? ?? ???':' 杜加德走廊東南邊',
        '???? ?? ???? ??':'亞斯特東邊',
        '???? ?? ???? ???':'亞斯特東南',
        '???? ?? ?????':'菲歐納地下城',
        '? ?? ?? ????':'貝卡地下城',
        '? ?? ?? ???':'山平爾平原西北',
        '? ?? ?? ??':'山平爾平原北邊',
        '? ?? ?? ???':'山平爾平原東南',
        '? ?? ?? ??':'山平爾平原南邊',
        '???? ?? ??':'索利亞庫林西邊',
        '???? ?? ???? ??':'索利亞庫林巖石地帶東邊',
        '???? ?? ????':'索利亞庫林巖石地帶',
        '???? ?? ???? ??':'索利亞庫林巖石地帶西邊',
        '?? ???? ??':' 塔爾汀巨石陣西邊',
        '?? ??':'塔爾汀墓地',
        '?? ??':'塔爾汀南邊',
        '?? ???':'塔爾汀西南邊',
        '?? ?? ???? ??':' 亞布內亞尼爾湖西邊',
        '?? ?? ???? ???':' 亞布內亞尼爾湖西南',
        '?? ?? ???? ???':' 亞布內亞尼爾湖西北',
        '?? ?? ???? ???':' 亞布內亞尼爾湖東南',
        '??? ?? ??':' 克里布山谷北邊',
        '??? ?? ??':' 克里布山谷南邊',
        '??? ?? ???':' 布拉格平原西北',
        '??? ?? ??? ???':' 布拉格平原傑哈酒莊',
        '??? ?? ??':' 布拉格平原北邊',
        '??? ?? ??':' 布拉格平原東邊',


        // 更多轉換...
    };


    // 函數用於校正時間
    function adjustTime(timeStr) {
        const timeParts = timeStr.split(':');
        if (timeParts.length === 3) {
            let hours = parseInt(timeParts[0], 10);
            let minutes = parseInt(timeParts[1], 10);
            let seconds = parseInt(timeParts[2], 10);

            // 加上時差1小時又5分鐘
            minutes += 5;
            if (minutes >= 60) {
                minutes -= 60;
                hours += 1;
            }
            hours += 1;

            // 處理超過24小時的情況
            if (hours >= 24) {
                hours -= 24;
            }

            // 轉回兩位數格式
            const hoursStr = hours.toString().padStart(2, '0');
            const minutesStr = minutes.toString().padStart(2, '0');
            const secondsStr = seconds.toString().padStart(2, '0');

            return `${hoursStr}:${minutesStr}:${secondsStr}`;
        }
        return '';
    }

    // 遍歷表格中特定的 td 元素並添加校正後的時間
    function addAdjustedTime() {
        $('#smug_content td[data-th="? ?"]').each(function() {
            const originalTime = $(this).text();
            const adjustedTime = adjustTime(originalTime);
            if (adjustedTime) {
                const timeHtml = `${originalTime} <br/><span class="tw-time">【 TW: ${adjustedTime} 】</span>`;
                $(this).html(timeHtml);
            }
        });
    }

   // 函數用於轉換文本
    function translateText(text) {
        return translationMap[text.trim()] || text; // 去除空格後進行翻譯
    }

    // 遍歷表格中的所有 th 和 td 元素並轉換內容
    function translateTable() {
        $('#smug_content th, #smug_content td').each(function() {
            $(this).contents().each(function() {
                if (this.nodeType === Node.TEXT_NODE) {
                    this.nodeValue = translateText(this.nodeValue);
                }
            });
        });
    }

    // 創建一個新的 MutationObserver 監聽器來監聽 DOM 變化
    const observer = new MutationObserver(function(mutations) {
        mutations.forEach(function(mutation) {
            if (mutation.addedNodes && mutation.addedNodes.length > 0) {
                // 每次 DOM 更新時,重新翻譯表格並添加校正時間
                translateTable();
                addAdjustedTime();
            }
        });
    });


    // 配置和啟動 MutationObserver
    const config = { childList: true, subtree: true };
    observer.observe(document.body, config);

})();


送禮物贊助創作者 !
0
留言

2則留言

2024-03-07 13:01:02
我忘了一個機制就是自己注意看愛爾琳 22:00 就可以忽略誤差的問題了 XD
2024-02-29 13:40:46
時間好像比之前多誤差了十幾秒,不過影響不大 ~~ 可能跟伺服器重開之後時間都會有點偏移

更多創作