Homepage zur CyrcleMod

Alles was nicht in die anderen Foren reinpasst kommt hier rein.

Moderatoren: Handballfreak, FOE

Benutzeravatar
Calo
Schamanenleger
Beiträge: 174
Registriert: 08.08.2012, 17:29

Homepage zur CyrcleMod

Beitrag von Calo » 27.03.2014, 22:04

Moin Community!

Die, die meine Mod kennen, haben auch bestimmt schon Bekanntschaft mit meiner Homepage gemacht und haben vllt auch bemerkt, dass ich ein paar Male schon das Design überarbeitet habe (das aktuelle Design dürfte das sechte oder so sein :wink:). Außerdem bin ich im Moment dabei, mit jQuery da Skilltrees zu erstellen (vorerst ohne Calculator, ist aber noch geplant, weiß nur noch nicht wie :D).
Ich hab nun schon etwas häufiger umgebaut und jetzt mach ich das Ganze ja auch mit den Skills, da stellt sich mir doch die Frage: Wie sehen das denn Besucher, die auf meiner Seite sind? Und deshalb habe ich diesen Thread erstellt. Ich würde mich sehr freuen, wenn ihr mir Rückmeldung zu meiner Website geben würdet (Was ist gut? Was sollte ich ändern? Vllt auch wie sollte ich etwas ändern? Wie auch immer...).
Ich habe nämlich 1. keine Lust, dass ich immer überlegen muss: Gefällt es oder gefällt es nicht, wenn ich keine Rückmeldung habe ^^ und 2. etwas neu zu erstellen, um hinterher feststellen zu müssen: Keiner findet das gut!

Was auch immer: Ich freue mich, wenn Rückmeldung kommt, da ich ja nur so die Seite so optimieren kann, wie sie sein soll.

Hier nochmals der Link: http://monster-rc.firma.cc/c-ide/en/cmd-info/

Calo

Benutzeravatar
PetCha
TQ im Schlaf Spieler
Beiträge: 1440
Registriert: 19.11.2013, 23:23

Beitrag von PetCha » 28.03.2014, 07:50

Da ich mir immer die neuen Beiträge hier durchlese, war ich gestern zum 1. Mal auf deiner HP und mir gefällt sie - rein optisch - total gut. Schön gestaltet, aber nicht zu überfrachtet. Auf jeden Fall was fürs Auge. Da ich noch nicht mit Mod spiele, kann ich zurzeit leider noch nicht viel mehr dazu sagen; z.B. wie informativ oder wie hilfreich deine Seite für die Modanwender ist kann ich nicht beurteilen. Aber neugierig auf die Cyrcle-Mod bin ich nun schon mal geworden.
Meine 'Helden'- Eroberer (70) Zauberbrecher (66) Schlächter (63)
* Normal people scare me

FOE
Moderator des Messerhagels
Moderator des Messerhagels
Beiträge: 19083
Registriert: 23.08.2006, 08:11
Wohnort: Vösendorf bei Wien

Beitrag von FOE » 28.03.2014, 07:52

Hallo Calo,

Kann mich da nur der Meinung von PetCha anschließen! :)

Super und saubere Arbeit! :good:
 
Servus, Erwin
--
Der Weg ist das Ziel: 20.000 Beiträge :!: :crazy: ;)
--
« FOE's TQIT-Thema »
(Mein PC, meine Char usw.)

Benutzeravatar
Calo
Schamanenleger
Beiträge: 174
Registriert: 08.08.2012, 17:29

Beitrag von Calo » 28.03.2014, 20:14

PetCha hat geschrieben:[...] und mir gefällt sie - rein optisch - total gut.
Das ist gut! :wink:
PetCha hat geschrieben:Da ich noch nicht mit Mod spiele, kann ich zurzeit leider noch nicht viel mehr dazu sagen; z.B. wie informativ oder wie hilfreich deine Seite für die Modanwender ist kann ich nicht beurteilen.
Macht nichts, kann ja noch kommen! ^^
PetCha hat geschrieben:Aber neugierig auf die Cyrcle-Mod bin ich nun schon mal geworden.
So soll es sein! ^^ :wink: Denn da ich nun alle Meisterschaften fertig habe, kann man es ja schon mehr oder weniger als Beta ansehen.
FOE hat geschrieben:Kann mich da nur der Meinung von PetCha anschließen! :)

