• 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.

BB-Codes in Userscript?

DeletedUser

Gast
Also, wenn man Ingame Notizen schreibt, kann man ja ganz simpel die [coords]-BB-Codes nutzen um einen Link zum jeweiligen Dorf zu erstellen. Lässt sich das in Userscripten auch irgendwie realisieren?
Was ich will ist: Ein Eingabe-Feld erstellen, in dem man dann Koordinaten eingeben kann und via Klick auf "Speichern" die Koordinaten, falls BB-Codes genutzt wurden, halt in einen Link umgewandelt in einem anderen Feld ausgegeben werden.
Ist das möglich?
 

DeletedUser

Gast
bin mir nicht genau sicher was du meinst....
so wie ichs verstanden hab:

user gibt in ein html-element <input type="text" id="meineEingabe"/> die zeichenkette "www.google.com" ein und per button klick wird diese zeichenkette gespeichert, z.B
var meineEingabe = document.getElementById("meineEingabe").value;

und später wird diese variable in einem userscript-generierten Textfeld wieder ausgeben
var meinDiv = document.getElementById("meinDiv");
meinDiv.innerHTML = meineEingabe;

und dann soll dort ein anklickbarer Link erscheinen?
Das geht nicht :p wie timlim ja schon schrieb...
bzw nicht ohne weiteres...

ds wandelt die bbocdes in HTML-elemente um z.B
[b foo[ /b] -> <b>foo</b>
www.bla.com[ /url] -> <a href="www....beim abspeichern/auslesen ebenfalls machen...
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser82294

Gast
Das Problem ist nicht, den Link zu erstellen, das ist ziemlich einfach, Man braucht aber die Dorf-ID und die kann man aus den Koordinaten nur mit einem Request an eine andere Seite raus finden, was aber verboten wäre.
 

DeletedUser

Gast
Danke fabi, das hat's erklärt :) Also kann man nicht irgendwie auf serverseitige Funktionen zugreifen, die das ermöglichen..
 

DeletedUser

Gast
lol...dann ist die überschrift aber denkbar schlecht gewählt :D
wenn das problem so wenig mit bbcodes zu tun hat^^

also suchst du eine function getIdByCoords(x,y) ...

wenns nur bestimmte spieler betrifft, könnte man es manuell einlesen lassen von einer spielerübersicht...
aber wahrscheinlich solls nen bischen dynamischer sein...

ka :S
wenn du ne möglichkeit findest, lass es uns wissen...
 

DeletedUser

Gast
Gibt es denn eine Möglichkeit via Javascript auf Text-Dateien zuzugreifen? Dann würde ich nämlich einmalig bei erster Benutzung des Scripts auf die "/map/village.txt"-Datei zugreifen und diese im localStorage in Form eines Arrays zwischenspeichern... Es kommt natürlich vor, dass neue Spieler auf die Welt kommen und dann neue Dorf-ID's benötigt werden, aber dann würde ich einfach jedes mal wenn das passiert eine Abfrage einbauen, die das Textfile erneut herunterlädt... Jetzt brauche ich nur eine Möglichkeit, via Javascript am Besten im Hintergrund das Textfile zu speichern, das ja schon ziemlich groß ist..?
 

DeletedUser

Gast
Schau dir mal das:
http://wiki.greasespot.net/GM_getResourceURL
oder das an:
http://wiki.greasespot.net/GM_getResourceText

Die Frage ist natürlich inwiefern Javascript mit so langen Strings dann zurechtkommt.
Ich habe das mal vor ca. einem Jahr versucht. Damals ging es nicht. Firefox hat diesen Dialog geöffnet, dass das Script zu lange zum Antworten braucht und ist dann abgestürzt.
Aber vielleicht geht es mittlerweile oder es hängt auch nur mit der Leistung des PCs zusammen.
 

DeletedUser

Gast
GM_getResourceText funktioniert ehrlich gesagt bei mir unter Firefox wunderbar! Und für so eine große Datei sogar relativ schnell. Allerdings habe ich auch 3*3,2GHz und 4GB RAM in meinem Gehäuse, ich weiß jetzt natürlich nicht, wie ältere Geräte damit umgehen. Und mich stört gewaltig, dass diese Funktion natürlich unter Opera nicht funktionieren kann, und ich benutze ausschließlich Opera...
Wenn es etwas vergleichbares ebenfalls für Opera gäbe, wär das quasi perfekt...
 

DeletedUser

Gast
Jop unter Firefox habe ich es auch gerade getestet und geht wirklich sehr schnell. Im Schnitt dauert eine Abfrage 70ms bei der village.txt von Welt 68 mit 5.6 MB und 147.475 Einträgen.
(6GB RAM und 2*2,2GHz)

Bei Opera wird es nur über einen HTTP Request und dann speichern im Storage gehen. Mir fällt jedenfalls nichts anderes ein. Wobei HTTP Request ja vermutlich nicht erlaubt sind.
 

DeletedUser

Gast
Nehmen wir einfach mal kurz interessehalber an, es wäre erlaubt ;-)
Wie wäre der jeweilige Code dafür?
 

DeletedUser

Gast
Vielleicht so ungefähr:
Code:
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
	if(4 == xmlhttp.readyState) {
		saveVillageTxt(xmlhttp.responseText);
	}
}

xmlhttp.open('GET', 'http://de68.die-staemme.de/map/village.txt');
xmlhttp.send(null);

function saveVillageTxt(str) {
	localStorage.setItem('villagetxt', str );
}


function getVillageTxt() {
	return localStorage.getItem('villagetxt');
}
 

DeletedUser

Gast
Wenn man's mit aller Macht in Opera einbauen wollte, könnte man das über ein kleines Popup machen, in dem man eben jene village.txt laden lässt und dann den Text abspeichert. Allerdings wie gesagt sehr gezwungen, wenn's anders geht, hätte ich gerne einen anderen, eleganteren Weg ;-)
 

DeletedUser105688

Gast
Kümmer Dich doch einfach nicht um den HTTP Request und benutz ihn. Andere machen das auch. Wird doch mittlerweile eh alles genehmigt. Und Updates von Skripts schaut sich eh kein Mensch an, um sie noch auf Regelkonformität zu prüfen. ^^
 
Oben