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

[Arbeitsthread] Neuer Skillbearbeitungsguide

Surtur

Mitglied
Registriert
18 Mai 2004
Beiträge
369
Ich habe letzt jemandem die Grundzüge der Skillbearbeitung erklärt und dabei ist mir aufgefallen, dass es einen entsprechenden Guide ja garnicht gibt, auch wenn einige Teilaspekte durch Tutorials abgedeckt werden. Hier ist eine Vorabversion:

-----


Vorweg: Es empfiehlt sich, zu verändernde Skills erst zu kopieren und ans Dateiende einzufügen, umzubenennen und den Eintrag bei „Charclass“ zu entfernen.


Ich werde hier einige Links auflisten, die ihr beim Lesen des Guides zum Nachschlagen gebrauchen könntet oder die Fragen, die ich offen lasse, bereits beantworten:
Es gibt bereits ein Tutorial für passive Skills http://phrozenkeep.planetdiablo.gamespy.com/forum/kb.php?mode=article&k=292
Eine Auflistung, was jede Spalte in der Skills.txt und in der Missiles.txt tut:
http://phrozenkeep.planetdiablo.gamespy.com/forum/kb.php?mode=article&k=440
http://phrozenkeep.planetdiablo.gamespy.com/forum/kb.php?mode=article&k=364
eine Auflistung über die Missile Functions
http://phrozenkeep.planetdiablo.gamespy.com/forum/viewtopic.php?t=29595
und einen Guide für Formeln:
http://phrozenkeep.planetdiablo.gamespy.com/forum/kb.php?mode=article&k=371

Hier gibts noch die Masterliste der Missilegrafiken:
http://phrozenkeep.planetdiablo.gamespy.com/forum/viewtopic.php?t=42404&highlight=unused

-------------------------------



Wie löst man aber Kettenskills wie in Median aus, wie macht man Singletargetattacken zu einer Nova, warum nutzen manche Skills Calc-Felder, die andere nicht benutzen? Das soll dieses Tutorial erklären.

Eure Hauptwerkzeuge werden die Skillfunktion und Missiles sein, ohne Formeln kommt man allerdings meist auch nicht aus.

Will man einen Skill grundlegend verändern, sollte man vorerst überlegen, ob er damit eher einem anderen bereits vorhandenen Skill in bestimmten Aspekten gleicht.
Hat man einen solchen Skill gefunden, sollte man Skills.txt öffnen und studieren (was oft aufs Probieren herausläuft), ob der Skill sich durch seine Skillfunktion oder durch seine Missiles so verhält.
Der erste Blick sollte sich hierbei auf die Missiles richten. Wenn diese den gewünschten Effekt erzielen, kann man einfach dem zu verändernden Skill ohne viel Aufwand die gewünschten Missiles anfügen (z.Bsp. wenn ein Zauber sich in Frozen-Orb-Manier ausbreiten soll).
Schaut man sich hingegen die Missiles von "Zähne" an, sieht man, dass diese einfach nur eine Einzelmissile ist, die geradeausfliegt (wie ihr das seht, beschreibe ich später noch). Die kreisförmige Anordnung und die Anzahl werden also schon vorher bestimmt, nämlich über die Skillfunktion:



Die Skillfunktion, zu finden in „SrvstFunc“ und „SrvdoFunc“, legt den Skill grundsätzlich fest – und hat dabei die unterschiedlichsten Funktionen :

- Die „8“ in der Srvdofunc bei „Zähne“ ist dafür verantwortlich, dass der Skill die Missile in „Srvmissilea“ und in Cltmissilea/b castet, und zwar in der im Calc1 festgelegten Anzahl.
-32/2 legt bei Konzentrieren fest, dass der Char beim Zuhauen Aurastat1 erhält
usw.



Wenn man also den Bonenecro betrachtet und findet, dass der Knochenspeer ähnlich wie die Zähne, aber mit weniger Geschossen und mehr Schaden , sein sollte, so fügt man beim Knochenspeer in die Spalte Srvdofunc eine 8 , in Calc2 eine 0 und ins Calc1-Feld die gewünschte Formel ein, bei mir ist das "min(1+lvl/10,5)"
Nebenbei müssen noch 19/17 in cltstfunc und cltdofunc
Die Erklärung für diese Formel findet sich im Anhang.