Super und saubere Arbeit! :good:
Danke! :)


Schonmal vielen Dank für eure Rückmeldungen!

LG Calo

Benutzeravatar
Calo
Schamanenleger
Beiträge: 174
Registriert: 08.08.2012, 17:29

Beitrag von Calo » 03.04.2014, 19:16

Hi,

ich bin ja gerade dabei, einen Skill Calculator unter http://monster-rc.firma.cc/c-ide/en/cmd ... ies/calc-/ zu basteln. Ich bin auch gerade erst dabei, mich richtig mit JavaScript und jQuery zu beschäftigen und habe nun mein erstes Problem, bei dem mir Google auch nicht weiterhelfen kann (oder ich bin einfach nur zu blöd dafür). Ich wollte - bevor ich mich in einem anderen Forum ggf. anmelde, hier fragen, ob jemand JavaScript und jQuery kann (ich meine: Warum woanders anmelden, wenns auch hier geht?)? Wenn ja, es geht um Folgendes:

Ich möchte, dass ich per .click() auf ein Skill Icon das Skilllevel erhöhe. Das funzt aber leider nur einmal, dann will er es nicht mehr machen. Leider verstehe ich überhaupt nicht, warum. Hier mein JS-Code:

Code: Alles auswählen

$(document).ready(function(){
    $("#calcSkilltree1 .fire-enduringfire").click(function(event){
        var skillLevel = 0;
        if(event.which == 1) {
            skillLevel++;
        }
        else if(event.which == 3) {
            skillLevel--;
        };
        return $("#calcSkilltree1 .fire_enduringfire > .currentLevel").html(skillLevel);
    });
});
Und der dazugehörige HTML-Code:

Code: Alles auswählen

<a class="cmd-skill-icon fire-enduringfire" title="<div class='cmd-skilltree-tooltip'>
    <h4>Anhaltendes Feuer</h4>
    <p>
        <!-- Werte ... -->
    </p>
</div>"></a>
<div class="cmd-skill-level fire_enduringfire">
    <span class="currentLevel">0</span> /
    <span class="maxLevel">10</span>
</div>
Ich möchte halt, das sich der Wert um 1 erhöht, wenn ich auf das Icon linksklicke, und wenn ich rechtsklicke, soll sich das Level wieder um 1 verringern. Wie gesagt, die Funktion funzt halt nur einmal.

Freue mich sehr über Hilfe!

LG Calo

Handballfreak
Moderator des Herrn der Fürsten
Moderator des Herrn der Fürsten
Beiträge: 7624
Registriert: 24.12.2006, 13:07

Beitrag von Handballfreak » 03.04.2014, 22:32

Ich kenne mich leider mit jQuery nicht aus - weiß nur, dass "$" wohl "getElementById" entspricht. Ich habe zu meinem Tre3-Mod damals auch einen Calculator gebastelt. Hier mal ein verkürzter Auszug aus dem Klick-Ereignis:

Code: Alles auswählen

function changeSkill&#40;event,skillnumber&#41;
&#123;
	var button,
	    shift;
	button = event.button;
	shift = event.shiftKey; // wenn shift=true, dann ans Cap erhöhen oder auf Minimum verringern
	if &#40;button == 2&#41; // Rechts-Click -> Fähigkeitsstufe verringern
	&#123; 
		skilltreeArray&#91;skillnumber&#93;.currentLevel--;
		return false;
	&#125; 
	else // Links-Click -> Fähigkeitsstufe erhöhen
	&#123; 
		skilltreeArray&#91;skillnumber&#93;.currentLevel++;
		return false; // nötig?!
	&#125; 
&#125;
Nebenbei: Ich würde im HTML-Teil nur die für die Benutzer-Anzeige notwendigen Daten speichern und alle Daten, mit denen du rechnest, etc. in geeigneter Form in Javascript speichern. Also dein

Code: Alles auswählen

<span class="currentLevel">0</span>
weglassen. Weil das willst du doch aktualisieren, oder?
Ich habe bei mir einen Array skilltreeArray angelegt:

Code: Alles auswählen

var skilltreeArray = new Array&#40;&#41;;

