• 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]: Monster mit bis zu 3 Zufallsimmunitäten

destrution

Well-known member
Ex-Staffmember
Registriert
20 Oktober 2000
Beiträge
6.839
Punkte Reaktionen
2
Monster mit 1, 2 oder 3 Zufallsimmunitäten


Nachdem ich es nun geschafft habe, dies wirklich zu realisieren will ich euch hier beschreiben, wie man die Monster mit bis zu 3 Immunitäten ausstattet.
Dieses Tutorial ist auf der Basis von Nefarius’ Random Resistances/Immunity System aufgebaut.

Um das hier machen zu können, müsst ihr euch nur mit D2Excel oder ähnlichen Programmen auskennen können. Des Weiteren wären ein paar grundsätzliche Moddingkenntnisse nicht schlecht :)

Inhalt:

1. Benötigtes Programm
2. Benötigte Dateien
3. Beginnen wir mit einfachen Immunitäten
3.a) Der Aurastate machen
3.b) Die Stats randomres und randomresvalue
3.c) Die zufälligen Resistenzen/Immunitäten machen
3.d) Die Resistenzen den Monstern zuweisen
4. Weiter gehts mit der zweiten und dritten Immunität
4.a) Die Stats machen
4.b) Die zweite und dritte Immunität machen
4.c) Die Resistenzen den Monstern zuweisen
5. Probleme?

1. Benötigtes Programm:

D2 Excel oder AFJ Sheet Editor oder sowas in der Art^^

2. Benötigte Dateien:
States.txt
Itemstatcost.txt
Properties.txt
Skills.txt
Monprob.txt
Monstats.txt


3. Beginnen wir mit einfachen Immunitäten
Die Monster werden ihre Immunitäten durch eine Aura erhalten. Aber da die Aura unsichtbar sein soll, müssen wir erst einen Aurastate machen, der keine Grafik hat. Des Weiteren müssen wir ein paar neue Stats machen. Warum werdet ihr im Verlauf dieses Tutorials schon merken.
Nun lasst uns erstmal

3.a) Den Aurastate machen
Hierfür öffnen wir die States.txt, machen eine neue Zeile und tragen dort folgendes ein:
State: randomres
Id: nächstbeste id (184 in einer unmodifizierten Datei)
Aura: 1
Immed: 1
Eol: 0
States.txt speichern und schließen.

Nun machen wir

3.b) Die stats randomres und randomresvalue
Erstmal öffnet ihr die Itemstatcost.txt, macht 2 neue Zeilen und tragt folgendes ein:

Zeile1:
Stat: stat_randomres
Id: nächstbeste id (359 in einer unmodifizierten Datei)
Signed: 1
Send Bits: 3
Divide: 1024
Save Bits: 3
Eol: 0

Zeile2:
Stat: stat_randomres_value
Id: nächstbeste id (360 in einer unmodifizierten Datei)
Signed: 1
Send Bits: 8
Divide: 1024
Save Bits: 8
Eol: 0

Erklärung:

Zeile 1 Send/Save Bits:
Da wir einen Wert von 1 bis 6 für diesen Stat brauchen (warum werde ich später erklären) müssen wir hier eine 3 eintragen. So hat dieser Stat einen maximalen Wert von 8 (2^3).

Zeile 2 Send/Save Bits:
Ich habe hier eine 8 eingetragen, so hat der Stat einen Maximalwert von 256 (2^8). Hier ist wahrlich keine größere Zahl von nöten. Natürlich könnte man hier was Niedrigeres eintragen, aber dann könnte man nicht so viel an Resistenzen haben. Bei einer 7 beispielsweise wäre der Maximalwert 2^7=128.

Speichert und schließt nun die Itemstatcost.txt und öffnet die Properties.txt. Hier macht ihr ebenfalls 2 neue Zeilen, in denen ihr folgendes eintragt:

Zeile 1:
Code: randomres
*done: 1 (nicht unbedingt von nöten, ist reine Beschreibung^^)
func1: 1
stat1: stat_randomres
Eol: 0

Line 2:
Code: randomres-value
*done: 1 (nicht unbedingt von nöten, ist reine Beschreibung^^)
func1: 1
state1: stat_randomres_value
Eol: 0

Speichert und schließt nun die Properties.txt.

Da wir nun alles nötige für unsere Aura haben, werden wir nun

