您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Fort battle tools for The West!
当前为
// ==UserScript== // @name The West Fortbattle Tool // @namespace The West Fortbattle Tool // @author westernblumi // @description Fort battle tools for The West! // @include https://*.the-west.*/game.php* // @version 0.51 // @grant none // ==/UserScript== // translation: westernblumi(German & English), pepe100(Spanish) (function (fn) { var script = document.createElement('script'); script.setAttribute('type', 'application/javascript'); script.textContent = '(' + fn.toString() + ')();'; document.body.appendChild(script); document.body.removeChild(script); }) (function () { TWFBTstart = { version: '0.51', langs: { en: { language: 'English', aim: 'Aiming', adventurer: 'Adventurer', attack: 'Attack', bonusByClothes: 'Bonus by Clothes', bonusBySets: 'Bonus by Sets', bonusBySkill: 'Bonus by skill', bonusDefault: 'Defaultbonus', bonusTotal: 'Total', calcBonus: 'Calculate fort battle bonus', calculator: 'Calculator', clear: 'Clear Window', clothes: 'Clothes', damage: 'Damage bonus', defense: 'Defense', dodge: 'Dodging', duelist: 'Duelist', endurance: 'Stamina', hide: 'Hiding', leadership: 'Leadership', lifepoints: 'Lifepoints', newFormula: 'new formula', oldFormula: 'old formula', pa: 'Premium (soldier and worker fort battle bonus)', pitfall: 'Setting traps', resistance: 'Resistance', scriptName: 'The West Fortbattle Tool', soldier: 'Soldier', worker: 'Worker', name: 'Name', author: 'Author: </b>', version: 'Version: </b>', update: 'Update', updateAvailable: 'A new version of the script is available', }, de: { language: 'German (Deutsch)', aim: 'Zielen', adventurer: 'Abenteurer', attack: 'Angriff', bonusByClothes: 'Bonus durch Bekleidung', bonusBySets: 'Bonus durch Sets', bonusBySkill: 'Bonus durch Skillung', bonusDefault: 'Grundbonus', bonusTotal: 'Gesamt', calcBonus: 'Berechne Fortkampf Bonus', calculator: 'Rechner', clear: 'Lösche Berechnungen', clothes: 'Klamotten', damage: 'Schadensbonus', defense: 'Verteidigung', dodge: 'Ausweichen', duelist: 'Duellant', endurance: 'Ausdauer', hide: 'Verstecken', leadership: 'Leiten', lifepoints: 'Lebenspunkte', newFormula: 'neue Formel', oldFormula: 'alte Formel', pa: 'Premium (Soldaten und Arbeiterbonus)', pitfall: 'Fallen stellen', resistance: 'Widerstand', scriptName: 'The West FK Tool', soldier: 'Soldat', worker: 'Arbeiter', name: 'Name', author: 'Autor: </b>', version: 'Version: </b>', update: 'Update', updateAvailable: 'Für das Script ist eine neue Version erhältlich', }, es: { language: 'Español', aim: 'Apuntar', adventurer: 'Adventurero', attack: 'Ataque', bonusByClothes: 'Bono por Ropas', bonusBySets: 'Bono por Conjuntos', bonusBySkill: 'Bono por Habilidad', bonusDefault: 'Bono por Defecto', bonusTotal: 'Total', calcBonus: 'Calcular Bono de Batalla', calculator: 'Calculadora', clear: 'Limpiar Ventana', clothes: 'Ropa', damage: 'Bono de Daño', defense: 'Defensa', dodge: 'Eludir', duelist: 'Duelista', endurance: 'Condición', hide: 'Esconderg', leadership: 'Liderazgo', lifepoints: 'Puntos de Vida', newFormula: 'new formula', oldFormula: 'old formula', pa: 'Premium (bonus Soldado/Trabajador)', pitfall: 'Setting traps', resistance: 'Resistencia', scriptName: 'The West Fortbattle Tool', soldier: 'Soldado', worker: 'Trabajador', name: 'Nombre', author: 'Autor: ', version: 'Versión: ', update: 'actualizar', updateAvailable: 'Una nueva versión del script está disponible', }, } }; TWFBT = { name: 'The West Fortbattle Tool', author: 'westernblumi', minGame: '2.4', maxGame: Game.version.toString(), website: 'https://greasyfork.org/de/scripts/22880-the-west-fortbattle-tool', updateUrl: 'https://raw.githack.com/westernblumi/thewest/master/skriptUpdater.js', side: 'attack', pa: false, characterClass: Character.charClass, formula: 'newFormula', Images: { settings: 'data:image/jpeg;base64,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', }, updateLang: function () { var lg = TWFBTstart.langs; TWFBT.lang = lg[Game.locale.substr(0, 2)] ? Game.locale.substr(0, 2) : 'en'; TWFBTlang = lg[TWFBT.lang]; }, }; TWFBT.updateLang(); TWFBT.Skript = { init: function () { TWFBT['Calculator'].init(); TWFBT['Reminder'].init(); var menuContainer = $('<div id="TWFBT-menu" class="menulink" onclick="TWFBT.GUI.openTWFBTWindow();" title="' + TWFBTlang.scriptName + '" />').css('background-image', 'url(' + TWFBT.Images.settings + ')').css('background-position', '0px 0px').mouseenter(function () { $(this).css('background-position', '-25px 0px'); }).mouseleave(function () { $(this).css('background-position', '0px 0px'); }); $('#ui_menubar').append($('<div class="ui_menucontainer" />').append(menuContainer).append('<div class="menucontainer_bottom" />')); }, }; TWFBT.GUI = { openTWFBTWindow: function () { TWFBT.GUI.open(); TWFBT.GUI.calcSkill(); }, open: function () { TWFBT.GUI.window = wman.open('TWFBT', TWFBTlang.scriptName, 'noreload').setMiniTitle(TWFBTlang.scriptName).setMaxSize(1268, 838); TWFBT.GUI.window.addTab(TWFBTlang.calculator, 'TWFBTCalcSkill', TWFBT.GUI.calcSkill); }, getDefault: function (tab) { TWFBT.GUI.window.setResizeable(false).setSize(748, 471).clearContentPane().removeClass('nocloseall').setTitle('TWFBTCalcSkill'); TWFBT.GUI.window.dontCloseAll = false; $(TWFBT.GUI.window.getContentPane()).css('margin-top', '0px'); var wnd = TWFBT.GUI.window.getMainDiv(); $('.textart_title', wnd).css('display', ''); TWFBT.GUI.window.activateTab(tab); }, calcSkill: function () { TWFBT.GUI.getDefault('TWFBTCalcSkill'); TWFBT.GUI.window.setTitle(TWFBTlang.scriptName); var featScroll = new west.gui.Scrollpane(); $(featScroll.getMainDiv()).css({ 'margin-top': '10px' }); var calcButton = new west.gui.Button(TWFBTlang.calcBonus, function () { TWFBT.Calculator.calcSkills(); }); var clearButton = new west.gui.Button(TWFBTlang.clear, function () { clearTable(); }); var paCheckbox = new west.gui.Checkbox().setLabel(TWFBTlang.pa).setSelected(Premium.hasBonus('character')); paCheckbox.setCallback(function(){TWFBT.pa = paCheckbox.isSelected();}.bind(this)); var charClassBox = new west.gui.Combobox(); charClassBox.addItem('adventurer', TWFBTlang.adventurer); charClassBox.addItem('duelist', TWFBTlang.duelist); charClassBox.addItem('worker', TWFBTlang.worker); charClassBox.addItem('soldier', TWFBTlang.soldier); charClassBox.select(Character.charClass); TWFBT.characterClass = Character.charClass; charClassBox.addListener(function(val){TWFBT.characterClass = val;}); var formulaBox = new west.gui.Combobox(); formulaBox.addItem('newFormula', TWFBTlang.newFormula); formulaBox.addItem('oldFormula', TWFBTlang.oldFormula); formulaBox.select('newFormula'); TWFBT.formula = 'newFormula'; formulaBox.addListener(function(val){TWFBT.formula = val;}); var modeBox = new west.gui.Combobox(); modeBox.addItem('attack', TWFBTlang.attack); modeBox.addItem('defense', TWFBTlang.defense); modeBox.addListener(function(val){TWFBT.side = val;}); featScroll.appendContent(modeBox.getMainDiv()); featScroll.appendContent(' '); featScroll.appendContent(paCheckbox.getMainDiv()); featScroll.appendContent(' '); featScroll.appendContent(charClassBox.getMainDiv()); featScroll.appendContent(formulaBox.getMainDiv()); featScroll.appendContent('<br>'); featScroll.appendContent(calcButton.getMainDiv()); featScroll.appendContent(clearButton.getMainDiv()); featScroll.appendContent('<table border="1" id="TWFBTCalculatorTable"></table>'); $(TWFBT.GUI.window.getContentPane()).append(featScroll.getMainDiv()); var clearTable = function () { $('#TWFBTCalculatorTable').empty(); } }, }; TWFBT.Calculator = { init: function () { TWFBT.Calculator.values = { offense: 0, defense: 0, offense_skillwithbonus: 0, defense_skillwithbonus: 0, offense_defaultbonus: 25, defense_defaultbonus: 10, offense_fortbattlebonus: 0, defense_fortbattlebonus: 0, offense_setbonus: 0, defense_setbonus: 0, damage: 0, resistance: 0, lifepoints: 0, side_skill: 'endurance' }; var update = function (key, stage) { var offense = 0; var defense = 0; var damage = 0; var resistance = 0; if(stage > 1){ switch(key) { case 'instance_set_1': //Banditen if(stage < 10){ offense += (stage-1)*0.5; defense += (stage-1)*0.5; damage += (stage-1)*0.05*Character.level; } else{ offense += 5; defense += 5; damage += 0.5*Character.level; } break; case 'set_4july_2014_animal_1': //Black Barts Pferd und Sattel damage += 15; break; case 'set_4july_2014_1': //Black Barts Set if(stage >=6){ damage += 40; } break; case 'set_octoberfest_gun_winner': //Blitz und Donner offense += 5; defense += 5; resistance += 25; break; case 'set_4july_2014_animal_2': //Bob Daltons Pferd und Sattel resistance += 25; break; case 'set_4july_2014_2': //Bob Daltons Set if(stage >=6){ resistance += 75; } break; case 'set_october_2014_animal_2': //Deadwood Dicks Pferd und Sattel defense += 2; break; case 'set_octoberfest_2014_2': //Deadwood Dicks Set if(stage >=6){ resistance += 35; } break; case 'set_independence_gun_winner': //Feuer und Eis offense += 2; defense += 2; damage += 25; resistance += 25; break; case 'set_4july_2016_3': //Fremder aus dem Norden Set if(stage >=6){ damage += (stage-1)*0.1*Character.level; } break; case 'set_octoberfest_2': //George McJunkins Kleidung if(stage >=6){ resistance += 25; } break; case 'set_octoberfest_gun_2': //George McJunkins Waffen defense += 5; break; case 'set_sale_2016_1'://Glücksbringer des Spielers offense += 4; defense += 4; damage += 20; resistance += 20; break; case 'set_speedworld_2014': //Gonzales Speedstar if(stage < 10){ offense += (stage-1)*0.3; defense += (stage-1)*0.3; } else{ offense += 3; defense += 3; } break; case 'set_4july_2016_5': //Guter alter Westen Kollektion offense += 5; defense += 5; damage += 30; resistance += 30; break; case 'set_independence_2': //Jeremiah Johnsons Kleider if(stage >= 6){ resistance += 35; } break; case 'set_independence_gun_2': //Jeremiah Johnsons Waffen resistance += 25; break; case 'set_easter_2015_4': //Jerry Easters Set if(stage >= 10){ offense += 2; } break; case 'set_octoberfest_2014_weapon_ranking_winner': //Manitus Waffen offense += 5; defense += 5; damage += 25; resistance += 25; break; case 'set_fort': //Natty Bumppos Kleider if(stage >=6){ offense += 3; defense += 3; } break; case 'set_fort_gun': //Natty Bumppos Waffen damage += 30; break; case 'set_4july_2014_weapon_ranking_winner': //Nihon no Buki offense += 5; defense += 5; damage += 25; resistance += 25; break; case 'set_4july_2015_animal_2': //Pferd und Sattel des Spähers resistance += 2; break; case 'collector_set': //Sammlerset if(stage >=9){ offense += 2; defense += 2; } if(stage == 9){ damage += 25; } else if(stage == 10){ damage += 30; } break; case 'set_easter_2016_3': //Shawneekleidung if(stage >=6){ defense += 2; } break; case 'set_shop_soldier': //Soldatenset if(stage >=6){ offense += 3; defense += 3; } break; case 'set_4july_2015_2': //Späherset if(stage >=6){ defense += 2; } break; case 'set_easter_2016_5w': //Stammesartefakte offense += 7; defense += 7; damage += 45; resistance += 45; break; case 'set_easter_2014_weapon_ranking_winner': //Steampunk Set offense += 5; defense += 5; damage += 25; resistance += 25; break; case 'set_easter_2015_5': //Volldampf voraus! offense += 5; defense += 5; damage += 25; resistance += 30; break; case 'set_easter_2016_3w': //Waffen der Shawnee offense += 2; break; case 'set_october_2015_winner': //Waffenset von Bali offense += 5; defense += 5; damage += 35; resistance += 35; break; case 'set_4july_2015_weapon_ranking_winner': //Wild Bills Sammlung offense += 5; defense += 5; damage += 30; resistance += 30; break; case 'set_4july_2016_4': //Wolfsmensch Set if(stage >=8){ offense += 4; defense += 4; } break; case 'set_independence_1': //Will Munnys Kleider damage += 35; break; case 'set_independence_gun_1': //Will Munnys Waffen damage += 15; break; default: break; } } return [offense,defense,damage,resistance]; } TWFBT.Calculator.calcSkills = function () { TWFBT.Calculator.values.offense = 0; TWFBT.Calculator.values.defense = 0; TWFBT.Calculator.values.offense_skillwithbonus = 0; TWFBT.Calculator.values.defense_skillwithbonus = 0; TWFBT.Calculator.values.offense_defaultbonus = 25; TWFBT.Calculator.values.defense_defaultbonus = 10; TWFBT.Calculator.values.offense_fortbattlebonus = 0; TWFBT.Calculator.values.defense_fortbattlebonus = 0; TWFBT.Calculator.values.offense_setbonus = 0; TWFBT.Calculator.values.defense_setbonus = 0; TWFBT.Calculator.values.damage = 0; TWFBT.Calculator.values.resistance = 0; TWFBT.Calculator.values.lifepoints = 0; var wear = []; var number_database = []; var name_database = []; var soldierBonus = 1; if(TWFBT.pa && TWFBT.characterClass == 'soldier'){ soldierBonus = 1.5; } else if (TWFBT.characterClass == 'soldier') { soldierBonus = 1.25; } //add skillbonus (with clothes) var side = TWFBT.side; var formula = TWFBT.formula; if(formula == 'oldFormula'){ if(side == 'attack'){ var side_skill = 'endurance'; } else { var side_skill = 'hide'; } TWFBT.Calculator.values.defense_skillwithbonus = Math.pow(CharacterSkills.getSkill(side_skill).getPointsWithBonus(), 0.6) + Math.pow(CharacterSkills.getSkill('dodge').getPointsWithBonus(), 0.4) + Math.pow(CharacterSkills.getSkill('leadership').getPointsWithBonus()*soldierBonus, 0.5); TWFBT.Calculator.values.defense += TWFBT.Calculator.values.defense_skillwithbonus; TWFBT.Calculator.values.offense_skillwithbonus = Math.pow(CharacterSkills.getSkill(side_skill).getPointsWithBonus(), 0.6) + Math.pow(CharacterSkills.getSkill('aim').getPointsWithBonus(), 0.4) + Math.pow(CharacterSkills.getSkill('leadership').getPointsWithBonus()*soldierBonus, 0.5); TWFBT.Calculator.values.offense += TWFBT.Calculator.values.offense_skillwithbonus; } else{ if(side == 'attack'){ var side_skill = 'hide'; } else { var side_skill = 'pitfall'; } TWFBT.Calculator.values.defense_skillwithbonus = Math.pow(CharacterSkills.getSkill(side_skill).getPointsWithBonus(), 0.6) + Math.pow(CharacterSkills.getSkill('dodge').getPointsWithBonus(), 0.5) + Math.pow(CharacterSkills.getSkill('leadership').getPointsWithBonus()*soldierBonus, 0.5); TWFBT.Calculator.values.defense += TWFBT.Calculator.values.defense_skillwithbonus; TWFBT.Calculator.values.offense_skillwithbonus = Math.pow(CharacterSkills.getSkill(side_skill).getPointsWithBonus(), 0.6) + Math.pow(CharacterSkills.getSkill('aim').getPointsWithBonus(), 0.5) + Math.pow(CharacterSkills.getSkill('leadership').getPointsWithBonus()*soldierBonus, 0.5); TWFBT.Calculator.values.offense += TWFBT.Calculator.values.offense_skillwithbonus; } //add defaultbonus TWFBT.Calculator.values.defense += TWFBT.Calculator.values.defense_defaultbonus; TWFBT.Calculator.values.offense += TWFBT.Calculator.values.offense_defaultbonus; var items = ['animal','belt','body','foot','head','left_arm','neck','pants','right_arm','yield']; for(i=0 ; i<items.length; i++){ try { //Get fortbattle and fortbattlesector bonuses of the current equipment var item_obj = ItemManager.get(Wear.get(items[i]).obj.item_id); TWFBT.Calculator.values.defense_fortbattlebonus += item_obj.bonus.fortbattle.defense; TWFBT.Calculator.values.defense_fortbattlebonus += item_obj.bonus.fortbattlesector.defense; TWFBT.Calculator.values.offense_fortbattlebonus += item_obj.bonus.fortbattle.offense; TWFBT.Calculator.values.offense_fortbattlebonus += item_obj.bonus.fortbattlesector.offense; TWFBT.Calculator.values.damage += item_obj.bonus.fortbattlesector.damage; TWFBT.Calculator.values.resistance += item_obj.bonus.fortbattle.resistance; for(j=0 ; j< item_obj.bonus.item.length; j++){ try{ if(item_obj.bonus.item[j].name == 'offense'){ TWFBT.Calculator.values.offense_fortbattlebonus += item_obj.bonus.item[j].value; } } catch(e){} try{ if(item_obj.bonus.item[j].name == 'defense'){ TWFBT.Calculator.values.defense_fortbattlebonus += item_obj.bonus.item[j].value; } } catch(e){} try{ if(item_obj.bonus.item[j].type == 'damage'){ TWFBT.Calculator.values.damage += item_obj.bonus.item[j].value; } } catch(e){} } //Get set bonuses of the current equipment var item_id = Wear.get(items[i]).obj.item_id; var item_obj = ItemManager.get(item_id); if(item_obj.set != null){ if(number_database[item_obj.set] == undefined){ number_database[item_obj.set] = 1; name_database.push(item_obj.set); } else{ number_database[item_obj.set] = number_database[item_obj.set]+1; } } } catch (e) { } } TWFBT.Calculator.values.offense += TWFBT.Calculator.values.offense_fortbattlebonus; TWFBT.Calculator.values.defense += TWFBT.Calculator.values.defense_fortbattlebonus; for(var i=0;i<name_database.length; i++) { var obj = west.storage.ItemSetManager.get(name_database[i]); var key = name_database[i]; var stage = number_database[key]; var setbonusArray = [0,0,0,0]; setbonusArray = update(key,stage); TWFBT.Calculator.values.offense_setbonus += setbonusArray[0]; TWFBT.Calculator.values.defense_setbonus += setbonusArray[1]; TWFBT.Calculator.values.damage += setbonusArray[2]; TWFBT.Calculator.values.resistance += setbonusArray[3]; } TWFBT.Calculator.values.offense += TWFBT.Calculator.values.offense_setbonus; TWFBT.Calculator.values.defense += TWFBT.Calculator.values.defense_setbonus //calc new worker bonus var workerBonus = 1; if(TWFBT.pa && TWFBT.characterClass == 'worker'){ workerBonus = 1.4; } else if (TWFBT.characterClass == 'worker') { workerBonus = 1.2; } TWFBT.Calculator.values.offense *= workerBonus; TWFBT.Calculator.values.defense *= workerBonus; TWFBT.Calculator.values.offense_skillwithbonus = Math.round(TWFBT.Calculator.values.offense_skillwithbonus * 100) / 100; TWFBT.Calculator.values.defense_skillwithbonus = Math.round(TWFBT.Calculator.values.defense_skillwithbonus * 100) / 100; TWFBT.Calculator.values.offense_fortbattlebonus = Math.round(TWFBT.Calculator.values.offense_fortbattlebonus * 100) / 100; TWFBT.Calculator.values.defense_fortbattlebonus = Math.round(TWFBT.Calculator.values.defense_fortbattlebonus * 100) / 100; TWFBT.Calculator.values.offense_setbonus = Math.round(TWFBT.Calculator.values.offense_setbonus * 100) / 100; TWFBT.Calculator.values.defense_setbonus = Math.round(TWFBT.Calculator.values.defense_setbonus * 100) / 100; TWFBT.Calculator.values.offense = Math.round(TWFBT.Calculator.values.offense * 100) / 100; TWFBT.Calculator.values.defense = Math.round(TWFBT.Calculator.values.defense * 100) / 100; TWFBT.Calculator.values.damage = Math.ceil(Math.round(TWFBT.Calculator.values.damage * 10) / 10); TWFBT.Calculator.values.lifepoints = Character.maxHealth; window.setTimeout(function () { showData(side_skill); }, 1000); } var showData = function (side_skill) { var content = $('<tr></tr>'); content.append('<th colspan="9">' + TWFBTlang[TWFBT.side] + '</th>'); $('#TWFBTCalculatorTable').append(content); var content = $('<tr><th>' + TWFBTlang.leadership + '</th><th>' + TWFBTlang[side_skill] + '</th><th>' + TWFBTlang.aim + '</th><th>' + TWFBTlang.dodge + '</th><th>' + TWFBTlang.bonusBySkill + '</th><th>' + TWFBTlang.bonusByClothes + '</th><th>' + TWFBTlang.bonusBySets + '</th><th>' + TWFBTlang.bonusDefault + '</th><th>' + TWFBTlang.bonusTotal + '</th></tr>'); $('#TWFBTCalculatorTable').append(content); content = $('<tr></tr>'); content.append('<td align="center">' + CharacterSkills.getSkill('leadership').getPointsWithBonus() + '</td>'); content.append('<td align="center">' + CharacterSkills.getSkill(side_skill).getPointsWithBonus() + '</td>'); content.append('<td align="center">' + CharacterSkills.getSkill('aim').getPointsWithBonus() + '</td>'); content.append('<td align="center">' + CharacterSkills.getSkill('dodge').getPointsWithBonus() + '</td>'); content.append('<td align="center">' + TWFBT.Calculator.values.offense_skillwithbonus + '<br>' + TWFBT.Calculator.values.defense_skillwithbonus +'</td>'); content.append('<td align="center">' + TWFBT.Calculator.values.offense_fortbattlebonus + '<br>' + TWFBT.Calculator.values.defense_fortbattlebonus +'</td>'); content.append('<td align="center">' + TWFBT.Calculator.values.offense_setbonus + '<br>' + TWFBT.Calculator.values.defense_setbonus +'</td>'); content.append('<td align="center">' + TWFBT.Calculator.values.offense_defaultbonus + '<br>' + TWFBT.Calculator.values.defense_defaultbonus +'</td>'); content.append('<td align="center">' + TWFBT.Calculator.values.offense + '<br>' + TWFBT.Calculator.values.defense +'</td>'); $('#TWFBTCalculatorTable').append(content); content = $('<tr></tr>'); content.append('<th colspan="2">' + TWFBTlang.damage + '</th><td align="left">'+ TWFBT.Calculator.values.damage +'</td>' + '<th colspan="2">' + TWFBTlang.resistance + '</th><td align="left">'+ TWFBT.Calculator.values.resistance +'</td>'+ '<th colspan="2">' + TWFBTlang.lifepoints + '</th><td align="left">'+ TWFBT.Calculator.values.lifepoints+'</td>'); $('#TWFBTCalculatorTable').append(content); content = $('<tr></tr>'); var items = ['animal','belt','body','foot','head','left_arm','neck','pants','right_arm','yield']; var item_string = ''; //MessageSuccess(items[0]+' '+items[1]+' '+items[2]+' '+items[3]+' '+items[4]+' ').show(); /*for(i=0 ; i<items.length; i++){ try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[i]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[i]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[i]).obj.item_id).image + '"></a>'; } catch (e) { } }*/ try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[0]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[0]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[0]).obj.item_id).image + '"></a>';} catch (e) {} try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[1]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[1]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[1]).obj.item_id).image + '"></a>';} catch (e) {} try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[2]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[2]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[2]).obj.item_id).image + '"></a>';} catch (e) {} try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[3]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[3]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[3]).obj.item_id).image + '"></a>';} catch (e) {} try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[4]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[4]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[4]).obj.item_id).image + '"></a>';} catch (e) {} try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[5]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[5]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[5]).obj.item_id).image + '"></a>';} catch (e) {} try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[6]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[6]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[6]).obj.item_id).image + '"></a>';} catch (e) {} try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[7]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[7]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[7]).obj.item_id).image + '"></a>';} catch (e) {} try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[8]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[8]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[8]).obj.item_id).image + '"></a>';} catch (e) {} try { item_string += '<a class="itemlink hasMousePopup" href="javascript:void(0)" title="' + escapeHTML(new ItemPopup(ItemManager.get(Wear.get(items[9]).obj.item_id)).getXHTML()) + '">' + ItemManager.get(Wear.get(items[9]).obj.item_id).name + ' <img width="15" height="15" src="' + ItemManager.get(Wear.get(items[9]).obj.item_id).image + '"></a>';} catch (e) {} content.append('<th>' + TWFBTlang.clothes + '</th><td align="left" colspan="8">'+item_string+'</td>'); $('#TWFBTCalculatorTable').append(content); /*var buttontest = new west.gui.Button('Wieder anziehen', function () { });*/ //content.append('<td colspan="2">' + buttontest.getMainDiv() +'</td>'); //content.append('<td colspan="2"><a href="clearTable()">Wieder anziehen</a> +</td>'); /* //calc new worker bonus var workerBonus = 1; if(TWFBT.pa && TWFBT.characterClass == 'worker'){ workerBonus = 1.4; } else if (TWFBT.characterClass == 'worker') { workerBonus = 1.2; } var attplus = TWFBT.Calculator.values.offense+TWFBT.Calculator.values.offense_skillwithbonus*(workerBonus-1); var deffplus = TWFBT.Calculator.values.defense+TWFBT.Calculator.values.defense_skillwithbonus*(workerBonus-1); var string = ''; string = string.concat('Total Att: ' + TWFBT.Calculator.values.offense*workerBonus + '\n'); string = string.concat('Total Deff: ' + TWFBT.Calculator.values.defense*workerBonus + '\n') //string = string.concat('Skill Att: ' + TWFBT.Calculator.values.offense_skillwithbonus*workerBonus + '\n'); //string = string.concat('Skill Deff: ' + TWFBT.Calculator.values.defense_skillwithbonus*workerBonus + '\n'); string = string.concat('Skill Att: ' + attplus + '\n'); string = string.concat('Skill Deff: ' + deffplus + '\n') alert(string);*/ } var escapeHTML = function (unsafe_str) { return unsafe_str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\"/g, '"').replace(/\'/g, '''); } } }; TWFBT.Reminder = { init: function () { TWFBT.Reminder.values = { }; var remind = function () { /*Ajax.remoteCall('fort_overview','',{ offset: '0'},function(response) { if (response.error){ return MessageError(response.msg).show(); } else { for(var i=0; i<response.js.length;i++){ if(response.js[i][3]){ var stadtname = response.js[i][5]; var alli_id = Character.homeTown.alliance_id; Ajax.remoteCallMode('alliance','get_data',{ alliance_id: alli_id },function(json){ for (x=0;x<json.data.towns.length;x++){ if (json.data.towns[x].name == stadtname){ MessageSuccess('Angriff aus meiner Bündnisstadt ' + stadtname).show(); } } }); /*var name = response.js[i][4]; Ajax.remoteCallMode('ranking','get_data',{ rank:NaN, search:name, tab:'experience'},function(json){ for (x=0;x<json.ranking.length;x++){ if (json.ranking[x].name == name){ MessageSuccess(name + ' aus ' + 'response.js[i][5]').show(); EventHandler.signal("ready.ok"); } } }); EventHandler.listen("ready.ok", function() { showData(); }); } } } });*/ /*var updateMessage = new west.gui.Dialog('Test', west.gui.Dialog.SYS_WARNING).addButton(TWFBTlang.update, function () { updateMessage.hide(); location.href = TWFBT.website + '/code.user.js'; }).addButton('cancel').show();*/ } window.setTimeout(function () { remind(); }, 5000); } }; TWFBT.Updater = function () { $.getScript(TWFBT.updateUrl, function () { if (scriptUpdate.TWFBT > TWFBTstart.version) { var updateMessage = new west.gui.Dialog(TWFBTlang.update + ': ' + TWFBT.name, '<span>' + TWFBTlang.updateAvailable + '<br><br><b>v' + scriptUpdate.TWFBT + ':</b><br>' + scriptUpdate.TWFBTNew + '</span>', west.gui.Dialog.SYS_WARNING).addButton(TWFBTlang.update, function () { updateMessage.hide(); location.href = TWFBT.website + '/code.user.js'; }).addButton('cancel').show(); } }); }; setTimeout(TWFBT.Updater, 4000); TWFBT.Skript.init(); });