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

[Tut] Ein zufälliges Item durch ein Würfelrezept Erstellen lassen

FaustVIII

Mitglied
Registriert
1 September 2003
Beiträge
328
Ein zufälliges Item durch ein Würfelrezept Erstellen lassen


________________________________________
________________________________________|



Dieses Tutorial wird euch zeigen wie man eine Serie aus "Zwei-item" Rezepten macht die verschiedene Ergebnisse mit den gleichen Zutaten bringen.
Spezifisch werde ich Beschreiben wie man die zwei gleichen items in ein Rezept packt um eins dieser vier möglichen items zu erstellen:

-ein kleiner Heiltrank
-ein magisches Amulett
-ein seltenes Amulett
-eine El Rune

Das ist die Methode die ich benutzt habe um die "Mystery Chests" aus dem Nezeramonitas mod zu erstellen.
Wir Brauchen wenigstens ein neues item für dieses tutorial.

Dateien die du editieren musst:
Itemtypes.txt
Misc.txt
ItemStatCost.txt
Properties.txt
Magicsuffix.txt (oder MagicPrefix.txt)
Cubemain.txt

Andere Dinge die du wissen solltest:
Wie man neue Strings für das spiel erstellt (für neue Items) und wie man Bilder importiert ( in dem Fall dass du willst das dein neuer "mystery spawner" ein eigenes Inventarbild hat)

Als erstes öffnen wir die Itemtypes.txt. Wir müssen einen neun Eintrag für unsere "Mystery Chest" machen. Geht zum Ende dieser Datei und fügt einen Namen im „ItemType“ Feld (wie Mystery Chest) hinzu.
In der Code Spalte musst du einen einzigartigen 4 Zeichen langen Code der nirgendwo anders genutzt wird hinzufügen (Ich habe "msct" genutzt). Lasst „Equiv1“, „Equiv2“, „Bodyloc1“, „Bodyloc2“, „Shoots“ und „Quiver“ leer.
In den nummerierten Zeilen, setzt den wert von "Magic" auf 1, "Rare" zu 1 und "Rarity" zu 3. Setzt alle anderen nummerierten Felder zu 0. Wir sind nun fertig mit dieser Datei aber ihr Solltet euren "ItemType" später noch wissen.

Nun Öffnet die „Misc.txt“
Wir müssen hier einen neuen Eintrag erstellen. Kopiert die Amulett Zeile (Zeile 14) und fügt sie am Ende der Datei ein.
Macht die folgenden Veränderungen:
- Verändert den Eintrag unter der Code Spalte zu etwas Einzigartigem (z.B. m001)
- Geht zum type1 Feld und ändert den Namen von "amul" zu dem Typ den ihr vorher erstellt habt. (Ich habe "msct" benutzt, setze das also wieder ein)

Weitere Änderungen die du vielleicht möchtest:
- Wenn ihr sie kaufbar machen wollt, müsst ihr das Item Händlern zuweisen. Als Beispiel: Geht zu den „GheedMin“ und „GheedMax“ Spalten und schreibt eine Nummer in jede Spalte (Der erste Eintrag sollte Kleiner als der Zweite sein). Das bedeutet das Gheed einige unserer neuen Items in seinem Laden anbietet.
Passt aber auf, Gheed verkauft viele andere dinge in seinem Laden also wird er nicht immer das neue Item auf Lager haben. Du kannst Gegenstände von seinem Bestand löschen wenn du willst dass die neuen immer erscheinen. Um das zu tun musst du die armor.txt, weapon.txt und misc.txt (Die gerade geöffnete) öffnen und alle anderen Zahlen aus den Daten unter „GheedMin“, „GheedMax“, „GheedMagicMin“ und „GheedMagicMax“.
-Gerade wird das Spiel unseren neuen Gegenstand "Amulett" nennen. Vielleicht willst du den Namen ändern, das geht in dem du die „namestr“ Spalte in einen einzigartigen Namen änderst.(Du musst einen String hinzufügen, dass das Spiel deinen neuen Code benutzt)
- Das Spiel wird auch das Inventarbild des Amuletts benutzen. Das wird in der „invfile“ spalte festgelegt. Wenn du weißt wie man neue Bilder importiert kannst du die Grafik natürlich anpassen.
- Wenn du die Inventar Grafik änderst, möchtest du vielleicht auch die Einträge unter „dropsound“ und „usesound“ ändern, dass dein Gegenstand sich nicht wie ein Amulett anhört wenn du es im Inventar platzierst.
- Wenn du diesen Gegenstand verkaufen willst, dann solltest du später den "cost" Eintrag ändern. Wie viel du Einstellen solltest liegt an dem welche Items durch das Rezept Erstellt werden können.