3.c) Die zufälligen Resistenzen/Immunitäten machen
Öffnet die Skills.txt, macht eine neue Zeile und schreibt folgendes rein:
Skill: randomresistances
Id: nächstbeste id (357 in einer unmodifizierten Datei)
Srvdofunc: 65
Aurafilter: 65795
Aurastate: randomres (der State den wir zuvor in der States.txt gemacht haben)
Aurarangecalc: 1
Aurastat1: fireresist
Aurastatcalc1: ((clc1 == 1) ? clc2 : 0)
Aurastat1: coldresist
Aurastatcalc2: ((clc1 == 2) ? clc2 : 0)
Aurastat1: poisonresist
Aurastatcalc3: ((clc1 == 3) ? clc2 : 0)
Aurastat1: lightresist
Aurastatcalc4: ((clc1 == 4) ? clc2 : 0)
Aurastat1: damageresist
Aurastatcalc5: ((clc1 == 5) ? clc2 : 0)
Aurastat1: magicresist
Aurastatcalc6: ((clc1 == 6) ? clc2 : 0)
Immediate: 1
Enhanceable: 1
Range: none
Monanim: xx
Reqlevel: 1
Aura: 1
Perdelay: 50
Calc1: stat('stat_randomres'.accr)
*Calc1 desc(nicht unbedingt von nöten, is nur beschreibung): random resistance (1-6)
Calc2: stat('stat_randomres_value'.accr)
*Calc1 desc(nicht unbedingt von nöten, is nur beschreibung): value to add to random resistance
InGame: 1
HitShift: 1
Cost mult/add: 0

Erklärung:

Die ((clc1 == x) ? clc2 : 0) Funktion
Kennt ihr die „wenn” Funktion in MSExcel? Dies ist die „wenn“ Funktion für das Spiel. Ihr müsst sie folgendermaßen lesen:
Wenn calc1 den Wert x (in unserem fall eine Zahl von 1-6 (nun wisst ihr, warum wir diesen Wert für den randomres Stat gebraucht haben)) annimmt, benutzt das Speil den calc2, ansonsten hat es den Wert 0.
Woher das Spiel diese 2 Werte von calc1 und 2 hernimmt, seht ihr, wenn wir zur Monprob.txt kommen.

Die Funktion stat('stat_randomres'.accr)
Diese Funktion bewirkt, dass unsere Stats benutzt werden. Woher die Werte dafür kommen, seht ihr dann in der Monprob.txt.

Speichert und schließt die Skills.txt.

Da wir nun unsere Resiaura haben, können wir nun

3.d) Die Resistenzen den Monstern zuweisen
Öffnet die Monprob.txt, macht eine neue Zeile und gebt folgendes ein:
Id: randomresist
Prob1: randomres
Min1: 1
Max1: 6

Prob2: aura
Par2: (Eure skills.txt id; 357 in einer unmodifizierten Datei)
Min2/max2: 1
Prob3: randomres-value
Min3/max3: siehe Erklärung
Das selbe nun für alp und hölle
Eol: 0

Erklärung:

Prob1 Min1 Max1
Das Spiel wählt hier zwischen den einzelnen resistenzen eine aus, was man von den „wenn” Funktionen in der Skills.txt ersehen kann:
1=Fireresistance
2=Coldresistance
3=Poisonresistance
4=Lighningresistance
5=Damageresistance
6=Magicresistance

Min3/max3
Dies ist der minimale und maximale Wert von den Resistenzen die das Monster haben wird. Wenn ihr z.B. 50/150 reinschreibt hat das Monster eine 50<>50 chance immun zu werden. Schreibt rein was ihr wollt aber denkt dran, dass die maximale grenze bei 256 steht. Ihr könnt auch mehrere Probs machen, um verschiedenen Monstern verschiedene Werte zu geben. Zum Testen beforzuge ich beide Spalten auf 250 zu setzen, wobei die Monster auf jeden Fall immun werden.

Nun speichert und schließt die Monprob.txt und öffnet die Monstats.txt. Hier schreibt ihr die Id von der Monprob.txt in die monprob Spalte von den Monstern, die diese Resistenzen erhalten sollen. Zum testen geben wir die Prob allen Blutmoormonstern: Fallen1, Zombie1 und Quillrat1.

Nun speichert und schließt die Monstats.txt und öffnet das Spiel. Ihr werdet viele verschiedenen Immunitäten begegnen :)

4. Weiter gehts mit der zweiten und dritten Immunität
Wenn nun alles funktioniert lasst uns nun mit den Mehrfachimmunitäten weitermachen, sodass die Spieler eurer Mod noch mehr „spass” in den weiteren Schwierigkeitsgraden haben^^
Dafür müssen wir aber erst wieder

4.a) Die Stats machen
Ja, wir brauchen mehr stats, weil wir andere Werte für jede weitere Immunität brauchen. Öffnet deshalb nun wieder die Itemstatcost.txt, macht 2 neue Zeilen und kopiert den randomres Stat rein. Danach ändert ihr die 3 in Send und Save Bits in eine 4 in der ersten Zeile (wir brauchen dort einen Wert von 7-12) und in eine 5 in der zwiten Zeile (wir brauchen dort einen Wert von 13-18). Danach ändert ihr den Namen auf stat_randomres2 in der ersten Zeile und stat_randomres3 in der zweiten Zeile.
Speichert und schließt die Itemstatcost.txt und öffnet die Properties.txt. Hier macht ihr auch 2 neue Zeilen und kopiert wieder die randomres Zeile hinein. Dann schreibt ihr auch hier eine 2 in die erste und eine 3 in die zweite Zeile hinder den Namen und Stats.
Speichert und schließt nun die Properties.txt.

