• Hallo Besucher!

    Du bist neu im Forum? Dann registriere dich hier, um Diskussionen beizutreten oder eigene Themen zu erstellen. Für die Registrierung ist es erforderlich, dass du einen Spielaccount bei Die Stämme hast.

    Andernfalls kannst du dich hier direkt einloggen.

    Falls du dein Passwort vergessen hast, kannst du hier ein neues Passwort anfordern.

Korridorkarten

Reaktionspunktzahl
269
Korridorkarten
jeder kennt das Problem mit Bildern als Korridorkarten.
Mittlerweile gibt es ja Die Stämmekarte mit der man auch seine Korridor Karten zeichnen kann.
Wer dies schonmal gemacht hat weis das es ein ewig langer Prozess sein kann.

Für alle die dieses Tool noch nicht kennen. Es ist eine interaktive Stämme Welten Karte die alle paar Stunden geupdated wird und Adelungen, Aktivität, Bashpunkte etc anzeigt.
Auch könnt ihr Spieler, Stämme und Dörfer Farblich markieren. Linien können nur von Koordinate zu Koordinate gezeichnet werden, also gibt es keine Linien die genau auf der Kontigrenze oder so gezeichnet werden können.

Im folgenden gebe ich euch ein paar Tipps und ein Userscript mit dem es sehr viel schneller geht diese Karten zu zeichnen.
Damit man seine Änderungen immer gespeichert hat meldet euch an so könnt ihr euch sicher sein das die karte nicht verloren geht.

Tipps und Hilfen:

1. Erstellt euch Schnellzugriffe für das makieren von Start- und Zieldörfern
1645456323837.png

2. Usercript zum Zeichnen und löschen der Linien mit jeweils einer Taste

Mit der Taste f könnt ihr eine Linie zwischen Herkunft- und Zieldorf Zeichen (die Farbe ist immer schwarz und 3px groß)
Mit r könnt ihr die zuletzt gezeichnete Linie löschen (immer die letzte in der Linien Liste)
Code:
// ==UserScript==
// @name         SteammeKarte
// @version      0.1
// @description  Draw quick lines with f and delte last one with r
// @include        http://de*.diestaemmekarte.de/
// @grant        none
// ==/UserScript==

document.addEventListener("keypress", function(e) {
    if (e.key == 'f') {
        display.panel('lines');
        if (vars.start) {
            $('linex1').value = vars.start.x;
            $('liney1').value = vars.start.y;
        }
        if (vars.dest) {
            $('linex2').value = vars.dest.x;
            $('liney2').value = vars.dest.y;
        }
        document.querySelector("#linet3").click()
        setTimeout(()=>{
            document.querySelector("#lines-panel > table > tbody > tr:nth-child(4) > td > form > input.fbut").click()
            display.panel('lines', 0, 1);
        }
        , 100)
    } else if (e.key == 'r') {
        display.panel('lines');
        document.querySelector("#linelist > table:last-child > tbody > tr > td.fr > div > a.deletelink").click()
        display.panel('lines', 0, 1);

    }

});


Vl werdet ihr dann der neue Picasso für Korridor Karten
1645457419355.png
 
Zuletzt bearbeitet:
Reaktionspunktzahl
9.597
Hi, klingt ziemlich cool.

Etwas Offtopic I guess, aber bin selber jemand der die Karten bisher immer in Photoshop gekritzelt hat, daher nicht so viel Ahnung von der DS-Karte. Ist es da nicht so, dass jeder die Linien einfach entfernen kann wenn er Bock hat? Oder gibts da ne Möglichkeit wenn man eine Karte zeichnet und diese mit Leuten teilt zu verhindern dass andere sich am eigenen Werk zu schaffen machen?
 
Reaktionspunktzahl
269
Es gibt die Möglichkeit verschiedene Arten von Konfigurationen zu erstellen und weiterzugeben.
Die Beschreibungen sind glaube ich selbsterklärend.

Public Konfiguration
1645463264998.png

Normal Konfiguration
1645463194513.png

In der Kopie kann der Spieler ändern was er will, das hat keine Auswirkung auf deine Konfiguration.
 
Reaktionspunktzahl
214
hey,
hab das Script bisschen getestet, ist das tatsächlich ziemlich nice.

Wäre denke ich noch hilfreich falls du die url im script anpassen könntest, sodass auch Kopien und öffentliche Links damit bearbeitet werden können. Ich habs mit einem * am Ende probiert, also: http://de*.diestaemmekarte.de/* und es hat funktioniert.
Außerdem ist mir aufgefallen dass man auch farbige Linien zeichnen kann, wenn man die Farbe vorher unter Linien wählt, danach werden nämlich alle gezeichneten Linien in der Farbe übernommen.
 
Reaktionspunktzahl
269
Update auf 0.2
1. Entfällt
Die Shortcuts werden nun automatisch erstellt falls nicht vorhanden.