function skilldata&#40;&#41;
&#123;
	this&#91;"identifier"&#93; = null;
	this&#91;"x"&#93; = 0;
	this&#91;"y"&#93; = 0;
	this&#91;"currentLevel"&#93; = 0;
	this&#91;"bonus"&#93; = null;
	this&#91;"maxLevel"&#93; = 0; 
	this&#91;"cap"&#93; = 100;
	this&#91;"masterytier"&#93; = null;
	this&#91;"dependancy"&#93; = null;
	this&#91;"name"&#93; = null;
	this&#91;"description"&#93; = null;
&#125;

function createSkilltree&#40;&#41;
&#123;
	skilltreeArray = new Array&#40;&#41;; 
	for &#40;var i=0; i<numSkillsInThisMastery; i++&#41; 
	&#123; 
		skilltreeArray&#91;i&#93; = new skilldata&#40;&#41;;
	&#125;
&#125;
Bild

Benutzeravatar
Calo
Schamanenleger
Beiträge: 174
Registriert: 08.08.2012, 17:29

Beitrag von Calo » 04.04.2014, 19:04

Hi!

OT:
Das "$" fungiert als Erkennungszeichen für jQuery. Das Tolle an jQuery ist, dass das Selektieren nach CSS-Code geht: $("Selector").method usw., also z.B. $("p") oder $("#element") oder $(".element") aber auch $("h1 + h2 > .element") etc. Man muss dann eben nicht mehr so viel Text schreiben und außerdem kann man das ja auch mit anderem JS verknüpfen, sodass z.B. nur die Selektoren mit JQuery geschrieben sind, da es ja wesentlich weniger Schreibarbeit mit CSS ist :wink:

:ontopic:

Ich hab auf StackOverflow mal geschaut und da heißt es, dass die Zahl 3 für einen Rechtsklick steht ?! (bei dir steht nämlich 2)
Nebenbei: Ich würde im HTML-Teil nur die für die Benutzer-Anzeige notwendigen Daten speichern und alle Daten, mit denen du rechnest, etc. in geeigneter Form in Javascript speichern. Also dein

Code: Alles auswählen

<span class="currentLevel">0</span>
weglassen. Weil das willst du doch aktualisieren, oder?
Ja, aber ich kann doch trotzdem eine Variable erstellen und den geschriebenen Wert durch die Variable setzen, oder? Sonst muss ich doch für 180 Skills die Variablen in den Objekten platzieren :o
Ich habe bei mir einen Array skilltreeArray angelegt:
Oha ... mit Arrays hab ich noch nie gearbeitet ... Ich frag mich halt immer noch, warum es nicht funzt. Die changeSkill versteh ich auch so halbwegs, aber das mit dem Array halt nicht :o

Ich hab mir auch mal deinen vollständigen Quellcode angeschaut (wie umständlich mit window.oncontextmenu = function(){return false;} :D). Das Ergebnis: :o :o :o SEHR VIEL CODE!! :D

Eine Frage dazu: Warum machst du tabMasteryClick so umfangreich? Ich hab das so gemacht:

Selection Buttons:

Code: Alles auswählen

$&#40;"#calcSkilltree1 .masterySelection"&#41;.ready&#40;function&#40;&#41;&#123;
    $&#40;"#calcSkilltree1 > *&#58;not&#40;.masterySelection, .skillsTab&#41;"&#41;.css&#40;"display","none"&#41;;
    $&#40;"#calcSkilltree1 .masterySelection"&#41;.css&#40;"display","block"&#41;;
&#125;&#41;;
$&#40;"#calcSkilltree1 a.cmd_mastery_name&#58;not&#40;.disabled&#41;"&#41;.click&#40;function&#40;&#41;&#123;
    $&#40;"#calcSkilltree1 > *&#58;not&#40;.masteryName, .skillsTab&#41;"&#41;.css&#40;"display","none"&#41;;
    $&#40;"#calcSkilltree1 .masteryName"&#41;.css&#40;"display","block"&#41;;
    $&#40;"#calcSkilltree2 a.cmd_mastery_name"&#41;.addClass&#40;"disabled"&#41;;
    $&#40;"a.skillsTab1"&#41;.html&#40;"Meisterschaftsname"&#41;;
&#125;&#41;;
Und die beiden Tabs:

Code: Alles auswählen

&#40;"#calcSkilltree1 a.skillsTab2"&#41;.click&#40;function&#40;&#41;&#123;
    $&#40;"#calcSkilltree1"&#41;.css&#40;"display","none"&#41;;
    $&#40;"#calcSkilltree2"&#41;.css&#40;"display","block"&#41;;
