xyzabcd
Entdecker
Hallo,
In tw2game.js gibt es im eine Funktion west.item.ItemSet.getMergedBonus, die etwas fehlerhaft ist.
Texte in Fettschrift sind Kommentare von mir.
Wenn man die Funktion jetzt benutzt, weil man gerade eine Funktion basteln will, die eine Ausrüstung mit maximalem Dollar-Bonus liefert, bekommt man halt ein NaN zurück ("dies ist keine Zahl" - undefiniert plus X ist halt definitiv keine Zahl), was den armen Programmierer, der gerade versucht, sich mit möglichst wenig Aufwand durch's Leben zu schlagen, und hofft, möglichst viele sowieso schon vorhandene Funktionen benutzen zu können, 60 Minuten kostet.
Das hat für das Spiel selbst keine Auswirkungen, glaube ich, weil von der Ausgabe von getMergedBonus nur job (=Arbeitspunktbonus), skills und attributes genutzt werden.
Gruß, Uwe
In tw2game.js gibt es im eine Funktion west.item.ItemSet.getMergedBonus, die etwas fehlerhaft ist.
Texte in Fettschrift sind Kommentare von mir.
JavaScript:
getMergedBonus: function() {
if (this._mergedBonus)
return this._mergedBonus;
[B]// das ist die Initialisierung. Man achte darauf, dass "dollar" nicht da ist, oder auch "damage".[/B]
var bonus = {
attribute: {},
skill: {},
job: {},
speed: 0,
regen: 0,
luck: 0,
pray: 0,
fortbattle: {},
experience: 0
}, bonusObjects = this.getMergedStages(), i, b, bonusExtractor = new west.item.BonusExtractor(Character);
var merge = function(b, value) {
switch (b.type) {
case 'skill':
case 'attribute':
case 'fortbattle':
bonus[b.type][b.name] = (bonus[b.type][b.name] || 0) + value;
break;
case 'job':
bonus.job[b.job] = (bonus.job[b.job] || 0) + value;
break;
case 'speed':
case 'regen':
case 'luck':
case 'pray':
case 'experience':
[B]// die nächsten beiden fehlen oben in der Initialisierung.[/B]
[B] case 'damage': [/B]
[B]case 'dollar':[/B]
bonus[b.type] += value;
break;
case 'character':
merge(b.bonus, bonusExtractor.getCharacterItemValue(b));
break;
default:
if (window.DEBUG)
console.log('ItemSet: unknown bonus to merge: ', b.type);
break;
}
};
for (i = 0; i < bonusObjects.length; i++) {
b = bonusObjects[i];
merge(b, b.value);
}
Das hat für das Spiel selbst keine Auswirkungen, glaube ich, weil von der Ausgabe von getMergedBonus nur job (=Arbeitspunktbonus), skills und attributes genutzt werden.
Gruß, Uwe