• Herzlich Willkommen!

    Nach der Schließung von inDiablo.de wurden die Inhalte und eure Accounts in dieses Forum konvertiert. Ihr könnt euch hier mit eurem alten Account weiterhin einloggen, müsst euch dafür allerdings über die "Passwort vergessen" Funktion ein neues Passwort setzen lassen.

    Solltet ihr keinen Zugriff mehr auf die mit eurem Account verknüpfte Emailadresse haben, so könnt ihr euch unter Angabe eures Accountnamens, eurer alten Emailadresse sowie eurer gewünschten neuen Emailadresse an einen Administrator wenden.

Frage zur SkillDesc.txt

Sanguinus

Mitglied
Registriert
19 April 2009
Beiträge
297
Hallo Leute,

lt. PK:
There are 3 main sections for descriptions, desc, dsc2 and dsc3. ...

desc - shows up in trees, shortcuts and selected skill.
dsc2 - shows up in trees, shortcuts and selected skill.
dsc3 - shows up in trees only.

...

Shortcuts and Selected skill - desc and dsc2 show current level stats only.

Trees -
desc show current and next level stats
dsc2 show current stats
dsc3 show current stats (but is currently used for synergies)

Mein "Problem":
"dsc2" zeigt bei mir mitnichten die "current stats" an, sondern vielmehr die des nächsten Levels. D.h. wenn ich dort eine variable/dynamische Anzeige platziere, zeigt diese den Wert, der eigentlich erst ein Level weiter aktiv sein soll.
Das kann man einfach testen, in dem man dieselbe Formel im "desc-Bereich" unterbringt und dann zweimal mit unterschiedlichen Werten sieht.
Mit "(lvl-1)" kann man zwar den Wert der "dsc2" wieder auf Normal bringen, aber dann gibt es ein Problem wenn "desc" das nächste Level nicht mehr anzeigen kann. Ist man nämlich mit dem Skill auf Maximum, oder spart Punkte über und der nächste Schritt wird nicht angezeigt, zeigt "dsc2" auch nicht mehr den einen Schritt zuviel an!

Beispiel: Base Life 100, pro Level +50
Level 1 desc = 150, dsc2 = 200
wenn keine Anzeige über ein weiteres Level verfügbar ist:
z.B. Level 20 desc = 1100, dsc2 = 1100

Kennt jemand das Problem, bzw. gibt es dafür eine Lösung?!

Gruß
 
Also ich bin zu folgendem Ergebnis gekommen:
Es gibt mindestens 2 Funktionen, die die Texte in den Skillfenstern zusammensetzen.
Die, die aufgerufen wird, wenn man noch Punkte übrig hat und der Skill noch nicht auf dem Maximum ist, arbeitet bei dsc2 mit slvl+1 und die, die aufgerufen wird, wenn der Skill auf dem Maximum ist, mit slvl (außer bei 0, da benutzt es 1).


Falls du 1.10 benutzt, habe ich hier eine Lösung für dich gebastelt:
d2client.dll

ändere
Address Hex dump Command Comments
6FB15484 85C0 TEST EAX,EAX
6FB15486 7F 05 JG SHORT 6FB1548D
6FB15488 B8 01000000 MOV EAX,1

in
Address Hex dump Command Comments
6FB15484 40 INC EAX
6FB15485 EB 06 JMP SHORT 6FB1548D
6FB15487 90 NOP
6FB15488 90 NOP
6FB15489 90 NOP
6FB1548A 90 NOP
6FB1548B 90 NOP
6FB1548C 90 NOP

dann ist alles bei slvl+1 und du kannst (lvl-1) in die Formeln schreiben.
Ich hoffe mal, dass das nicht zu unerwünschten Nebeneffekten bei der Anzeige führt ;)
Hab's nur kurz bei dem Schaden von "Skelett Beleben" getestet.

e/ du benutzt 1.11b, oder? ;)
Der Code dürfte sich da nicht größartig verändert haben, ich such dir die Adressen raus

1.11b:
ändere
Address Hex dump Command Comments
6FAF1938 /7F 05 JG SHORT 6FAF193F
6FAF193A |B8 01000000 MOV EAX,1

in
Address Hex dump Command Comments
6FAF1938 /40 INC EAX
6FAF1939 |EB 04 JMP SHORT 6FAF193F
6FAF193B |90 NOP
6FAF193C |90 NOP
6FAF193D |90 NOP
6FAF193E |90 NOP
 