&#125;&#41;;
$&#40;"#calcSkilltree2 a.skillsTab1"&#41;.click&#40;function&#40;&#41;&#123;
    $&#40;"#calcSkilltree2"&#41;.css&#40;"display","none"&#41;;
    $&#40;"#calcSkilltree1"&#41;.css&#40;"display","block"&#41;;
&#125;&#41;;
Und noch ne Frage zu den Return-Links: WIE GEHT DAS?!?! Geht das nur mit PHP? (also das "?mastery=mastery1&skills=0-0-1-..."). Ich möchte das nämlich ungern über ein jQuery-Hashtag-Plugin machen, da ich finde, dass das "?mastery=mastery1&skills=0-0-1-..." einfacher ist.

Vielen Dank schonmal!

Handballfreak
Moderator des Herrn der Fürsten
Moderator des Herrn der Fürsten
Beiträge: 7624
Registriert: 24.12.2006, 13:07

Beitrag von Handballfreak » 04.04.2014, 21:45

Calo hat geschrieben:Ich hab auf StackOverflow mal geschaut und da heißt es, dass die Zahl 3 für einen Rechtsklick steht ?! (bei dir steht nämlich 2)
Ja und bei mir funktioniert es und bei dir?! :wink:
Bei mir funktioniert es im FF und IE. Wenn ich mich recht entsinne, gab es aber browser-unterschiedliche Interpretationen was die rechte Maustaste (ob nun 2 oder 3) angeht.
Calo hat geschrieben:Ja, aber ich kann doch trotzdem eine Variable erstellen und den geschriebenen Wert durch die Variable setzen, oder? Sonst muss ich doch für 180 Skills die Variablen in den Objekten platzieren :o
Ich kenne mich mit der Performance nicht so aus, ob es schneller geht alles in JS zu berechnen oder Teile im HTML zu speichern. Persönlich würde ich zwischendurch nichts aus dem HTML auslesen.
Calo hat geschrieben:Oha ... mit Arrays hab ich noch nie gearbeitet ... Ich frag mich halt immer noch, warum es nicht funzt. Die changeSkill versteh ich auch so halbwegs, aber das mit dem Array halt nicht :o
Also wenn man über irgendwas iterieren will, kommst du um eine Auflistung oder einen Array nicht herum. Aber wo hast du deine Skillinfos gespeichert? Bei mir werden die UI-Ausgabe-fertig von einem php-Skript übergeben und in einem Array gespeichert. Je nach Skillstufe wird dann die entsprechende Ausgabe ausgewählt. Damit ich auch über die einzelnen Fähigkeiten iterieren kann, habe ich diese ebenfalls in einen Array gepackt. Aber geht vielleicht auch anders. Am Ende zählt nur das Ergebnis.
Calo hat geschrieben:Ich hab mir auch mal deinen vollständigen Quellcode angeschaut (wie umständlich mit window.oncontextmenu = function(){return false;} :D). Das Ergebnis: :o :o :o SEHR VIEL CODE!! :D
Das genannte ist ja nur eine Zeile, damit bei Rechtsklick kein Kontextmenü erscheint.
Calo hat geschrieben:Eine Frage dazu: Warum machst du tabMasteryClick so umfangreich? Ich hab das so gemacht:
[...]
Na ja, es war halt mein erster Versuch eines Calculators. Da sind bestimmt nicht alle Sachen optimiert - manche sind auch erst nachträglich hinzugekommen. Zudem ist CSS auch nicht unbedingt mein Steckenpferd, daher war ich froh, dass es funktioniert.
Calo hat geschrieben:Und noch ne Frage zu den Return-Links: WIE GEHT DAS?!?! Geht das nur mit PHP?
Afaik kann man den Query-String - so nennt sich iirc der Anhang hinten an der UL - am einfachsten mit PHP oder ASP.net (s. titancalc bzw. masteriescalc) auslesen. Javascript kann das afaik leider nicht, aber vielleicht hat da jQuery eine Funktion dafür?!
Bild

Benutzeravatar
Calo
Schamanenleger
Beiträge: 174
Registriert: 08.08.2012, 17:29

Beitrag von Calo » 04.04.2014, 22:01

