Greasy Fork

Greasy Fork is available in English.

The West Fortbattle Tool

Fort battle tools for The West!

当前为 2016-09-04 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==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.3
// @grant none
// ==/UserScript==
(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.3',
      langs: {
        en: {
          language: 'English',
		  aim: 'Aiming',
		  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',
		  endurance: 'Stamina',
		  hide: 'Hiding',
		  leadership: 'Leadership',
		  lifepoints: 'Lifepoints',
		  resistance: 'Resistance',
		  scriptName: 'The West Fortbattle Tool',
          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',
		  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',
		  endurance: 'Ausdauer',
		  hide: 'Verstecken',
		  leadership: 'Leiten',
		  lifepoints: 'Lebenspunkte',
		  resistance: 'Widerstand',
		  scriptName: 'The West FK Tool',
          name: 'Name',
          author: 'Autor: </b>',
          version: 'Version: </b>',
          update: 'Update',
          updateAvailable: 'Für das Script ist eine neue Version erhältlich',
        },
      }
    };
    TWFBT = {
		name: 'The West Fortbattle Tool',
        author: 'westernblumi',
        minGame: '2.4',
        maxGame: Game.version.toString(),
        website: 'http://greasyfork.icu/de/scripts/22880-the-west-fortbattle-tool',
        updateUrl: 'https://raw.githack.com/westernblumi/thewest/master/skriptUpdater.js',
		side: 'attack',
        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();
          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 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(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 side = TWFBT.side;
				if(side == 'attack'){
					var side_skill = 'endurance';
				} else {
					var side_skill = 'hide';
				}
				
				
				
				//add skillbonus (with clothes)	
				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()*1.25, 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()*1.25, 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
				
				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><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[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>');
				
			}

			var escapeHTML = function (unsafe_str) {
				return unsafe_str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\"/g, '&quot;').replace(/\'/g, '&#39;');
			}
		}
    };
      
      
      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();
});