2. Usercript zum Zeichnen und löschen der Linien mit jeweiligen Tasten
r entfernt die zuletzt gemalte Linie wie gewohnt.
f wird zu c und malt eine Linie vom Start Dorf (markieren mit s) zum Ziel Dorf (markeiren mit d) wie gewohnt.
Neu mit f kann durch gedrückt halten eine Linie gezogen werden die beim loslassen gezeichnet wird.


Info: die hergenommene Farbe für die Linie ist die zuletzt ausgewählte unter Linien>Linienfarbe
Jede taste kann individuell von euch geändert werden, ich rate davon ab die tasten s und d zu ändern da hier besondere Codes benötigt werden.

JavaScript:
// ==UserScript==
// @name         SteammeKarte
// @version      0.2
// @description  Draw quick lines with f and delet last one with r
// @include        http://de*.diestaemmekarte.de/*
// @icon         https://www.google.com/s2/favicons?domain=diestaemmekarte.de
// @grant        none
// ==/UserScript==

//Setup
// (keyCodes needed, can be different dependent on browser)
//Mark starting Village (Default = '83')
var markSVillage = '83';
//Mark Destination Village (Default = '68')
var markDVillage = '68';
/* If the preset buttons don't suit you feel free to change them according to your browser.
 The following website helps you just search (STRG+F) for  '83' and there you can see Browsers and keys and their number.
 https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode
*/

// Remove last line
var removeLine = 'r';  // remove last line in list (last placed line)
var drawLine = 'f';  // draw line with drag ond drop buttonpress
var sdLine = 'c';  // draw line from start village to destination village

//Hotkey setup 's' to mark start village
if(hotkeylist[markSVillage][0]!='w'){
hotkeyfunction.save('markSVillage','w',false);
};
//Hotkey setup 'd' to mark destination village
if(hotkeylist[markDVillage][0]!='x'){
hotkeyfunction.save('markDVillage','x',false);
};

//Keylisteners to manage drawing of lines
var keydownHandler = function(e) {
    if (e.key == drawLine) {
        manual(mapvars.mapx, mapvars.mapy, '1');
        show('Move the mouse pointer to the point where you want to draw a line and release the keyboard key.',3);
    } else if (e.key == removeLine) {
        draw.list.pop();
        draw.build();
        draw.refresh();
    };
    document.removeEventListener('keydown', keydownHandler);
}
document.addEventListener("keydown", keydownHandler);
document.addEventListener("keypress", function(e) {
    if (e.key == drawLine) {
        manual(mapvars.mapx, mapvars.mapy);
    };
});
document.addEventListener("keyup", function(e) {
    if (e.key == drawLine) {
        draw.add(''+vars.start.x ,''+vars.start.y,''+vars.dest.x,''+vars.dest.y, '3', display.drawcol);
        manual(mapvars.mapx, mapvars.mapy, '1');
        manual(mapvars.mapx, mapvars.mapy,);
    } else if (e.key == sdLine){
        draw.add(''+vars.start.x ,''+vars.start.y,''+vars.dest.x,''+vars.dest.y, '3', display.drawcol);
    };
    document.addEventListener("keydown", keydownHandler);
});
 
Zuletzt bearbeitet:
Reaktionspunktzahl
269
Update auf 1.0
1. Entfällt diesmal Wirklich
Die Shortcuts werden nun automatisch erstellt falls nicht vorhanden. Gefixed


2. Zeichnen und löschen der Linien mit jeweiligen Tasten
r entfernt die zuletzt gemalte Linie wie gewohnt.
f wird zu c und malt eine Linie vom Start Dorf (markieren mit s) zum Ziel Dorf (markieren mit d) wie gewohnt.
mit f kann durch gedrückt halten eine Linie gezogen werden die beim loslassen gezeichnet wird.

Info: die hergenommene Farbe für die Linie ist die zuletzt ausgewählte unter Linien>Linienfarbe. Jede taste kann individuell von euch geändert werden, ich rate davon ab die tasten s und d zu ändern da hier besondere Codes benötigt werden.

3. Import/Export von Linien und Userskript Export
Neu
sind die Möglichkeiten Gezeichnete Linien von einer Karte zu einer anderen zu importieren/exportieren.
Zusätzlich gibt es die Möglichkeit die Linien in ein Userskript umzuwandeln. Dieses ermöglicht es einem die Korridorkarte/Linien ingame anzuzeigen. Das Texte welch übertragen werden sollen werden in die Zwischenablage reinkopiert.
1697053856731.png


Dieses Userskript wird verwendet und ist auf .net erlaubt also aktuell auch hier auf .de (siehe Regeln)
Regeln das .net erlaubt sind.
Bestätigung das .Schnellleisten Skripte als als Userskripte verwendet werden dürfen


Die Stämmekarte Userskript:
JavaScript:
// ==UserScript==
// @name         SteammeKarte
// @version      1.0
// @description  Draw quick lines with f and delte last one with r
// @include        http://de*.diestaemmekarte.de/*
// @icon         https://www.google.com/s2/favicons?domain=diestaemmekarte.de
// @grant        none
// ==/UserScript==