Ich kenne mich mit der Performance nicht so aus, ob es schneller geht alles in JS zu berechnen oder Teile im HTML zu speichern.
Okay.
Aber wo hast du deine Skillinfos gespeichert?
Bisher noch in der HTML-Datei. Ich möchte dort für die einzelnen Werte mit JS Berechnungen über die einzelnen .currentLevel-Objekte anstellen.
Am Ende zählt nur das Ergebnis.
Das ist wahr. Es bleibt da dann nur noch die Frage, wie kurz man seinen Weg wählt :wink:
Das genannte ist ja nur eine Zeile, damit bei Rechtsklick kein Kontextmenü erscheint.
Jo, hab nur davor halt 5 Min. oder so gerübelt, wie ich jetzt an den Quelltext komme - bis mir der Web-Developer bei FF eingefallen ist :D
Zudem ist CSS auch nicht unbedingt mein Steckenpferd, daher war ich froh, dass es funktioniert.
Und das kannst du auch noch heute sein, denn dein Calculator ist ziemlich gut (allein schon vom Umfang her! Diese Arbeit ... hab ich dann wohl auch noch vor mir :D)! Das dann hiermit nochmal gesagt! :wink:
Javascript kann das afaik leider nicht, aber vielleicht hat da jQuery eine Funktion dafür?!
JS kann das! Du machst es doch auch - oder nicht? - mit JS und ich löse das gerade mit

Code: Alles auswählen

var pairs = window.location.search.substring&#40;1&#41;.split&#40;'&'&#41;;
var params = new Object&#40;&#41;;
var mastery;
var skills;
for&#40;var param in pairs&#41; &#123;
    var tmp = unescape&#40; pairs&#91;param&#93; &#41;.split&#40;'='&#41;;
    params&#91;tmp&#91;0&#93;&#93; = tmp&#91;1&#93;;
&#125;
for&#40;var name in params&#41; &#123;
    if&#40;params&#91;"mastery"&#93; = "fire"&#41;
        mastery = "fire";
    else if&#40;params&#91;"mastery"&#93; = "water"&#41;
        mastery = "water";
&#125;;
if&#40;mastery = "fire"&#41; &#123;
    $&#40;"#calcSkilltree1 > *&#58;not&#40;.masteryFire, .skillsTab&#41;"&#41;.css&#40;"display","none"&#41;;
    $&#40;"#calcSkilltree1 .masteryFire"&#41;.css&#40;"display","block"&#41;;
    $&#40;"#calcSkilltree2 a.cmd_mastery_fire"&#41;.addClass&#40;"disabled"&#41;;
    $&#40;"a.skillsTab1"&#41;.html&#40;"Feuermeisterschaft"&#41;;
&#125;
else if&#40;mastery = "water"&#41; &#123;
    $&#40;"#calcSkilltree1 > *&#58;not&#40;.masteryWater, .skillsTab&#41;"&#41;.css&#40;"display","none"&#41;;
    $&#40;"#calcSkilltree1 .masteryWater"&#41;.css&#40;"display","block"&#41;;
    $&#40;"#calcSkilltree2 a.cmd_mastery_water"&#41;.addClass&#40;"disabled"&#41;;
    $&#40;"a.skillsTab1"&#41;.html&#40;"Wassermeisterschaft"&#41;;
&#125;
Der Code ist natürlich noch nicht fertig. Aber ich hab schon wieder ein Problem damit: Wenn eine Bedingung in den unteren beiden if's erfüllt ist, wendet er die Methode .css() nicht an. Ich möchte aber, dass er bei Erfüllung dann auch gleich die richtige Meisterschaftsseite anzeigt und nicht die Meisterschaftsauswahl -.- :ranting:

Benutzeravatar
Malgardian
TQ im Schlaf Spieler
Beiträge: 1590
Registriert: 12.12.2011, 23:03
Wohnort: /home

Beitrag von Malgardian » 05.04.2014, 11:41

Vielleicht hilft euch diese Info noch weiter:
Im engl. Forum gibt es eine Offline Item Datenbank, die auch einen offline Calculator (in JS und HTML geschrieben) beinhaltet. Vielleicht könnt ihr euch dort Inspiration holen. :wink:

Handballfreak
Moderator des Herrn der Fürsten
Moderator des Herrn der Fürsten
Beiträge: 7624
Registriert: 24.12.2006, 13:07

Beitrag von Handballfreak » 05.04.2014, 11:55

