Greasemonkey Manual: Difference between revisions

From GreaseSpot Wiki
Jump to navigationJump to search
No edit summary
No edit summary
 
(67 intermediate revisions by 46 users not shown)
Line 1: Line 1:
// ==UserScript==
{{Greasemonkey Manual TOC}}


// @name          Travian Village Building Level Tracker 0.7
== Welcome ==


// @namespace      Travian
Welcome to the [[Greasemonkey]] Manual.


// @description    Displays all your buildinglevels and compares to wanted levels. Shows witch buildings need to be upgraded, and witch not.
It is divided into two main parts.
The first is for general users of Greasemonkey; it covers such topics as installing [[user script]]s and using the features that Greasemonkey provides.
The latter is dedicated to [[user script]] authors and provides information about how to create scripts.


// @include        http://*travian*/dorf2*
You may navigation directly to any section by using the table of contents at the right.
 
Or simply start reading at the first chapter: [[Greasemonkey Manual:Installing Scripts|Installing Scripts]].
// @include        http://*travian*/build.php?newdid*
 
// ==/UserScript==
 
 
// โ€บโ€บ Event listener starts things off once the page is done loading.
window.addEventListener("load",init,false);
 
// โ€บโ€บ Set styles.
function init(){
var cssString2 = '.TMbuildingtags2{' +
'background-color:#99FF99;' +
'border:thin solid #000000;' +
'font-family: Verdana, Arial, Helvetica, sans-serif;' +
'font-size:8pt;' +
'font-weight:bold;' +
'text-align:center;' +
'position:absolute;' +
'width:230px;' +
'height:14px;' +
'cursor:pointer;' +
'visibility:hidden;' +
'z-index:50;}';
var cssString3 = '.TMbuildingtags3{' +
'background-color:#FF9999;' + // RED
'border:thin solid #000000;' +
'font-family: Verdana, Arial, Helvetica, sans-serif;' +
'font-size:8pt;' +
'font-weight:bold;' +
'text-align:center;' +
'position:absolute;' +
'width:230px;' +
'height:14px;' +
'cursor:pointer;' +
'visibility:hidden;' +
'z-index:50;}';
addCSS(cssString2);
addCSS(cssString3);
TM_ShowMainBuildingNumbers();
}
 