//Setup
// (keyCodes needed, can be different dependent on browser)
//Mark starting Village (Default = '83')
var markSVillage = 83;
//Mark Destination Village (Default = '68')
var markDVillage = 68;
/* If the preset buttons don't suit you feel free to change them according to your browser.
 The following website helps you just search (STRG+F) for  '83' and there you can see Browsers and keys and their number.
 https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode
*/

// Remove last line
var removeLine = 'r';
// remove last line in list (last placed line)
var drawLine = 'f';
// draw line with drag ond drop buttonpress
var sdLine = 'c';
// draw line from start village to destination village

//Hotkey setup 's' to mark start village
setTimeout(()=>{
    if (typeof hotkeylist[markSVillage] != 'object') {
        hotkeyfunction.save(markSVillage, 'w', false);
    }
    ;//Hotkey setup 'd' to mark destination village
    if (typeof hotkeylist[markDVillage] != 'object') {
        hotkeyfunction.save(markDVillage, 'x', false);
    }
    display.panel('settings', 0, 1);
    display.panel('messages',0,1);
}
, 1000)

//Keylisteners to manage drawing of lines
var keydownHandler = function(e) {
    if (e.key == drawLine) {
        manual(mapvars.mapx, mapvars.mapy, '1');
        show('Move the mouse pointer to the point where you want to draw a line and release the keyboard key.', 3);
    } else if (e.key == removeLine) {
        draw.list.pop();
        draw.build();
        draw.refresh();
    }
    ;document.removeEventListener('keydown', keydownHandler);
}
document.addEventListener("keydown", keydownHandler);
document.addEventListener("keypress", function(e) {
    if (e.key == drawLine) {
        manual(mapvars.mapx, mapvars.mapy);
    }
    ;
});
document.addEventListener("keyup", function(e) {
    if (e.key == drawLine) {
        draw.add('' + vars.start.x, '' + vars.start.y, '' + vars.dest.x, '' + vars.dest.y, '3', display.drawcol);
        manual(mapvars.mapx, mapvars.mapy, '1');
        manual(mapvars.mapx, mapvars.mapy, );
    } else if (e.key == sdLine) {
        draw.add('' + vars.start.x, '' + vars.start.y, '' + vars.dest.x, '' + vars.dest.y, '3', display.drawcol);
    }
    ;document.addEventListener("keydown", keydownHandler);
});

draw.expoLines = function() {
    draw.copyToClipboard(JSON.stringify(draw.list))
    window.alertmessage('Exportet lines')
}

draw.impoLines = function() {
    try {
        var jLines = prompt('Import String from another Map');
        JSON.parse(jLines).forEach(e=>{
            draw.add(e[0], e[1], e[2], e[3], e[4], e[5])
        }
        );
        window.alertmessage('Importet lines sucessfuly')
    } catch (x) {
        window.alertmessage('Failed to import! Check your Insertet String')
    }

}

draw.copyToClipboard = function(text) {
    var textArea = document.createElement("textarea");
    textArea.value = text;
    document.body.appendChild(textArea);
    textArea.focus();
    textArea.select();
    try {
        document.execCommand('copy');
    } catch (err) {
        window.alertmessage('Fehler beim Kopier process')
    }
    document.body.removeChild(textArea);
}

draw.expoUserscript = function() {
    var $ = jQuery;
    var usScript = `// ==UserScript==
// @name         Map sdk
// @version      0.3
// @description  draw on map
// @author       Shinko to Kuma, suilenroc
// @match        https://${'' + serversettings.prefix + serversettings.server}.die-staemme.de/game.php?village=*screen=map*
// @grant        none
// ==/UserScript==\n`
    usScript += `$.getScript("https://shinko-to-kuma.com/scripts/mapSdk.js").done(function() {`;
    draw.list.forEach(e=>{
        usScript += `MapSdk.lines.push({x1: ${e[0]},y1: ${e[1]},x2: ${e[2]},y2: ${e[3]},styling:{main: {"strokeStyle": "#${e[5]}","lineWidth": 2},mini: {"strokeStyle": "#${e[5]}","lineWidth": 2}},drawOnMini: true,drawOnMap: true,});\n`
    }
    );
    usScript += `MapSdk.mapOverlay.reload();});`;
    draw.copyToClipboard(usScript)
    window.alertmessage('Exportet Userscript! Add it as new Userscript to Tampermonkey')
}

function addUI() {
    jQuery("#coord > table > tbody > tr").append(`<td>
<table cellpadding="0" cellspacing="0" class="MenuO">
<tbody>
<tr class="MenuD hmm hmmtop">
<td class="center">
</span>Userscript</a></td><td class="center">
<a href="javascript: draw.expoLines();">
</span> Export Lines</a></td></tr>
<tr class="center hmm hmmbottom"><td class="center"><a href="javascript: draw.expoUserscript();">
</span>Export Userscript</a></td><td>
<a href="javascript:;" onclick="draw.impoLines(); return false;" >
Import Lines</a></td></tr>
</tbody></table>
</td>`)
}
addUI();
 
Zuletzt bearbeitet:
Oben