Da wir die Stats haben können wir nun

4.b) Die zweite und dritte Immunität machen
Öffnet die Skills.txt und editiert die schon vorhandene randomresistances Zeile:

Fügt zu den Aurastatcal Spalten folgendes hinzu:
1. ((clc1 == 1) ? clc2 : 0)+((clc3 == 7) ? clc2 : 0)+((clc4 == 13) ? clc2 : 0)
2. ((clc1 == 2) ? clc2 : 0)+((clc3 == 8) ? clc2 : 0)+((clc4 == 14) ? clc2 : 0)
3. ((clc1 == 3) ? clc2 : 0)+((clc3 == 9) ? clc2 : 0)+((clc4 == 15) ? clc2 : 0)
4. ((clc1 == 4) ? clc2 : 0)+((clc3 == 10) ? clc2 : 0)+((clc4 == 16) ? clc2 : 0)
5. ((clc1 == 5) ? clc2 : 0)+((clc3 == 11) ? clc2 : 0)+((clc4 == 17) ? clc2 : 0)
6. ((clc1 == 6) ? clc2 : 0)+((clc3 == 12) ? clc2 : 0)+((clc4 == 18) ? clc2 : 0)

(Ihr müsst nur das Unterstrichene zu den bereits exestierenden Formeln hinzufügen)
Schreibt diese Funktion in die calc3 Spalte: stat('stat_randomres2'.accr)
Die Beschreibung (nicht unbedingt von nöten): random resistance (7-12)
Schreibt diese Funktion in die calc4 Spalte: stat('stat_randomres3'.accr)
Die Beschreibung (nicht unbedingt von nöten): random resistance (13-18)

Wie ihr sehen könnt, habe ich die Funktionen für die zweite und dritte Immunität nur zu der bereits exestierenden hinzugefügt. Das Spiel wird nun bis zu 3 verschiedene Kalkulatoren haben, die die Resistenzen aussuchen. Die Anzahl der Kalkulatoren ist in der Monprob.txt festgelegt.

Und nachdem wir die Skills.txt nun gespeichert und geschlossen haben, können wir nun zu dieser txt gehen und

4.c) Die Resistenzen den Monstern zuweisen
Ihr müsst nur die exestierende randomresist Zeile editieren. Fügt folgendes hinzu:
Prob4: randomres2
Min4: 7
Max4: 12

Hier speichern wir erstmal und öffnen das Spiel. Du wirst nun alle Monster im Blutmoor mit 2 Immunitäten antreffen (wenn du die einfache Immunität getestet hast wie ich es oben beschrieben habe). Aber wir können ja noch weitermachen und eine dritte Immunität erstellen :)

Prob5: randomres3
Min5: 13
Max5: 18

Nun gibt es dort Dreifachimmune. Ist dies nicht der Fall, schaut mal in den Problemteil dieses Guides, gleich unter diesem Punkt.

Nun könnt ihr die immunitäten machen wie ihr wollt. Und denkt immer daran:
Die Anzahl der Immunitäten hängt von der Monprob.txt ab. Wenn ihr nur die randomres prob benutzt gibt es nur eine, wenn ihr randomres und randomres2 benutzt gibt es bis zu 2 und wenn ihr randomres, randomres2 und randomres3 benutzt gibt es bis zu 3 immunitäten.

5. Probleme?
Problem: Ich habe 3(2) immunitäten eingestellt aber manchmal tauchen nur 2 oder 1 auf.
Antwort: Dass kommt daher, dass die Kalkulatoren manchmal den selben Wert annehmen. Wenn z.B. calc1 den Wert 1 und calc3 den Wert 7 annimmt, haben beide die Feuerresistenz gewählt.

Problem: Die Immunitäten tauchen garnicht erst auf.
Antwort: Stelle sicher, dass du die id in der Monprob Spalte der Monstats.txt richtig geschrieben hast. Ein einziger Fehler und nichts funltioniert. Stellt ebenfalls sicher, dass ihr die richtigen ids in den txts verwendet habt. Und achtet auch darauf, dass eure Einträge in den richtigen Spalten stehen. Das ganze Ding funktioniert nicht, wenn ihr was in die chance und par Spalten schreibt, was in min/max reingehört^^

Problem: Die Immunitäten wechseln ohne jeden Grund.
Antwort: Das ist ein Problem des systems. Wenn du ein Monster aktivierst und weggehst (z.B. zur Stadt) und dann wiederkommst, werden die Kalculatoren wieder neu aktiv und wählen andere Zahlen aus und somit auch andere resistenzen.

Problem: Es funktioniert alles, aber nun funktionieren ein paar andere Skills nicht mehr richtig.
Antwort: Offensichtlich hast du die Skills.txt mit MSExcel geöffnet. Niemals, never ever, die Skills.txt mit MSExcel öffnen, benutze stattdessen D2Excel oder AFJ Sheet Editor.
 
ich schubs den mal ins Archiv,bevor er inner Versenkung wieder landet:angel:
 
Zurück
Oben