// โ€บโ€บ Main.
function TM_ShowMainBuildingNumbers(){
// โ€บโ€บ x and y offset in pixels added to every absolutely positioned style element
var x = 700;
var y = 350;
// โ€บโ€บ could get this from the styles, but hard coding them is faster and allows for a simpler loop
buildArr1 = new Array(21);
buildArr1[0] = x;
buildArr1[1] = x;
buildArr1[2] = x;
buildArr1[3] = x;
buildArr1[4] = x;
buildArr1[5] = x;
buildArr1[6] = x;
buildArr1[7] = x;
buildArr1[8] = x;
buildArr1[9] = x;
buildArr1[10] = x;
buildArr1[11] = x;
buildArr1[12] = x;
buildArr1[13] = x;
buildArr1[14] = x;
buildArr1[15] = x;
buildArr1[16] = x;
buildArr1[17] = x;
buildArr1[18] = x;
buildArr1[19] = x;
buildArr1[20] = x;
buildArr1[21] = x;
 
buildArr2 = new Array(21);
buildArr2[0] = y;
buildArr2[1] = 20 + y;
buildArr2[2] = 40 + y;
buildArr2[3] = 60 + y;
buildArr2[4] = 80 + y;
buildArr2[5] = 100 + y;
buildArr2[6] = 120 + y;
buildArr2[7] = 140 + y;
buildArr2[8] = 160 + y;
buildArr2[9] = 180 + y;
buildArr2[10] = 200 + y;
buildArr2[11] = 220 + y;
buildArr2[12] = 240 + y;
buildArr2[13] = 260 + y;
buildArr2[14] = 280 + y;
buildArr2[15] = 300 + y;
buildArr2[16] = 320 + y;
buildArr2[17] = 340 + y;
buildArr2[18] = 360 + y;
buildArr2[19] = 380 + y;
buildArr2[20] = 400 + y;
buildArr2[21] = 420 + y;
 
// โ€บโ€บ Map1 holds building names, level and building spot IDs in area elements (2 are duplicate walls to be ignored).
var map1Element = document.getElementsByName('map1')[0];
if (map1Element){
// โ€บโ€บ Map1 ONLY has area children.
var areaElements = map1Element.childNodes;
var BuildingLevel, smallDIV;
var BuildingName = new Array(21);
var BuildingURL = new Array(21);
for (var i = 0; i < 22; i++) {
BuildingLevel = /(\d+)/.exec(areaElements[i].getAttribute("title"));
BuildingName = /[A-z0-9รคร„รถร–รฅร… -]+/.exec(areaElements[i].getAttribute("title"));
var Name = BuildingName[0];
var spot = Name.indexOf(" taso"); //REPlase this with level
Name = Name.slice(0,spot);
BuildingURL = areaElements[i].getAttribute("href");
 
// โ€บโ€บ Only show spots with buildings on them.
if (BuildingLevel){
// *********************************************************************************************************
// **** EDIT THIS IF YOU NEED ANOTHER LANQUAGE ****
// **** IN DIFFRENT LANQUAGES, CHANGE BUILDING NAMES AS THEY SHOULD BE ****
// **** tHIS WORKS IN FINNISH AND IN THE COMMMENTS YOU CAN FIND BUILDING NAMES IN ENGLISH ****
// *********************************************************************************************************
 
Buildings = new Array(35);
Buildings[0] = "Marketplace"; // Marketplace
Buildings[1] = "Barracks"; // Barracks
Buildings[2] = "Rally Point"; //Rally Point
Buildings[3] = "Bakery"; //Bakery
Buildings[4] = "Brickyard"; //Brickyard
Buildings[5] = "Grain Mill"; //Grain Mill
Buildings[6] = "Granary"; //Granary
Buildings[28] = "Great Granary"; //Great Granary
Buildings[7] = "Great Warehouse"; //Great Warehouse
Buildings[8] = "Iron Foundry"; //Iron Foundry
Buildings[9] = "Sawmill"; //Sawmill
Buildings[10] = "Warehouse"; //Warehouse
Buildings[11] = "Academy"; //Academy
Buildings[12] = "Blacksmith"; //Blacksmith
Buildings[13] = "Armoury"; //Armoury
Buildings[14] = "City Wall"; //City Wall
Buildings[29] = "Great Barracks"; //Great Barracks
Buildings[30] = "Great Stable"; // Great Stable
Buildings[15] = "Hero's Mansion"; //Hero's Mansion
Buildings[16] = "Stable"; //Stable
Buildings[17] = "Tournament Square"; //Tournament Square
Buildings[18] = "Trapper"; //Trapper
Buildings[19] = "Workshop"; //Workshop
Buildings[20] = "Cranny"; //Cranny
Buildings[21] = "Embassy"; //Embassy
Buildings[22] = "Main Building"; //Main Building
Buildings[23] = "Palace"; //Palace
Buildings[24] = "Residence"; //Residence
Buildings[25] = "Stonemason"; //Stonemason
Buildings[26] = "Townhall"; //Townhall
Buildings[27] = "Trade Office"; //Trade Office
Buildings[31] = "Treasury"; //Treasury
Buildings[32] = "Wonder Of The World"; //Wonder Of The World
Buildings[33] = "Earth Wall"; //Earth Wall
Buildings[34] = "Palisade"; //Palisade
// *********************************************************************************************************
// **** EDIT THIS ****
// **** EDIT VALUES FROM HERE, DESIDE HOW FAR YOU WANT TO UPDRADE EACH BUILDING ****
// **** EXAMPLE: "WantedLevels[1] = 15; // Barracks" MEANS THAT YOU WANT BARRACKS TO BE AT LEVEL 15 ****
// *********************************************************************************************************
 
WantedLevels = new Array(35);
WantedLevels[0] = 20; // Marketplace
WantedLevels[1] = 15; // Barracks
WantedLevels[2] = 1; //Rally point
WantedLevels[3] = 5; //Bakery
WantedLevels[4] = 5; //Brickyard
WantedLevels[5] = 5; //Grain Mill
WantedLevels[6] = 13; //Granary
WantedLevels[7] = 1; //Great Warehouse
WantedLevels[8] = 5; //Iron Foundry
WantedLevels[9] = 5; //Sawmill
WantedLevels[10] = 15; //Warehouse
WantedLevels[11] = 10; //Academy
WantedLevels[12] = 5; //Blacksmith
WantedLevels[13] = 5; //Armoury
WantedLevels[14] = 20; //City Wall
WantedLevels[15] = 10; //Hero's Mansion
WantedLevels[16] = 10; //Stable
WantedLevels[17] = 1; //Tournament Square
WantedLevels[18] = 1; //Trapper
WantedLevels[19] = 1; //Workshop
WantedLevels[20] = 1; //Cranny
WantedLevels[21] = 1; //Embassy
WantedLevels[22] = 19; //Workshop
WantedLevels[23] = 20; //Palace
WantedLevels[24] = 10; //Residence
WantedLevels[25] = 10; //Stonemason
WantedLevels[26] = 5; //Townhall
WantedLevels[27] = 10; //Trade Office
WantedLevels[28] = 1; //Great Granary
WantedLevels[29] = 1; //Great Barracks
WantedLevels[30] = 1; // Great Stable
WantedLevels[31] = 1; //Treasury
WantedLevels[32] = 1; //Wonder Of The World
WantedLevels[33] = 20; //Earth Wall
WantedLevels[34] = 20; //Palisade
// *********************************************************************************************************
// **** STOP EDITING ****
// *********************************************************************************************************
 
for (var j = 0; j < 35; j++) {
if (Buildings[j] == Name){
//document.write(Name);
//document.write(Buildings[j]);
//document.write(WantedLevels[j]);
//document.write(BuildingLevel[0]);
if (WantedLevels[j] <= BuildingLevel[0]){
//document.write("vihreรค");
smallDIV = addDiv('TMbuildingtag' + i,'TMbuildingtags2',Name + ' ' + BuildingLevel[0] + '/' + WantedLevels[j],false);
}else{
//document.write("punainen");
smallDIV = addDiv('TMbuildingtag' + i,'TMbuildingtags3',Name + ' ' + BuildingLevel[0] + '/' + WantedLevels[j],false);
}
}
}
 
//smallDIV = addDiv('TMbuildingtag' + i,'TMbuildingtags2',Name + ' ' + BuildingLevel[0],false);
smallDIV.style.top = buildArr2[i] + 'px';
smallDIV.style.left = buildArr1[i] + 'px';
smallDIV.style.visibility = "visible";
smallDIV.setAttribute('goto', BuildingURL);
smallDIV.addEventListener('click', function() {
window.location.href = this.getAttribute('goto');
}, true);
}
}
}
}
 
// โ€บโ€บ Adds a generic div.
function addDiv(id,style,html,parent){
var body, div;
if (!parent){body = document.getElementsByTagName('body')[0];}else{body = document.getElementsByTagName(parent);}
if (!body) { return false; }
div = document.createElement('div');
div.id = id;
div.className = style;
if (html){div.innerHTML = html;}
body.appendChild(div);
return div;
}
 
// โ€บโ€บ Add generic CSS.
function addCSS(cssString2) {
var style = document.createElement('STYLE');
style.type = 'text/css';
style.innerHTML = cssString2;
document.getElementsByTagName('HEAD')[0].appendChild(style);
}

Latest revision as of 18:48, 3 November 2017


Greasemonkey Manual
Using Greasemonkey
Installing Scripts
Monkey Menu
Getting Help
User Script Authoring
Editing
Environment
API

Welcome

Welcome to the Greasemonkey Manual.

It is divided into two main parts. The first is for general users of Greasemonkey; it covers such topics as installing user scripts and using the features that Greasemonkey provides. The latter is dedicated to user script authors and provides information about how to create scripts.

You may navigation directly to any section by using the table of contents at the right. Or simply start reading at the first chapter: Installing Scripts.