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

[Guide] Erzeugen neuer passiver Skills

Stolperhannes

Well-known member
Registriert
5 April 2004
Beiträge
1.502
Punkte Reaktionen
0
The Phrozen Keep Forum Index -> Knowledge Base -> Tutorials -> Tutorials (1.10-1.11x) -> Skill Mechanics
Erzeugen neuer passiver Skills(by GuyAskingQuestion)

Funktion dieses Guides: Ich erzeuge einen neuen passiven Paladinskill, der ihm crushing blow gewährt. Danach gebe ich ihm den Namen "Crush". (Zermalmen)

Author Phrozen Heart
Date Fri May 04, 2007 2:25 am
Type Tutorial

Category Skill Mechanics

Quelle

Erzeugen neuer passiver Skills(by GuyAskingQuestion)



Die folgenden Dateien werden benötigt:

Skills.txt
Skilldesc.txt
States.txt
Patchstring.tbl, Expansionstring.tbl oder String.tbl
(Anm. In der Regel wird Patchstring.tbl verwendet. thx an destrution)


Die folgenden Tools werden benötigt:

Tabbed text editor (Excel, D2Excel, Afj)
String table editor (Peer TBL, Enquettar, Afj, Joel's)



Zuerst wollen wir den neuen Skill erzeugen

Ich erzeuge einen neuen passiven Skill, der dem Paladin vernichtenden Schlag (crushing blow) gewährt. Danach gebe ich ihm den Namen "Crush".

Man öffnet skills.txt mit dem gewählten Tabbed Text editor, geht runter bis Eisenhaut (Zeile 147), und kopiert die komplette Zeile. Nun fügt man diese Zeile am Ende von skills.txt ein. Wenn neue Skills nicht am Ende der Datei angefügt werden, kann das Probleme verursachen.

Benenne skill, skilldesc und passivestate in Crush um (oder den gewählten Namen des neuen passiven Skills). Man beachte, dass das die Einträge, die in den verschiedenen Zellen eingetragen werden, in anderen Dateien wieder verwendet werden müssen. Du solltest wissen was du in diese Zellen geschrieben hast, der Eintrag in der Skill Spalte ist der, der für einige Eigenschaften wie oskill, hitskill ect verwendet wird. Der Eintrag unter skilldesc wird der Eintrag in skilldesc.txt und der Eintrag unter passivestate wird der Eintrag in states.txt.


Ändere die Id zur nächsthöheren unbenutzten Nummer, trage unter charclass den Namen des Characters ein, der diesen Skill benutzen wird.

Charclass Codes

ama -> Amazon
ass -> Assassin
bar -> Barbarian
dru -> Druid
nec -> Necromancer
pal -> Paladin
sor -> Sorceress

Gehe bis passivestat1 in dieser Zeile. passivestat1 enthält die Eigenschaft, den der passive Skill gewähren soll. Diese Eigenschaft wird aus der stat1 Spalte von Properties.txt gewählt, so dass sie sich von denen unterscheiden, die wie z.B. beim Erzeugen von unique items verwendet werden. Die stat-Spalten verweisen auf itemstatcost.txt. Für einige Eigenschaften wie z.B. Widerstand gegen alles (res-all) benötigt man mehr als einen passivestat-Eintrag. Für einen Widerstand gegen alles Skill benötigt man für jeden einzelnen Widerstandstyp einen eigenen Eintrag (Ausnahme ist Widerstand gegen Magie). Jeder passivestat benutzt dann die gleiche Formel für die Skillentwicklung. Etwa so:

passivestat1 -> poisonresist
passivecalc1 -> dm12
passivestat2 -> fireresist
passivecalc2 -> dm12
passivestat3 -> coldresist
passivecalc3 -> dm12
passivestat4 -> lightresist
passivecalc4 -> dm12

(Anm. Unterschiedliche Formeln sind möglich)

Hier wird item_crushingblow eingetragen. Man kann hier jeweils die Fähigkeit eintragen, die man für einen eigenen passiven Skill verwenden will.

Danach kommt passivecalc1 dran. Diese Spalte beschreibt wie der Bonus berechnet wird. Es gibt zwei einfache Berechnungen, die man in diese Spalte einfügen kann: ln12 oder dm12. Aber es gibt auch sehr viel komplexere, die man in skillcalc.txt findet. Dort kann man auch seine eigenen Formeln einsetzen, wie z.B. modifizierte dm-Formeln mit günstigeren Rückgabewerten bei der Skillentwicklung. Man kann alle vorgefertigten Formeln in den eigenen Formeln verwenden und weiterhin Formeln hinzufügen, wie z.B.:

ln12 + dm34

ln12 heißt: Auswerten was in par1 eingetragen ist, dann addiere für jedes Skilllevel par2 dazu. Man denke dabei an den Feuerbeherrschung-Skill (Fire Mastery), der eine gewisse Menge an Feuerschaden anderen Feuerskills auf Skilllevel 1 hinzufügt und dann für jeden Skilllevel weiter den Schaden erhöht. (Anm. mathematisch betrachtet lineare = geradlinige Funktion. Kann mit jedem Skillpunkt immer weiter um den gleichen Wert gesteigert werden. Es gibt keine Grenze)

dm12 bedeutet, dass par1 der Anfangswert ist und par2 der Maximalwert. Das Spiel verwendet eine komplexe Formel um die Skillentwicklung für jeden Level des Skills zu berechnen. Man denke daran wie die 1.09 Kältebeherrschung (Cold Mastery) arbeitete, oder wie es Natürlicher Wiederstand (Natural Resist) tut. (Anm. mathematisch betrachtet eine Funktion, die in immer kleiner werdenden Schritten einen Grenzwert anstrebt, diesen jedoch niemals überschreiten kann, egal wie viele Punkte man investiert)

Hier fügte ich ln12 ein, weil ich diese Art von Skillsteigerung wollte. Ich empfinde dm-artige Skills mehr als Ein-Punkt-Wunder ("one point wonders"), in die Spieler normalerweise nur sehr wenige Punkte investieren und dadurch schon starke Wirkung haben.

Gehe weiter zu reqlevel in dieser Zeile. reqlevel bestimmt den Mindestlevel um diesen Skill zu aktivieren. Aus Testzwecken setze ich ihn auf 1. Danach kommt gleich daneben die Spalte maxlvl, in welche der maximale Level des Skills eingetragen wird. Ich setze hier 30 ein, weil dies maximalen Skilllevel meiner Charactere entspricht. Man kann hier jede Zahl eintragen, die einem gefällt.

Gehe jetzt sehr viel weiter in dieser Zeile zu Param1. Das ist der bereits früher beschriebene par1. Hier trage ich 10 ein. In Param1 Description darf man nichts eintragen. Es ist einzig und alleine eine Bezugszelle (refrence cel). Danach kommt Param2 in die ich 2 eintrage. Das ist der Wert um der mein Skill pro Level anwachsen soll.
Auf diese Weise erzeuge ich eine Skillentwicklung wie diese:

lv 1 10% Crushing Blow
lv 2 12% Crushing Blow
lv 3 14% Crushing Blow
usw.

Wenn man dm12 in passivecalc1 einsetzt, dann sollte man sicherstellen, dass Param2 größer ist als Param1, sonst wird der Skill immer schwächer pro Level.
dm12-artige skills entwickeln sich folgendermaßen:
lv 1 ~10 (benutzt meine 10 in param1)
lv 2 18
lv 3 22
lv 4 23

Sie geben bei der Skillentwicklung immer geringere Boni, bis sie nahe unter dem Param2-Wert sind, ab wo dann nahezu kein Effekt mehr mit weiteren investierten Skillpunkten erzielt werden kann.

Hier ist die Bearbeitung von skills.txt beendet. Datei sichern und schliessen.



Als nächstes wird state.txt bearbeitet.

Öffne States.txt

Es ist sehr einfach diese Datei zu bearbeiten. Es muss nur eine neue Zeile am Ende der Datei mit dem Namen des Skills angefügt werden (oder der Eintrag, der in passivestate eingetragen wurde). Bei mir war das Crush.

Man setze eine 0 (Null) nach Eol (Original: under EoL. End of Line = Zeilenende) und ist fertig.

Datei sichern und schliessen.



Nun zu skilldesc.txt

Die Bearbeitung dieser Datei benötigt normalerweise eine gewisse Zeit. Die Bearbeitung zwar einfach, aber es gibt einiges zu beachten.

Kopiere den Ironskin-eintrag (Eisenhaut) und füge ihn am Ende der Datei an.

Man benenne ihn in den Namen des neuen Skills um (oder was man unter skilldesc in der Datei skills.txt eingetragen hat). Ich trage hier Crush ein.

Skillpage ist die Seite wo der Skill erscheinen wird. Schaue nach den anderen Skills, die der Character auf der gewünschten Seite benutzt um die richtige Seite zu bestimmen. Ich setze Crush auf die Paladins Kampfskill Seite, also trage ich hier eine 1 ein. Dies ist der gleiche Eintrag wie bei dem Skill Eifer (Zeal), welcher ja auf der gleichen Seite zu finden ist.

Skillrow, die Skillzeile gibt an wie weit unten der Skillbutton im Baum angeordnet ist. Mein Crush-skill soll ein Level 1 Skill sein, deshalb setzte ich ihn auf die Position eines Level 1 Skills. Ich trage hier eine 1 ein.

Skill Page Value (Wert), Skill Lv Requirment (benötigter Level)

1,1
2,6
3,12
4,18
5,24
6,30

Als nächstes kommt Skillcolumn, die Skillspalte dran. Diese setzt den Skillbutton auf die rechte Seite (1), zentriert ihn (2) oder setzt ihn auf die linke Seite (3) im Skillbaum. Hier trage ich eine 2 ein, weil an dieser Stelle kein anderer Paladinskill angeordnet ist.

ListRow, die Listenreihe ist nicht wichtig für passive Skills, so dass man sie nicht auswählen kann/sollte/muss. (as you cannot select them.? Anm. Es wäre für mich ungewöhnlich wenn man in einem Editor einen Wert zum ändern nicht auswählen könnte)

IconCel ist die Nummer der Grafik, die für diesen Skillbutton verwendet wird. Der Einfachheit halber ist es am besten eine Grafik eines anderen Skills von diesem oder einem anderen Character zu verwenden. Man kann eine eigene Grafik mit Hilfe eines DC6-Editors hinzufügen, aber das würde in diesem Guide zu weit führen.

Str name, Str short, str long und str alt sind die Skillbeschreibungen, die man im Spiel lesen kann. Kopiere die letzten Skilleinträge (Royal Strike wenn Datei bisher nicht gemodded wurde) und addiere 1 zu den Zahlen. Das sind die Einträge, die später der Stringtabelle hinzu gefügt werden müssen.

Gehe zu decline1 in dieser Zeile, das ist die Stelle wo das Spiel dir sagt was für ein Effekt dir dieser Skill bietet. Eisenhaut (Iron skin) hat eine ziemlich komplizierte Methode um sich selbst zu beschreiben, deshalb ändern man sie auf so eine Weise ab, dass es einfacher wird eine eigene Beschreibung hinzu zu fügen.

Trage 2 in descline5 ein, das beschreibt wie das Spiel den nächsten Teil der Einträge liest.

desctextb1 Kann benutzt werden um damit fest zu legen ob ein Prozentzeichen "%" nach dem Skill angegeben werden kann oder nicht. Wenn man ein Prozentzeichen will, wie ich für meinen Skill Crush, dann muß man hier StrSkill23 eintragen. Wenn man kein Prozentzeichen will, dann muss man hier einen Platzhalter eintragen, der auch in der Stringtabelle in String.tbl angegeben werden muss. Beispielsweise trägt man hier nosign! hier ein. Das Ausrufezeichen wird nur verwendet falls Blizzard den Begriff "nosign" in der Stringtabelle verwendet und man deshalb Beschreibungen bekommen kann, die man gar nicht will.
Den Platzhalter nicht vergessen, wenn man einen benutzt.

Desctexta1, sagt dem Spiel was anzuzeigen ist. Beispielsweise hat Eifer (Zeal) StrSkill30 in einem seiner Einträge. Das läßt das Spiel "Attack rating" oder "Bonus to attack rating" anzeigen.

Man kann nach einem Skill suchen, der die gleichen Boni bringt, wie der neue passive Skill, den man verwenden will. Aber normalerweise mache ich hier meine eigenen Einträge. (Original: You can look for a skill description with the same bonus your looking for, but I usually make my entry here up. Anm. Hmmm, keine Ahnung. Möglicherweise fehlt hier ein Spaltenname, auf den sich dieser Eintrag bezieht, den zu Desctexta1 kann dieser Absatz nicht gehören, weil er da schon StrSkill30 einträgt) Weil ich Crushing Blow will, trage ich hier crush ein. Man beachte: Egal was hier eingetragen wird muss auch in String.tbl hinzugefügt werden.

Desccalca1, sollte das sein was man unter Passivecalc1 in skills.txt einträgt. Normalerweise entweder ln12 oder dm12.

Wenn alles getan ist kann man die Datei sichern und schliessen.

Jetzt String.tbl bearbeiten
Jetzt kann man die Skilleinträge hinzufügen. Öffne die Tabellendatei und füge folgendes hinzu:

Str name -> Der Skillname (Crush)
Str short -> Eine Kurzbeschreibung was er tut (Fügt Vernichtender Schlag hinzu)
str long -> Eine längere Beschreibung was er tut (Blah blah blah, Je nach Geschmack)
str alt -> Der Skillname (Crush)
nosign! (oder anderen Platzhalter) -> Absolut nichts eintragen!
Der desctecta1 Eintrag (crush) -> Das was der Skill tut, mit einem angefügten Leerzeichen (Crush )

Mit Hilfe dieses Guides sollte es ihnen möglich sein soviele passive Skills den Characteren hinzuzufügen wie man wünscht. Man sollte aber daran denken, dass alle Charactere die gleiche Anzahl von Skills haben müssen, den sonst ist nur noch der Character mit den meisten Skills benutzbar.
 
schön, dass du dich ans übersetzen machst :)
Patchstring.tbl, Expansionstring.tbl oder String.tbl (Anm. Entweder oder? Der Zusammenhang ist mir nicht klar)
Patchstring.tbl reicht, die anderen beiden könnte man theoretisch auch verwenden, nur in der Praxis wird generell die patchstring verwendet
Remeber what you put in these cels, your skill entry will be what you use for some item properties, such as oskill.
Du solltest wissen was du in diese Zellen geschrieben hast, der Eintrag in der Skill Spalte ist der, der für einige Eigenschaften wie oskill, hitskill ect verwendet wird.
So würd ichs machen (neben oskill noch ein 2. beispiel angeführt), kannst aber eigentlich auch so stehen lassen.
Um das zu verstehen sollte man auch wissen wie die Itemproperties aufgebaut sind. Die oskill Properti ist so aufgebaut
prop: oskill
par: id aus der besagten skill Spalte der Skills.txt
min/max: minimum, maximum Skilllvl
Das wirst du sicherlich auch noch lernen wenn du eigene Items (uniques sets) erstellst ;)
bar -> Barbarian dru -> Druid
Zeilenumbruch nicht vergessen :p
(Anm. Ich weis nicht, ob man unterschiedliche Formeln verwenden darf. Z.B. Nimmt Feuerwiderstand per anderen Formel überproportional zu, während andere Widerstandsarten langsamer zunehmen oder sogar abnehmen? Wie wäre es zum Beispiel - rein theoretisch gesehen - mit einem Vernichtenden Schlag Skill der abnehmenden Blitzwiderstand beinhaltet?)
zu Formeln in den txt dateien lies mal das da
Dort/Hier? kann man auch seine eigenen Formeln einsetzen (Original: "here" Anm. Ich weis nicht in wieweit der Begriff rückbezüglich gemeint war)
Dort
Man kann hier jede Zahl eintragen, die einem gefällt. (Anm. Wirklich?)
ja, was man eben für Sinnvoll hält was das maximum Skilllvl angeht^^
(Original:But remember every character must have the same number of skills, otherwise only the character with the most will be usable. Anm. Brauchbar oder benutzbar ist schon ein Unterschied)
benutzbar, bei den anderen Chars gibts sonst einen crash^^
 
thx destrution.

Ich werde den Guide in Kürze entsprechend ändern. Aktuell mach ich... RL :D

Hast du diesen Abschnitt gesehen?

"ListRow, die Listenreihe ist nicht wichtig für passive Skills, so dass man sie nicht auswählen kann/sollte/muss. (as you cannot select them.? Anm. Es wäre für mich ungewöhnlich wenn man in einem Editor einen Wert zum ändern nicht auswählen könnte)"
 
damit ist die Reihe gemeint, die bei der Skillauswahl der Skillbuttons eine Rolle spielt...
weder links noch rechts wirst du jemals passive Skills finden ;)
 
Zurück
Oben