Ich hab bei Offaktionen recht häufig ne Dörferliste für meine Offs in den Notizen.
Der genaue Einschlagspunkt is ja relativ egal ab ner gewissen Anzahl incs, aber im nb sollten sie nicht ankommen.
Und ab und zu such ich da halt schon etwas länger bis ich was passendes hab, deshalb wollte ich fragen ob jmd. ein Script schreiben kann, dass hinter jeden Dorflink (im Normalfall 1 pro Zeile) die Ankunftszeit schreiben könnte (also die Uhrzeit). Am besten wäre noch ne (rote) Einfärbung für Dörfer, die im nb ankommen würden, aber ohne das wäre auch schon super :>
Es geht selbstverständlich um die lz von dem Dorf aus in dem man grad is
MfG Dömel
__________________
Spoilersignatur:
Und? Was spricht dagegen?
Kontakt&Support: doemel ( a ) dsreal.de nur mit sinnvollem Betreff
Schreib mal wie die Notizen ungefähr aussehen würden, dann kann ichs mal versuchen (am besten Text und HTML).
__________________ Userscripte - Signaturen - Erweiterte Notizen Ich finde Leute cool, die schon mit 13 rauchen, da muss man die Idioten schon später nicht mehr so lange ertragen.
Ja, ist klar^^
Heute kann ich nicht mehr, aber denke morgen kann ichs machen.
__________________ Userscripte - Signaturen - Erweiterte Notizen Ich finde Leute cool, die schon mit 13 rauchen, da muss man die Idioten schon später nicht mehr so lange ertragen.
Was macht das Script:
In den Notizen können Codeblöcke definiert werden, die dann von dem Script geparst werden (ähnlich BB-Code).
Dabei wird jeweils das aktuelle Dorf als Startpunkt und das angegebene Dorf als Zielpunkt benutzt.
Laufzeiten die in den Nachtbonus kommen werden rot gefärbt.
Seit Version 1.3 sind auch Notizen nach den Laufzeiten möglich.
Bekannte Probleme:
läuft nicht mit dem altem Koordinatensystem (in Arbeit)
(laufzeiten)
[village](xxx|yyy)[/village] 5offs fehlen noch
[village](xxxx|yyy)[/village]
(/laufzeiten)
Der 'Codeblock' wird mit "(laufzeiten)" eingeleitet und mit "(/laufzeiten)" geschlossen (ähnlich BB-Codes).
"(laufzeiten)" und "(/laufzeiten)" muss jeweils in einer extra Zeile stehen.
Dazwischen muss jede Zeile mit einer Dorfangabe beginnen [village](xxx|yyy)[/village]
Text nach dieser Angabe wird beachtet, allerdings dürfen keine BB-Codes benutzt werden.
Mehrere 'Codeblöcke' sind möglich.
Nach dem einleitenden "(laufzeiten)" kann die Laufzeit pro Feld für den Codeblock stehen, z.B.:
Code:
(laufzeiten)30
[village](xxx|yyy)[/village] 5offs fehlen noch
[village](xxxx|yyy)[/village]
(/laufzeiten)
Dieses Beispiel würde für diesen Block die Laufzeiten mit 30 Minuten pro Feld errechnen, also für Rammen oder Katapulte.
Ist keine Angabe (oder eine falsche) gemacht, so wird die im Script definierte Zahl benutzt (Z. 38).
Alternativ kann (lz)...(/lz) an Stelle von (laufzeiten)...(/laufzeiten) benutzt werden.
SpoilerCodeausschnitt (unwichtiges wurde weggelassen):
PHP-Code:
// ==UserScript==
// @name DS Laufzeiten in Notizen
// @description Laufzeitenrechner in den Notizen
// @namespace c1b1.de
// @include http://*.die-staemme.de/game.php?*screen=memo*
// @exclude http://forum.die-staemme.de/*
// ==/UserScript==
// ds.DCinNotes.user.js
// {$ dsScript $}
// version = 1.4
// author = C1B1SE
// clients = firefox , opera
// areas = .de
// worlds = all
// premium = works
// description[de] = Laufzeitenrechner in den Notizen
// screenshot[0] = http://c1b1se.c1.funpic.de/newhp_userscripts_screens/ds.DCinNotes_0.png
// {$ /dsScript $}
// (c) by C1B1SE
// Do not republish, use in other scripts, change or reproduce this script or parts of this scripts without permission from author
var speed = 10;
var speeds = new Array(6,9,10,11,18,22,30,35);
var s_imgs = eval({
6:['graphic/buildings/market.png'],
9:['graphic/unit/unit_spy.png'],
10:['graphic/unit/unit_light.png','graphic/unit/unit_marcher.png'],
11:['graphic/unit/unit_heavy.png'],
18:['graphic/unit/unit_spear.png','graphic/unit/unit_axe.png','graphic/unit/unit_archer.png'],
22:['graphic/unit/unit_sword.png'],
30:['graphic/unit/unit_ram.png','graphic/unit/unit_catapult.png'],
35:['graphic/unit/unit_snob.png']
});
var dom = new html();
if(dom.class('menu nowrap quickbar')[0])
var subtrahend = 2;
else
var subtrahend = 1;
var elist = dom.id('menu_row2').getElementsByTagName('td');
var currentVillageE = elist[elist.length - subtrahend].getElementsByTagName('b')[0];
var currentVillage = currentVillageE.firstChild.data.match(/((d{1,3}|d{1,3}))/g)[0];
var notes_td = dom.id('show_row').getElementsByTagName('td')[0];
var text = notes_td.innerHTML;
var positions = getCodesPositions(text);
while(positions[0] != false)
{
var first = positions[0];
var last = positions[1];
var x = positions[2];
var y = positions[3];
var s = positions[4];
var text = text.substr(first,last);
var tmp_element = dom.n('div');
tmp_element.innerHTML = text;
var table = dom.n('table');
var tr = dom.n('tr');
var th = dom.n('th');
th.appendChild(dom.text('Laufzeiten jeweils von ' + currentVillageE.firstChild.data + ' f'+unescape('%FC')+'r: '));
th.setAttribute('colspan','3');
th.setAttribute('style','text-align:center; ');
// unit pix
for(var i = 0, len = s_imgs[s].length; i < len; i++)
{
var img = new Image();
img.src = s_imgs[s][i];
img.alt = s+' Minuten pro Feld';
img.title = s+' Minuten pro Feld';
th.appendChild(img);
}
tr.appendChild(th);
table.appendChild(tr);
var tr = dom.n('tr');
var th1 = dom.n('th');
th1.appendChild(dom.text('Zieldorf'));
var th2 = dom.n('th');
th2.appendChild(dom.text('Dauer'));
var th3 = dom.n('th');
th3.appendChild(dom.text('Zeit'));
for(var i = 0, elist = tmp_element.getElementsByTagName('a'), len = elist.length; i < len; i++)
{
var coords = elist[i].firstChild.data.match(/((d{1,3}|d{1,3}))/g)[0]; // e.g. "(866|115)"
var time = calculateDuration(currentVillage,coords,s);
var arrival = now + time[0]*60*60 +time[2]*60;
tmp_time.setTime(arrival * 1000);
var month = tmp_time.getMonth() + 1;
var day = tmp_time.getDate();
var hours = tmp_time.getHours();
var minutes = tmp_time.getMinutes()<10?'0'+tmp_time.getMinutes():tmp_time.getMinutes();
var tr = dom.n('tr');
var td = dom.n('td');
var a = dom.n('a');
a.href = elist[i].href;
a.appendChild(elist[i].firstChild);
td.appendChild(a);
tr.appendChild(td);
var td = dom.n('td');
td.appendChild(dom.text( time[0]+':'+time[1] ));
tr.appendChild(td);
var before = notes_td.innerHTML.substr(0,first-x);
var after = notes_td.innerHTML.substr(last+first+y);
notes_td.innerHTML = before + '<table rules="all" border="0">'+table.innerHTML+ '</table>' + after;
var text = notes_td.innerHTML;
var positions = getCodesPositions(text);
}
function getCodesPositions(text)
{
var text = text;
var patterns = new Array('(laufzeiten)...(/laufzeiten)','(lz)...(/lz)');
for(var i = 0, len = patterns.length, pattern; i < len; i++)
{
pattern = patterns[i].split('...');
var first = text.indexOf(pattern[0]);
var last = text.indexOf(pattern[1]);
var s = speed;
if(first != -1 && last != -1)
{
first = first + pattern[0].length;
last = last - first;
var x = pattern[0].length;
var y = pattern[1].length;
// Speed hint
var tmp = text.substr(first,2);
if(tmp != '<b')
{
if(tmp[1] == '<')
tmp = tmp[0];
tmp = parseInt(tmp);
for(var p = 0, len = speeds.length; p < len; p++)
{
if(speeds[p] == tmp)
{
s = tmp;
}
}
}
return new Array(first,last,x,y,s);
}
};
return new Array(false);
}
function calculateDuration(start,aim,speed)
{
var start = start.split('|');
var sx = start[0].substr(1);
var sy = start[1].substr(0,start[1].length - 1);
var aim = aim.split('|');
var tx = aim[0].substr(1);
var ty = aim[1].substr(0,aim[1].length - 1);
var xdif = parseInt(sx) - parseInt(tx);
var ydif = parseInt(sy) - parseInt(ty);
var xdiff = Math.pow(xdif, '2');
var ydiff = Math.pow(ydif, '2');
var minutesone = Math.floor(wholetime);
var minutestwo = parseInt(hours) * parseInt(60);
var minutes = parseInt(minutesone) - parseInt(minutestwo);
return new Array( hours, minutes<10?'0'+minutes:minutes , minutes);
}
__________________ Userscripte - Signaturen - Erweiterte Notizen Ich finde Leute cool, die schon mit 13 rauchen, da muss man die Idioten schon später nicht mehr so lange ertragen.
Falls du PA hast, könntest mir den Quelltext der Seite schicken, weil ich kann nur ohne testen
(an FF3 liegts nicht, habs mit FF 2 und 3 und Opera 9 getestet)
__________________ Userscripte - Signaturen - Erweiterte Notizen Ich finde Leute cool, die schon mit 13 rauchen, da muss man die Idioten schon später nicht mehr so lange ertragen.
Das ist nicht die ganze Seite (sorry dein Posteingang ist voll)
__________________ Userscripte - Signaturen - Erweiterte Notizen Ich finde Leute cool, die schon mit 13 rauchen, da muss man die Idioten schon später nicht mehr so lange ertragen.
Hast ne neue pn ... und nicht mein Posteingang is voll, sondern der von Domel -.- drecks vB -.-
Jo, also der Code war wieder nur bis Zeile 76, aber egal bin auf anderem Wege drangekommen xD
Habe das Script bisschen verändert, sollte jetzt gehen.
__________________ Userscripte - Signaturen - Erweiterte Notizen Ich finde Leute cool, die schon mit 13 rauchen, da muss man die Idioten schon später nicht mehr so lange ertragen.
erstmal thx soweit, aber 2 wünsche hätte ich noch:
1.) mehrere tabellen möglich
2.) wäre es möglich wenn man nach dem abschließeneden village] nach nem leerzeichen noch ne info dahinterschrieben könnte und ide auch angezeigt würde in ner extra spalte
also [village]xxx|yyy[/village] 5offs fehlen noch z.b?
MfG Dömel
__________________
Spoilersignatur:
Und? Was spricht dagegen?
Kontakt&Support: doemel ( a ) dsreal.de nur mit sinnvollem Betreff
erstmal thx soweit, aber 2 wünsche hätte ich noch:
1.) mehrere tabellen möglich
2.) wäre es möglich wenn man nach dem abschließeneden village] nach nem leerzeichen noch ne info dahinterschrieben könnte und ide auch angezeigt würde in ner extra spalte
also [village]xxx|yyy[/village] 5offs fehlen noch z.b?
MfG Dömel
Jo, mal schauen, morgen...
__________________ Userscripte - Signaturen - Erweiterte Notizen Ich finde Leute cool, die schon mit 13 rauchen, da muss man die Idioten schon später nicht mehr so lange ertragen.
nun hätte ich noch eine kleine sache , kann man dazu nochn 2tes skript machen , das diese (laufzeiten) ... (/laufzeiten) setzt ähnlich der bb-codes zb, oder alternativ dies auf (lz) ... (/lz) verkürzen . da tippt man sich ja nen wolf sonst
dann läste den code stehen und gibst halt immer nur neue koordinaten ein ^^ aber der berechnet ja die laufzeit von spähern wollte es ändern hat aber nicht funktioniert . wolte ramme als langsamste einheit drin haben . wenn ich ne leufzeit wissen will dann die einer off und nicht die von spähern . würde mich freuen wenn das geändert werden könnte . oder mir mitgeteilt werden könnte warum ich es nicht ändern kann ^^ habe anstatt der 10 ne 30 eingegeben aber dann nimmt er das skript plötzlich nicht mehr an ^^
2.) wäre es möglich wenn man nach dem abschließeneden village] nach nem leerzeichen noch ne info dahinterschrieben könnte und ide auch angezeigt würde in ner extra spalte
Done!
Zitat:
Zitat von GoldBanshee
oder alternativ dies auf (lz) ... (/lz) verkürzen . da tippt man sich ja nen wolf sonst
Done!
Link oben ist aktuell.
__________________ Userscripte - Signaturen - Erweiterte Notizen Ich finde Leute cool, die schon mit 13 rauchen, da muss man die Idioten schon später nicht mehr so lange ertragen.
aber der berechnet ja die laufzeit von spähern wollte es ändern hat aber nicht funktioniert . wolte ramme als langsamste einheit drin haben . wenn ich ne leufzeit wissen will dann die einer off und nicht die von spähern . würde mich freuen wenn das geändert werden könnte . oder mir mitgeteilt werden könnte warum ich es nicht ändern kann ^^ habe anstatt der 10 ne 30 eingegeben aber dann nimmt er das skript plötzlich nicht mehr an ^^
Also bei mir geht es.
Vielleicht hast du das Semikolon hinten vergessen.
Code:
var speed = 10;
müsstest du in das ändern:
Code:
var speed = 30;
__________________ Userscripte - Signaturen - Erweiterte Notizen Ich finde Leute cool, die schon mit 13 rauchen, da muss man die Idioten schon später nicht mehr so lange ertragen.