您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Make Game8 more user-friendly for English-speaking players
// ==UserScript== // @name Game8 Plus Plus // @namespace https://greasyfork.org/en/users/1084257-greasy-axolotol // @version 0.0.17 // @license MIT // @description Make Game8 more user-friendly for English-speaking players // @match https://game8.jp/ff14/* // @match https://nukemarugames.com/* // ==/UserScript== /* Original code: https://greasyfork.org/en/scripts/10976-replace-text-on-webpages */ (function () { 'use strict'; /* NOTE: You can use \\* to match actual asterisks instead of using it as a wildcard! The examples below show a wildcard in use and a regular asterisk replacement. */ function words() { return { // Syntax: 'Search word' : 'Replace word', // 'your a': 'you\'re a', // 'imo': 'in my opinion', // 'im\\*o': 'matching an asterisk, not a wildcard', // '/\\bD\\b/g': '[D]', // Golbez EX 'ゴルベーザ': 'Golbez', 'ディレイアース': 'Terrastorm', 'ディレイスパーク': 'Lingering Spark', '弦月連剣': 'Phases of the Blade', '呪縛の冷気': "Binding Cold", 'ウィンドスフィア': 'Gale Sphere', 'ウインドスフィア': 'Gale Sphere', 'コールドブラスト': 'Arctic Assault', 'ヴォイド・メテオ': 'Void Meteor', 'ヴォイドメテオ': 'Void Meteor', '黒竜剣アジュダヤ': "Azdaja's Shadow", '黒龍剣アジュダヤ': "Azdaja's Shadow", '黒い牙': 'Black Fang', '弦月黒竜連剣': 'Phases of the Shadow', 'ダブルメテオ': 'Double Meteor', 'ヴォイド・コメットレイン': 'Void Stardust', 'ヴォイドコメットレイン': 'Void Stardust', 'ヴォイドレイン': 'Void Stardust', '三連黒竜閃': 'Eventide Triad', '収束黒竜閃': 'Eventide Fall', '集束黒竜閃': 'Eventide Fall', // Zurvan 'ズルワーン': 'Zurvan', 'メタルカッター': 'Metal Cutter', 'フレアスター': 'Flare Star', '飛翔': 'Soar', 'デモンクロー': "Demon's Claw", 'フレイムハルバード': 'Flaming Halberd', 'バイティングハルバート': 'Biting Halberd', 'バイティングハルバード': 'Biting Halberd', 'サザンクロス': 'Southern Cross', 'テイルエンド': 'Tail End', 'シクリクル': 'Ciclicle', 'ウィル': 'Will', 'セウ': "Thew", 'ウィット': 'Wit', 'ワイル': 'Wile', // P9S 'グラトニーズアーガー': "Gluttony's Augur", '魂喰らい': "Ravening", '魂食らい': "Ravening", 'デストゥワイス': 'Duality of Death', "ダブルスペル": 'Dualspell', '穿昇拳': 'Ascendant Fist', '古式地烈斬': 'Archaic Rockbreaker', '古式地裂斬': 'Archaic Rockbreaker', '前方連転脚': 'Front Combination', '後方連転脚': 'Rear Combination', 'サモンライトニング': 'Levinstrike Summoning', 'ジャンブルコンボ': 'Scrambled Succession', '憑魔双撃': 'Two Minds', 'ミールストーム': 'Charybdis', 'エクリプスメテオ': 'Ecliptic Meteor', 'ビーストバイル': 'Beastly Bile', 'コメット': 'Comet', 'サンダーボルト': 'Thunderbolt', 'ビーストフューリー': 'Beastly Fury', 'キメリックコンボ': 'Chimeric Succession', '古式破砕拳': 'Archaic Demolish', // P10S 'アルテマ': 'Ultima', 'ソウルグラスブ': 'Soul Grasp', 'ソウルグラスプ': 'Soul Grasp', "ディバイドヴィング": "Dividing Wings", "ディバイドウィング": "Dividing Wings", "ヘビーウェブ": "Steel Web", "パンデモニウムリング": "Circle of Pandæmonium", "パンデモニックリング": "Circle of Pandæmonium", "パンデモニウムホーリー": "Pandæmonium's Holy", "パンデモニックホーリー": "Pandæmonium's Holy", "ホーリー/リング": "Holy/Circle", "尖脚": "Wicked Step", "グランドウェブ": "Entangling Web", "パンデモニウムビラー": "Pandæmoniumic Pillars", "パンデモニックピラー": "Pandæmoniumic Pillars", "スビットウェブ": "Silkspit", "スピットウェブ": "Silkspit", "スピッドウェブ": "Silkspit", "パンデモニックポンド": "Dæmoniac Bonds", "パンデモニックボンド": "Dæmoniac Bonds", "パンデモニックメルトン": "Pandæmoniac Meltdown", "タッチタウン": "Touchdown", "タッチダウン": "Touchdown", "パンデモニックタレット": "Pandæmoniac Turrets", "パンデモニックレイ": "Pandæmoniac Ray", "魔殿の震撃": "Harrowing Hell", // P11S "エウノミアー": "Eunomia", "ディケー": "Dike", "ジューリー・オーバールール": "Jury Overruling", "ジューリー": "Jury", "ジューリ―": "Jury", "アップヘルド・オーバールール": "Upheld Overruling", "アップヘルド": "Upheld", "ディバイド・オーバールール": "Divisive Overruling", "ディバイドオーバールール": "Divisive Overruling", "ディバイド": "Divisive", "ステュクス": "Styx", "魔法陣展開": "Arcane Revelation", "ディスミサル・オーバールール": "Dismissal Overruling", "ディスミサル": "Dismissal", "戒律の幻想": "Shadowed Messengers", "ライトストリーム": "Lightstream", "光と闇の調停": "Dark and Light", "ダークストリーム": "Dark Current", "理法の幻想": "Letter of the Law", } } function commonWords() { return { 'プレイヤー': '<player>', 'ボス': '<boss>', 'タンク': '<tank>', 'ヒラ': '<healer>', 'ノックバック': '<knock-back>', 'ドーナツ': '<donut>', 'ヘイト': '<aggro>', 'デバフ': '<debuff>', 'フレア': "<flare>", 'ランダム': "<random>", 'サイコロ': "<limit cut>", '雑魚': "<adds>", 'フィールドマーカー': "<markers>", 'DPSチェック': "<dps check>", "ターゲット": "<target>", }; } var currentUrl = window.location.href; // Replace the macro with the English version var ewEx6Url = "https://game8.jp/ff14/529320" //Golbez if (currentUrl === ewEx6Url) { var tableElements = document.getElementsByClassName("a-table a-table"); var enMacro = // https://tuufless.github.io/FFXIV-Elemental-Raid-Macros/6.0_endwalker/extreme_trials/golbez/ `■ Spread (True North)ー■ 4:4 stacks ーーーーーー D3 MT D4 N/W/Out: MT H1 D1 D3 H1 ★ H2 S/E/In: ST H2 D2 D4 D1 ST D2 ■ Lingering Spark ーーーーーーーーーーーーーーー Move when cast finishes ■ Double Meteor ーーーーーーーーーーーーーーー DPS: 3-man tower Flare: North T/H: 2-man tower Flare: South KB: Mid ■ Void Stardust ーーーーーーーーーーーーーーーー N1:H1D3 N2:MTD1 S1:H2D4 S2:STD2 ■ Gale Sphere #2, #3 ーーーーーーーーーーーーーー N/W:H1D3 MTD1 STD2 H2D4:S/E ■ Eventide Triad ーーーーーーーーーーーーーーーー Tanks→North Healers→E/W DPS→South ` tableElements[0].tBodies[0].rows[0].cells[0].innerText = enMacro; } ////////////////////////////////////////////////////////////////////////////// // This is where the real code is // Don't edit below this ////////////////////////////////////////////////////////////////////////////// var regexs = [], replacements = [], tagsWhitelist = ['PRE', 'BLOCKQUOTE', 'CODE', 'INPUT', 'BUTTON', 'TEXTAREA'], rIsRegexp = /^\/(.+)\/([gim]+)?$/, word, text, texts, i, userRegexp; // prepareRegex by JoeSimmons // used to take a string and ready it for use in new RegExp() function prepareRegex(string) { return string.replace(/([\[\]\^\&\$\.\(\)\?\/\\\+\{\}\|])/g, '\\$1'); } // function to decide whether a parent tag will have its text replaced or not function isTagOk(tag) { return tagsWhitelist.indexOf(tag) === -1; } function addReplacements(word, words) { if (typeof word === 'string' && words.hasOwnProperty(word)) { userRegexp = word.match(rIsRegexp); // add the search/needle/query if (userRegexp) { regexs.push( new RegExp(userRegexp[1], 'g') ); } else { regexs.push( new RegExp(prepareRegex(word).replace(/\\?\*/g, function (fullMatch) { return fullMatch === '\\*' ? '*' : '[^ ]*'; }), 'g') ); } // add the replacement replacements.push(words[word]); } } // convert the 'words' JSON object to an Array for (word in words()) { addReplacements(word, words()) } for (word in commonWords()) { addReplacements(word, commonWords()) } // do the replacement texts = document.evaluate('//body//text()[ normalize-space(.) != "" ]', document, null, 6, null); for (i = 0; text = texts.snapshotItem(i); i += 1) { if (isTagOk(text.parentNode.tagName)) { regexs.forEach(function (value, index) { text.data = text.data.replace(value, replacements[index]); }); } } }());