Zuletzt bearbeitet:
@Freiik
Das Problem ist wie gesagt nur sichtbar, wenn man im Bereich "dsc2" Formeln verwendet, die den eigenen Wert dynamisch je Level anpassen, also z.B. "Leben +25% pro Level" und die Anzeige des absoluten Lebens dann im Bereich "dsc2" platziert. Dann sieht man hier stets den Wert, den "desc" erst für das nächste Level ausgibt.

Deine Beobachtung bzgl. "dsc2 mit slvl+1" und "desc mit slvl (min. 1)" stimmt ja dann soweit mit meiner Beobachtung überein.

Ich spiele Diablo LoD v1.12
Gibt es hierfür auch eine Lösung, bzw. "schade das man CE einsetzen muss" :(

Gruß
 
Ich beziehe mich ausschließlich auf "dsc2". Es gibt 3 Funktionen, die solche Skillbeschreibungen anzeigen, 2 davon sind relevant für den Skilltree.
Wenn noch "nächster Level" angezeigt wird, dann wird die mit slvl+1 benutzt, wenn nicht, dann die mit slvl.
"dsc3" benutzt an der Stelle übrigens auch slvl+1.
Soll ich dir die Stelle für 1.12 raussuchen oder ist dir das zu viel Aufwand?

Ohne CE könnte man imho nur für das "slvl = 20"-Problem eine Lösung finden.
Einfach eine bedingte Formel ala "blvl == 20 ? (lvl)... : (lvl-1)..." benutzen. Das löst allerdings nicht das Problem der falschen Anzeige, wenn keine Skillpunkte mehr übrig sind und der Skill noch nicht gemaxt wurde.
 
Zuletzt bearbeitet:
@Freiik
Momentan verwende ich als Formel z.B.
((lvl < 2) ? 15 : ((lvl-1)*par4))
welches mir bei Skill Level 0 eine 15 präsentiert und dann ab Skill Level 1 par4 verrechnet/anzeigt. Damit umgehe ich zwar das Problem, dass bei Skill Level 0 gar nichts angezeigt wird, aber wie gesagt stimmt die Anzeige nicht (ist um ein Level zu niedrig), wenn man Skill Punkte gespart hat und dort wegen dem eigenen Level nichts reinsetzen kann, oder wenn man max. Skill Level hat.

Den Anfang der Formel und das lvl-1 könnte man sich sparen wenn sich dsc2 am gegebenen/aktiven Skill Level orientieren würde und nicht "mal so mal so" am aktiven ODER am nächstmöglichen Level.

Also wenn du da eine Lösung per CE hast, probiere ich das gerne mal aus.

Gruß
 
für 1.12a sollte es das hier sein:
6FAF9718 7F 05 JG 6FAF971F
6FAF971A B8 01000000 MOV EAX,1

ändern in:
6FAF9718 40 INC EAX
6FAF9719 EB 04 JMP SHORT 6FAF971F
6FAF971B 90 NOP
6FAF971C 90 NOP
6FAF971D 90 NOP
6FAF971E 90 NOP

Dann ist "dsc2" immer slvl+1.
Ich übernehme dafür keine Garantie, da ich es bei 1.12a nicht getestet habe!
 
@Freiik
"immer slvl+1" ist aber doch auch keine Lösung ;)
Da die Werte im Bereich dsc2 mal desc entsprechen (+-0) und mal "nächster Level" (+1) sind. Je nach Darstellungsmöglichkeit des nächsten Levels im desc Bereich. dsc2 kopiert hier scheinbar wenn möglich die Werte des nächsten Levels aus desc (also Level +1) und wenn das nicht möglich ist (weil kein nächstes Level angezeigt wird) stimmt die Anzeige ja mit desc überein und darf nicht verändert werden.

Gruß
 
Da die Werte im Bereich dsc2 mal desc entsprechen (+-0) und mal "nächster Level" (+1) sind.
Ja, ich weiß! Deshalb der Edit! Dann wird es IMMER!!!! mit slvl+1 berechnet und nicht mal so, mal so. Steht auch alles bereits oben in meiner ersten Antwort.
 
Also der erste Eindruck passt!
Wenn kein nächstes Level mehr angezeigt wird, bei Aufsparen von Punkten oder Erreichen des max Levels geht die dsc2 Anzeige nun nicht mehr um ein Level zurück.
Die Anzeige von Level 0 erzwinge ich bereits z.B. per ((lvl < 2) ? 15 : ((lvl-1)*par4)), wenn es wie in diesem speziellem Fall unterhalb Level 2 (also 0 und 1) eine 15 geben soll.

Wenn die Hex-Veränderung also nichts anderes ändert, dann klappt's! :)

Gruß
 
Zurück
Oben