Da wir den Gegenstand jetzt erstellt haben, öffne die „ItemStatCost.txt“. Geht zum ende der Datei und erstelle einen neuen Eintrag. Fügt diese Dinge Hinzu:
Schreibt "item_mystery_chest" unter die "Stat" Spalte. In die "ID" spalte fügst du die Zahlen ein die eine Zeile darüber drankommen.
Fügt 0 in die "add" and "multiplay" Spalten ein. Schreibt 1024 in die "divide" Spalte. Nun schreibt eine Nummer unter die "Send Bits" und "Save Bits" Spalten. Was du in diese Spalten schreibst wird bestimmen wie viele bits in diesem neuen stat genutzt werden. A 1 würde bedeuten dass ein Ergebnis mit dem Wert 1 herauskommt. A2 würde 3 verschiedene werte erlauben (1, 2, 3). 3 Bits(*) würden erlauben dass ein Ergebnis mit den Werten 1 - 7 herauskommt.
Was du hier wählst ist wichtig, weil wir einen einzigartigen Wert für jedes Rezept das wir erstellen brauchen. Wenn unsere Rezepte nur 4 mögliche Ergebnisse haben sollen dann sind 3 bits also genug, aber wir würden nicht genug Platz haben später weitere Rezepte Hinzuzufügen. Also wählt am besten etwas größeres (In Diesem Tutorial habe ich 10 genutzt, dies erlaubt die Werte 1-1023 aber ihr könnt auch höhere Zahlen nutzen wenn ihr wirklich so eine riesige Anzahl an Rezepten wollt).
Was auch immer ihr wählt, schreibt diese Nummer in beide Spalten "Send bits" und "Save Bits". Schreibt 0 in die Spalte "Save Add". Ihr könnt werte in "1.09 Save Bits" und "1.09 Save Add" einsetzen wenn ihr wollt, aber das sollte nichts ausmachen. Lasst die Restlichen Felder leer.

Bemerkung: Normalerweise wollen wir unseren Eintrag in "Send Bits" höher als den in "Save Bits". Da in diesem fall nur ein einziges Item erstellt wird ist es in Ordnung beide Einträge gleich zu haben.

Jetzt öffnet ihr die Properties.txt. Geht bis an das ende der Datei und fügt einen neuen Namen unter dem Code Feld. Ich habe "mystery-chest" benutzt.
Die nächsten schritte:
- Schreibt 1 in den "*done" Eintrag.
- Schreibt 1 in den "func1" Eintrag.
- Schreibt "item_mystery_chest" in "stat1".
- Schreibt 0 in den "*eol" Eintrag.

Öffnet nun die „MagicSuffix.txt“ und geht ans Ende der Datei. Wir werden jetzt 4 neue Einträge erstellen. Bevor ihr das tut, müsst ihr einen neuen string in die "string.tbl" erstellen für das neue Magische Präfix dass wir erstellen.
Wenn ihr einen neuen Referenz string erstellen, stellt sicher das der string der im game angezeigt wird leer ist. Zum Beispiel wenn du ein neues Präfix erstellst und dazu Enquettar nutzt könnte dein neuer Eintrag sein:

a "of Mystery Chests" " "

Nachdem ihr das neue Präfix erstellt habt, schreibt den Namen in das Namensfeld ("of Mystery Cehsts" wenn ihr mein Beispiel befolgt). Macht die folgenden Einträge:
- Setzt "version" zu 100.
- Setzt "spawnable", "level" und "levelreq" zu 1.
- Setzt "frequenzy" zu 10.
- Setzt "group" zu einer Nummer die nirgendwo anders in dieser Datei (oder in Magic Prefix).
- Schreibt "mystery-chest" in das "mod1code" Feld.
- Setzt "mod1min" und "mod1max" zu 1.
- Schreibt den Namen den ihr in der ItemTypes.txt erstellt habt in das "type1"feld ("msct" wenn ihr meinem Beispiel Folgt).
- Setzt "divide", "multiply" und "add" zu 0.

Jetzt kopiert ihr diese Zeile und Fügt diese in die nächsten 3 spalten in eurer Datei.
Verändert die folgenden Dinge in eurer Datei:
- Setzt "frequenzy" zu drei in der zweiten Zeile, 1 in der dritten und 3 in der vierten Zeile (Darüber später mehr wenn wir die Rezepte erstellen).
- Setzt die "mod1min" und "mod1max" Einträge zu 2 in der zweiten Zeile, 3 in der dritten und 4 in der vierten.

