您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Displays some useful info on the portrait
- // ==UserScript==
- // @namespace https://greasyfork.org/users/8637
- // @name The West - NERD Portrait
- // @author neversleep1911
- // @description Displays some useful info on the portrait
- // @include http://*.the-west.*/game.php*
- // @include https://*.the-west.*/game.php*
- // @grant none
- // @version 1.0.2
- // @copyright Copyright (c) 2015 neversleep1911
- // @license MIT (http://opensource.org/licenses/MIT)
- // ==/UserScript==
- (function(func) {
- var script;
- script = document.createElement("script");
- script.setAttribute("type", "text/javascript");
- script.textContent = "(" + func.toString() + ")();";
- document.body.appendChild(script);
- document.body.removeChild(script);
- })(function() {
- var Gui, I18n, NerdFormatter, NerdPortrait, Tab;
- I18n = function() {
- function I18n() {}
- var DEFAULT_LANGUAGE, STRINGS, language;
- DEFAULT_LANGUAGE = "en_US";
- STRINGS = {
- en_US: {
- buttons: {
- save: "Save"
- },
- messages: {
- text_saved: "Text saved",
- enter_text: "Enter text!"
- }
- },
- de_DE: {
- buttons: {
- save: "Speichern"
- },
- messages: {
- text_saved: "Text gespeichert",
- enter_text: "Text eingeben!"
- }
- },
- ru_RU: {
- buttons: {
- save: "Сохранить"
- },
- messages: {
- text_saved: "Текст сохранён",
- enter_text: "Введите текст!"
- }
- }
- };
- language = DEFAULT_LANGUAGE;
- I18n.language = function() {
- return language;
- };
- I18n.setLanguage = function(lang) {
- return language = STRINGS[lang] ? lang : DEFAULT_LANGUAGE;
- };
- I18n.tr = function(id) {
- var i, len, prop, properties, string;
- string = STRINGS[language];
- properties = id.split(".");
- for (i = 0, len = properties.length; i < len; i++) {
- prop = properties[i];
- if ((string = string[prop]) === void 0) {
- break;
- }
- }
- return string || id;
- };
- return I18n;
- }();
- Gui = function() {
- function Gui() {}
- Gui.createButton = function(options) {
- var button;
- if (options == null) {
- options = {};
- }
- if (options.icon) {
- button = new west.gui.Iconbutton(options.icon, options.onclick);
- } else {
- button = new west.gui.Button(options.text, options.onclick);
- }
- if (options.css) {
- $(button.getMainDiv()).css(options.css);
- }
- return button;
- };
- Gui.createTextarea = function(options) {
- var textarea;
- if (options == null) {
- options = {};
- }
- textarea = new west.gui.Textarea(options.content, null);
- if (options.width) {
- textarea.setWidth(options.width);
- }
- if (options.height) {
- textarea.setHeight(options.height);
- }
- if (options.css) {
- $(textarea.getMainDiv()).css(options.css);
- }
- return textarea;
- };
- Gui.createGroup = function(options) {
- var content, group, scrollPane;
- if (options == null) {
- options = {};
- }
- group = new west.gui.Groupframe("", "<div />");
- if (options.css) {
- $(group.getMainDiv()).css(options.css);
- }
- content = $(".tw2gui_groupframe_content_pane div", group.getMainDiv()).first();
- if (options.title) {
- content.append($("<h2>" + options.title + "</h2><hr style='margin-top: 2px; margin-bottom: 4px;' />"));
- }
- if (options.scrollPane) {
- scrollPane = new west.gui.Scrollpane;
- if (options.scrollPane.css) {
- $(scrollPane.getMainDiv()).css(options.scrollPane.css);
- }
- content.append(scrollPane.getMainDiv());
- group.scrollPane = scrollPane;
- group.appendToScrollContentPane = function(content) {
- scrollPane.appendContent(content);
- return group;
- };
- }
- return group;
- };
- return Gui;
- }();
- NerdFormatter = function() {
- function NerdFormatter() {}
- NerdFormatter.keys = [ {
- pattern: /%ch/,
- value: function() {
- return Character.healthRegen;
- }
- }, {
- pattern: /%ce/,
- value: function() {
- return Character.energyRegen;
- }
- }, {
- pattern: /%hp/,
- value: function() {
- return Math.round(Character.health * 100 / Character.maxHealth);
- }
- }, {
- pattern: /%hr/,
- value: function() {
- return Math.round(1 / (Character.healthRegen * Character.maxHealth) * 3600).formatDuration();
- }
- }, {
- pattern: /%ht/,
- value: function() {
- return ((Character.maxHealth - Character.health) / (Character.healthRegen * Character.maxHealth) * 3600).formatDuration();
- }
- }, {
- pattern: /%ep/,
- value: function() {
- return Math.round(Character.energy * 100 / Character.maxEnergy);
- }
- }, {
- pattern: /%er/,
- value: function() {
- return Math.round(1 / (Character.healthRegen * Character.maxEnergy) * 3600).formatDuration();
- }
- }, {
- pattern: /%et/,
- value: function() {
- return ((Character.maxEnergy - Character.energy) / (Character.energyRegen * Character.maxEnergy) * 3600).formatDuration();
- }
- }, {
- pattern: /%dl/,
- value: function() {
- return Character.duelLevel;
- }
- }, {
- pattern: /%dm/,
- value: function() {
- return Math.ceil(5 * Character.duelLevel / 7);
- }
- }, {
- pattern: /%dx/,
- value: function() {
- return Math.ceil(7 * Character.duelLevel / 5);
- }
- } ];
- NerdFormatter.format = function(s) {
- var i, k, len, ref;
- ref = this.keys;
- for (i = 0, len = ref.length; i < len; i++) {
- k = ref[i];
- s = s.replace(k.pattern, k.value());
- }
- return s;
- };
- return NerdFormatter;
- }();
- NerdPortrait = function() {
- function NerdPortrait() {
- if (instance) {
- return instance;
- }
- instance = this;
- EventHandler.listen([ "health", "energy", "wear_changed", "taskqueue-updated", "position_change", "character_level_up" ], function() {
- NerdPortrait.instance().update();
- });
- this.update();
- return;
- }
- var instance;
- NerdPortrait.ID = "tw_nerd_portrait";
- NerdPortrait.NAME = "NERD Portrait";
- NerdPortrait.AUTHOR = "neversleep1911";
- NerdPortrait.WEB_SITE = "https://greasyfork.org/scripts/9505";
- NerdPortrait.MIN_GAME_VERSION = "2.22";
- NerdPortrait.MAX_GAME_VERSION = Game.version.toString();
- NerdPortrait.LSK_TEXT = "3577cb3d-1fbf-4c37-9b6a-3854a6c4c34d";
- NerdPortrait.DEFAULT_TEXT = '<div style="color: whitesmoke; position: relative; left: 10px; top: 5px; font-size: 75%; font-weight: bold; line-height: 110%;">\n' + "Health: %hp%<br />\n" + "Regen: %ch (%ht)<br />\n" + "1HP / %hr<br /><br />\n\n" + "Energy: %ep%<br />\n" + "Regen: %ce (%et)<br />\n" + "1EP / %er<br /><br />\n\n" + "Duel Level: %dl (%dm-%dx)" + "</div>";
- instance = null;
- NerdPortrait.instance = function() {
- return instance;
- };
- NerdPortrait.prototype.update = function() {
- if (!this.content) {
- $("div.character_link").append(this.content = $("<div />"));
- }
- this.content.html(NerdFormatter.format(this.text()));
- };
- NerdPortrait.prototype.text = function() {
- return this._text || (this._text = localStorage.getItem(NerdPortrait.LSK_TEXT)) || NerdPortrait.DEFAULT_TEXT;
- };
- NerdPortrait.prototype.setText = function(_text) {
- this._text = _text;
- localStorage.setItem(NerdPortrait.LSK_TEXT, this._text);
- this.update();
- };
- return NerdPortrait;
- }();
- Tab = function() {
- function Tab() {
- if (instance) {
- return instance;
- }
- instance = this;
- this.maindiv = $("<div />");
- this.maindiv.append((this.textGroup = Gui.createGroup()).getMainDiv());
- this.maindiv.append((this.actionGroup = Gui.createGroup()).getMainDiv());
- this.textGroup.appendToContentPane((this.text = Gui.createTextarea({
- width: 598,
- height: 205
- })).getMainDiv());
- this.actionGroup.appendToContentPane((this.buttonSave = Gui.createButton({
- text: I18n.tr("buttons.save")
- })).getMainDiv());
- EventHandler.listen("WINDOW_OPENED", function(uid) {
- if (uid !== "scripts") {
- return;
- }
- Tab.instance().text.setContent(NerdPortrait.instance().text());
- $(Tab.instance().buttonSave.getMainDiv()).off("click").on("click", function() {
- var e, text;
- text = $.trim(Tab.instance().text.getContent());
- if (text !== "") {
- try {
- NerdPortrait.instance().setText(text);
- (new UserMessage(I18n.tr("messages.text_saved"), UserMessage.TYPE_SUCCESS)).show();
- } catch (_error) {
- e = _error;
- (new UserMessage(e, UserMessage.TYPE_ERROR)).show();
- }
- } else {
- (new UserMessage(I18n.tr("messages.enter_text"), UserMessage.TYPE_HINT)).show();
- }
- return false;
- });
- });
- }
- var instance;
- instance = null;
- Tab.instance = function() {
- return instance;
- };
- return Tab;
- }();
- $(document).ready(function() {
- var api;
- I18n.setLanguage(Game.locale);
- api = TheWestApi.register(NerdPortrait.ID, NerdPortrait.NAME, NerdPortrait.MIN_GAME_VERSION, NerdPortrait.MAX_GAME_VERSION, NerdPortrait.AUTHOR, NerdPortrait.WEB_SITE);
- api.setGui((new Tab).maindiv);
- new NerdPortrait;
- return true;
- });
- });