Calo hat geschrieben:
Javascript kann das afaik leider nicht, aber vielleicht hat da jQuery eine Funktion dafür?!
JS kann das! Du machst es doch auch - oder nicht? - mit JS und ich löse das gerade mit

Code: Alles auswählen

var pairs = window.location.search.substring&#40;1&#41;.split&#40;'&'&#41;;
Stimmt. Ich weiß selber schon nicht mehr genau, was ich alles gemacht habe. :wink:
Irgendwas hatte ich, dass in JS nicht ging und ich damals mit php angefangen hatte ... dann war es wohl das Text-Dateien auslesen.
Calo hat geschrieben:

Code: Alles auswählen

var mastery;

for&#40;var name in params&#41; &#123;
    if&#40;params&#91;"mastery"&#93; = "fire"&#41;
        mastery = "fire";
    else if&#40;params&#91;"mastery"&#93; = "water"&#41;
        mastery = "water";
&#125;;

if&#40;mastery = "fire"&#41; &#123; ... &#125;
else if&#40;mastery = "water"&#41; &#123; ... &#125;
Wenn ich Compiler wäre, würde ich jetzt meckern und sagen, dass "mastery" keinen Initialwert hat. Wenn deine For-Schleife der mastery-Variable weder "fire" noch "water" zuweist, gibt es afaik bei den nachfolgenden Bedingungen eine Fehlermeldung, weil "mastery" nicht deklariert ist.
Das hängt vielleicht nicht mit deinem Problem zusammen, ist aber unschön.

@Malgardian: Du meinst sicher dieses hier. Aber ohne Quellcode kommt man da auch nicht weiter - oder man fragt die Beteiligten, falls noch jemand aktiv ist. Zudem gibt es auch noch die online-Versionen von TitanCalc und MasteriesCalc sowie den französischen Calculator. Aber im Grunde würde das Anpassen deren Quelltextes an die eigenen Meisterschaften genauso lange dauern wie einen eigenen Calculator zu basteln.
Ich wollte ohnehin mal einen offline-Calculator mit C# basteln, aber ich bin noch nicht dazu gekommen.
Bild

Benutzeravatar
Malgardian
TQ im Schlaf Spieler
Beiträge: 1590
Registriert: 12.12.2011, 23:03
Wohnort: /home

Beitrag von Malgardian » 05.04.2014, 12:20

Jo, das meinte ich. Quellcode? Einfach die .chm Datei entpacken (mit einem Programm, das das kann z.B. htm2chm), dann bleibt nur noch .html und .js übrig. Die Urheber der Datenbank sind schon lange nicht mehr aktiv und der Code der Calculator ist wohl noch älter.
Aber im Grunde würde das Anpassen deren Quelltextes an die eigenen Meisterschaften genauso lange dauern wie einen eigenen Calculator zu basteln.
Das schon, aber ich dachte euch ginge es um grundlegende Funktionen des Calcs und wie man diese am besten implementiert. Da wäre das als Referenz vielleicht nicht schlecht. Aber ihr müsst das wissen, JavaScript und HTML sind zwei Sprachen mit denen ich mich nie größer beschäftigt habe :wink:

Handballfreak
Moderator des Herrn der Fürsten
Moderator des Herrn der Fürsten
Beiträge: 7624
Registriert: 24.12.2006, 13:07

Beitrag von Handballfreak » 05.04.2014, 22:42

Malgardian hat geschrieben:Quellcode? Einfach die .chm Datei entpacken (mit einem Programm, das das kann z.B. htm2chm), dann bleibt nur noch .html und .js übrig.
Achso, danke für den Tipp.
Bild

Benutzeravatar
Calo
Schamanenleger
Beiträge: 174
Registriert: 08.08.2012, 17:29

Beitrag von Calo » 06.04.2014, 00:34

Im engl. Forum gibt es eine Offline Item Datenbank, die auch einen offline Calculator (in JS und HTML geschrieben) beinhaltet.
Werd ich mir mal anschauen. Danke für den Hinweis!
Wenn ich Compiler wäre, würde ich jetzt meckern und sagen, dass "mastery" keinen Initialwert hat. Wenn deine For-Schleife der mastery-Variable weder "fire" noch "water" zuweist, gibt es afaik bei den nachfolgenden Bedingungen eine Fehlermeldung, weil "mastery" nicht deklariert ist.
Das hängt vielleicht nicht mit deinem Problem zusammen, ist aber unschön.
Tja, das mastery-Problem ist immer noch nicht gelöst.