Zum Schluss: öffnet die "cubemain.txt". Geht zum Ende der Datei. Schreibt einen neuen Name unter "description" (wie Mystery chest Unlock).
Und macht folgende Einträge:
- Schreibt 1 in das "enabled" Feld.
- Schreibt 100 für "version".
- Schreibt 2 für "numinputs".
- Schreibt den Code den ihr in der misc.txt für eure Mystery Chest in "input 1" (m001 falls ihr dem Beispiel folgt). Als alternative könntest du hier den Item Type Code hier schreiben (msct).
- Schreibt den Code für den zweiten Gegenstand im Rezept in "input 2". Da wir nicht viel über ein zweites item nachgedacht haben nutzen wir einfach eine Schriftrolle der Identifikation(Der code: isc).
- Schreibt hp1 (der code für einen kleinen Heiltrank) in "output 1"
- Schreibt 0 in "*eol".

Jetzt geht ihr zurück zum op Feld.
- Schreibt 18 in den op Eintrag.
- Für das "param" Feld schreibt ihr die ID Nummer des "item_mystery_chest" stat dass ihr in der ItemStatCost.txt erstellt habt.
- Schreibt 1 in "value"

Es gibt einen post von Joel der beschreibt was die Einträge die wir eben in der cubemain.txt vorgenommen haben bedeuten:
http://phrozenkeep.planetdiablo.gamespy.com/forum/viewtopic.php?t=16632

In unserem Fall wird dieses Rezept nur funktionieren wenn der Wert von "item_mystery_chest" als erster input (unser neues mystery chest item) 1 ist. Wir haben nichts unter den "description" Feldern in der "ItemStatsCost.txt" gemacht, also ist dieser stat unsichtbar auf der truhe.
Nun kopieren wir unser Rezept und fügen es in die nächsten drei Zeilen ein.
Ändert die folgenden dinge:
- Unter dem "value" feld, schreib 2 für das zweite rezept, 3 für das dritte und 4 für das vierte.
- In das "output" Feld schreibt ihr "amu,mag" für das zweite Rezept, "amu,rar" für das dritte und "r01" für das vierte.
- Beim zweiten und dritten Rezept ändert den Wert "ilvl" auf 100

Nun wird unsere Mystery Chest einen kleinen Heiltrank ergeben wenn das "item_mystery_chest" stat 1 ist, wenn der Wert bei 2 liegt dann wird es ein magisches Amulett, ein seltenes Amulett wenn der Wert 3 beträgt und eine El Rune bei 4.

Wir können kontrollieren wie hoch die Chance ist dass ein bestimmtes item herauskommt wenn wir das "frequenzy" Feld in der "MagicSuffic.txt" editieren.
Erinnert euch, wir haben diesen Wert auf 10 für den ersten Eintrag (Heiltrank), 3 für den zweiten und vierten (magischer Ring und El Rune) und 1 für den dritten (unser seltenes Amulett). Je größer der Wert der in "frequency" steht, desto größer ist die Chance dieses Item zu bekommen.

Bekannte Probleme: Wenn ihr diese Methode benutzt solltet ihr in der Lage sein jeden Akt1 Händler euer neues Item verkaufen zu lassen. Da Diablo2 aber nicht gerne neue Items bei Läden später im Spiel verkaufen lässt werdet ihr euer neues item wohl nicht in späteren Äkten oder Schwierigkeitsgraden sehen.
Wenn ihr wisst wie man die gefallenen Items aus den Truhen in der "TreasureClassEx.txt" anpasst möchtet ihr vielleicht auch dass euer Item von Monstern fallen gelassen wird.


________________________________________
________________________________________|
* Erklärung von SamusAran
In der „itemstatscost“ wird angegeben wird mit wie viel bit eine Eigenschaft abgespeichert wird
die Speichergröße gibt aber gleichzeitig das Maximum an werten pro Eigenschaft an

bei 1 bit wären es max 0-1
bei 2 bit wären es max 0-3
bei 3 bit wären es max 0-7
bei 4 bit wären es max 0-15
....
bei 32 bit wären es max 0- 4.294.967.295
32bit ist das Maximum mit dem d2 arbeiten kann
________________________________________
________________________________________|
Autor: Acromantic Aria
Übersetzung: the_faust_viii
 
Zurück
Oben