Missiles
Das wohl mächtigste Werkzeug beim Skilleditieren stellen die Missiles. Je gewundert, wie Kettenreaktionen durch nur einen Skill entstehen?
Vorweg: Es gibt rein technische und rein kosmetische Änderungen, auf die kosmetischen Änderungen werde ich hier jetzt nicht so genau eingehen, die sind eurer Kreativität überlassen ;) Wichtig sind dabei Hitclass (wird von manchen Missiles bestimmt, um den Sound beim Treffen eines Monsters zu bestimmen), Travelsound, Hitsound, die Farben (bestimmt nur die Farben des Leuchtens um den Skill!), Light und Celfile.


Die meisten Cast-Angriffsskills haben ja bereits eine Missile, die man verändern kann, man kann den meisten Angriffsskills auch einfach eine hinzufügen, die dann mit dem Schlag ausgelöst wird:
Einfach die gewünschte Missile in die Spalten "SrvMissile" und "CltMissile" eintragen.

Um die Verknüpfungen und Wirkweisen der Missiles zu verstehen, sollte man einfach mal die Liste der Missilefunktionen (oben aufgelistet) überfliegen - je nach Missiletyp können Missiles beim Kollidieren mit einem Gegner, beim explodieren usw. "Submissiles" hervorrufen.

PcltDofunc und Psrvdofunc bestimmen das Verhalten während der Bewegung der Missile. Stehen hier 1 und 1, fliegt das Ding einfach gerade aus. 19 und 15 zum Beispiel würden eine Hauptmissile erzeugen, die in einem bestimmten Zeitintervall kreisförmig Untermissiles verschießt (Frozen Orb)

pCltHitFunc/pSrvHitFunc bestimmen das Verhalten, wenn das Geschoss auftrifft oder explodiert. 30/29 (Frozen Orb) zum Beispiel verursachen das "Platzen" des Orbs mit dem Feuern der Untergeschosse in alle Richtungen. Die meisten neuen Novaskills werden über dieses Platzen generiert. 25/20 hingegen verursacht das Aufsplitten wie bei Lightning Fury.

pSrvDmgFunc ist die Schadensfunktion des Geschosses. Wird nur in Spezialfällen genutzt - wie zum Beispiel zur Konvertierung des Waffenschadens in Elementarschaden (Magic Arrow/AoE Amok)


Im Anhang finden sich zwei spezifische Beispiele hierzu.


------
Anhang


Formeln
Das min(Formel,Maximum) bedeutet, dass der Wert aus der Formel genutzt wird, bis sie den Maximalwert übersteigt, dann wird der Maximalwert genommen.
Das lvl ist einfach das Level des Skills
Will man andere Werte als Basis nehmen, kann man auch stat('irgendwas aus der itemstatscost.txt'.xxx) nehmen, wobei das xxx entweder für .base (der unmodifizierte Wert) .accr (der Wert mit Itemmodifikatoren etc.) und .mod (--> accr - base) stehen kann.
Will man den Skill auf einem anderen Skill basieren, ists skill('irgendein Skillname aus der Skills'.xxx), wobei xxx für blvl (nur gesetzte Punkte) oder lvl (das Level des Skills mit Items etc.) stehen kann.

Es ist zu beachten, dass nicht alle Felder Formeln zulassen. Manche nutzen nur feste Zahlenwerte und wandeln eingegebene Formeln ebenfalls in Zahlen um. Ist mir selbst passiert, als ich den Srcdmg-Wert, also wie viel % des Waffenschadens genutzt werden, per Level ansteigen lassen wollte.



Missiles-Beispiel
Nehmen wir als Beispiel mal den Giftdolch aus RoS: Beim Treffen eines Gegners spawnt dieser Skill kleine fliegende Dolche, die sich nach Lightningfury-Muster ausbreiten und Giftwolken hinter sich herziehen.

Dazu kopiert man in der Missiles.txt erstmal die Spalten "Lightningfury", "poisonjav", "poisonjavcloud" und benennt sie um, bei mir heißen sie lightningfurypsn, poisonjavnec und poisonjavcloudnec, und trägt diese in der Skills.txt bei Srvmissile und Cltmissile des Skills "Poison Dagger" ein.

Bei Shitpar1/2 und Chitpar1/2 kann man bestimmen, wie weit sich das Dingen ausbreitet, soll ja nicht so viele Gegner treffen wie LF.
Als Cellfile, die bestimmt das Aussehen des Skills, nimmt man "MissileDagger".
In Hitsubmissile1 und Clthitsubmissile1 kommt nun "poisonjavnec", die Missile, die unser fliegender Dolch beim Auftreffen erzeugen soll.
In der Zeile Poisonjavnec ändern wir die Celfile auch zu MissileDagger und tragen bei Submissile1/CltSubmissile1 poisonjavcloudnec ein - diese Missile sorgt für die Giftwolke, die der Dolch hinter sich herzieht.