Code: Alles auswählen

function analyzeQuerystring&#40;&#41; &#123;
    var pairs = window.location.search.substring&#40;1&#41;.split&#40;'&'&#41;;
    var params = new Object&#40;&#41;;
    var param;
    var level;
    var mastery = "selection";
    var skills;
    for&#40;i=0; i<pairs.length; i++&#41; &#123;
        var tmp = unescape&#40; pairs&#91;param&#93; &#41;.split&#40;'='&#41;;
        switch&#40;tmp&#91;0&#93;&#41; &#123;
            case "level"&#58;
                this&#91;"level"&#93; = tmp&#91;1&#93;;
                level = tmp&#91;1&#93;;
            case "mastery"&#58;
                this&#91;"mastery"&#93; = tmp&#91;1&#93;;
                mastery = tmp&#91;1&#93;;
                break;
        &#125;
    &#125;;
    $&#40;"#characterLevelSelector"&#41;.html&#40;function&#40;&#41;&#123;
        $&#40;"#characterLevelSelector"&#41;.val&#40;"29"&#41;.trigger&#40;"change"&#41;;
    &#125;&#41;;
    if&#40;mastery = "fire"&#41; &#123;
        alert&#40;"Feuermeisterschaft"&#41;;
    &#125;
    else if&#40;mastery = "water"&#41; &#123;
        alert&#40;"Wassermeisterschaft"&#41;;
    &#125;;
&#125;;
Er gibt mir beim Hinweis immer "Feuermeisterschaft" aus, obwohl ich in der URL ...&mastery=water stehen habe! Warum?!?
Jo, das meinte ich. Quellcode? Einfach die .chm Datei entpacken (mit einem Programm, das das kann z.B. htm2chm), dann bleibt nur noch .html und .js übrig. Die Urheber der Datenbank sind schon lange nicht mehr aktiv und der Code der Calculator ist wohl noch älter.
Besser kann man es doch fast gar nicht haben ... DANKE!!! :)
Achso, danke für den Tipp.
Dem kann ich nur 100%ig zustimmen! :D

Handballfreak
Moderator des Herrn der Fürsten
Moderator des Herrn der Fürsten
Beiträge: 7624
Registriert: 24.12.2006, 13:07

Beitrag von Handballfreak » 06.04.2014, 10:12

Calo hat geschrieben:Er gibt mir beim Hinweis immer "Feuermeisterschaft" aus, obwohl ich in der URL ...&mastery=water stehen habe! Warum?!?
Jetzt ist es mir aufgefallen. Es war in deinem ersten Code-Beispiel auch schon drin, aber irgendwie hatte ich es übersehen. Der Fehler liegt imho im Vergleichszeichen - dort muss "==" stehen und nicht das einfache "=". Also

Code: Alles auswählen

if&#40;mastery == "fire"&#41; &#123;
        alert&#40;"Feuermeisterschaft"&#41;;
    &#125;
    else if&#40;mastery == "water"&#41; &#123;
        alert&#40;"Wassermeisterschaft"&#41;;
    &#125;;
Wobei ich es auch gleich als switch-case schreiben würde, denn es kommen ja noch andere Meisterschaften hinzu, oder nicht?

Code: Alles auswählen

switch &#40;mastery&#41;
&#123;
    case "fire"&#58;
        alert&#40;"Feuermeisterschaft"&#41;;
        break;
    case "water"&#58;
        alert&#40;"Wassermeisterschaft"&#41;;
        break;
&#125;
Übrigens ist in deiner ersten switch-case-Anweisung ein Fehler drin, denn im ersten Fall "level" fehlt das abschließende "break;". So wie es jetzt ist:

Code: Alles auswählen

switch&#40;tmp&#91;0&#93;&#41; &#123;
            case "level"&#58;
                this&#91;"level"&#93; = tmp&#91;1&#93;;
                level = tmp&#91;1&#93;;
            case "mastery"&#58;
                this&#91;"mastery"&#93; = tmp&#91;1&#93;;
                mastery = tmp&#91;1&#93;;
                break;
        &#125;
wird im Falle von "level" auch der Code von "mastery" abgearbeitet und erst dann die Prozedur verlassen.
Bild

Antworten