In der Spalte "Skill" muss man bei allen drei natürlich "Poison Dagger" eintragen, damit die Missiles auch den in der Skills.txt eingetragenen Schaden übernehmen.



Angenommen, man will die Singletargetattacke Amok durch einen Flächenschaden (=Area of effect=AoE) aufwerten. Da ein Barb eher auf den Waffenschaden als auf seine Skillpunkte achtet, sollte der Schaden dieser Missiles auf dem Waffenschaden basieren, muss aber auch in Magieschaden umgewandelt werden.
Hierfür gibt es zum Glück die Damagefunctions (finden sich auch auf der MissileFunction-Liste). Die Damagefunction mit der Nummer 1 nämlich konvertiert einen Prozentsatz des Schadens zu der in der Spalte "EType" bestimmbaren Schadensart - wie beim Feuerpfeil der Amazone.

Wenn man nicht einfach ein Geschoss haben will, dass geradeaus in Schlagrichtung fliegt, sollte man sich eine Missile machen, die den Schaden verteilt - hier wird oft der Frozen Orb genommen, da er in einer Nova endet.
Gehen wir also das Beispiel meiner Amok-Nova aus Knochenspeeren durch:

Zuerst kopiert man die Zeilen "frozenorb" und "bonespear" und benennt diese um - frozenorbB und bonespearB - und trägt frozenorbB bei Berserk in der Skills.txt in die Spalten cltmissile und srvmissile ein.

Will man nur eine Nova haben, setzt man Range auf 1 und Vel auf 0 - was bewirkt, dass der Frozen Orb sich nicht fortbewegt und in eine Nova aufgeht.
Praktischer und sinnvoller ist es aber, die Nova in etwa dort spawnen zu lassen, wo der Schlag trifft, also erhöht man den "Vel"-Wert, bis der Effekt passend erscheint.

Die Celfile setzt man auf "null", in "Skill" trägt man "Berserk" ein, entscheidend sind aber Submissile, Hitsubmissile, Cltsubmissile und clthitsubmissile, die bestimmen, welche Geschosse der Orb beim Bewegen und welche beim Platzen verschießt. Hier trägt man natürlich bonespearB ein.

Der BonespearB bekommt in der Psrvdmgfunc - wie angekündigt - eine 1, um den Schaden zu konvertieren. In Dmgcalc1 trägt man dl12, in dparam1 100 und in dparam2 0 ein - das heißt, dass 100 der Basiswert ist und 0 pro Level dazukommen. Kann man zwar ändern, aber Amok macht ja sowieso von Anfang an den vollen Magieschaden.
Bei Vel und Range, also Geschwindigkeit und Dauer, muss man nun einen Wert finden, der gut aussieht und so viele Monster trifft wie gewünscht. Da kommt man ums viele Testen nicht drumrum. Bei mir sinds 6 und 15.
Die Spalte Initsteps bestimmt, ob die Missile erst etwas verzögert erscheint. Die meisten Missiles haben da eine 0, ich hab da eine 8 stehen, damit die Missiles nicht alle das geschlagene Monster sondern eher die umliegenden treffen.
Ich hatte trotzdem das Problem, dass das geschlagene Monster von sehr vielen Missiles getroffen wurde und so ein Vielfaches des Amokschadens abbekommen hat, um das zu verhindern, trägt man bei Nexthit 1 und bei Delay 4 ein, so dass ein und das selbe Monster nur alle 4 Frames Schaden von dieser Missile bekommen kann.
In die Spalte "Skill" kommt wie gehabt "Berserk" und in EType "mag".

Will man den Skill abschwächen bzw. castet er zu viele Hit-skills, kann man bei shit- und chitpar1 den Increment-Wert erhöhen, wodurch weniger Missiles gecastet werden. Es empfiehlt sich auch, "tohit" und "collidekill" auf 1 und Returnfire auf 0 zu setzen, wobei das nicht immer funktioniert -> dadurch wird die Missile kontrollierter, trifft nicht immer und nicht so viele Gegner und löst auch keine Konterattacken von Frostrüstung etc. aus.
 
Skillfunktion

da sollte vielleicht noch ne liste her, was hier welche Funktion macht


und die missilefunktionen... gut, da is die liste in nem link, wär aber trotzdem gut, wenn das auch im thread selbst stehen würde

ansonsten noch das hier ausbessern:
m Anhang finden sich zwei spezifische Beispiele hierzu.


------
Anhang[/Anhang]


Formeln


ansonsten hab ich gerade nix gefunden, komm atm auch nicht wirklich dazu selbst mal was auszuprobieren^^
 
Zurück
Oben