So,
da sich nun die klare Mehrheit aus diesem Thread:
Bitte melden Sie sich an, um diesen Link zu sehen.
gewünscht hat, dass ich zeige wie man ebenfalls andere Items wie den standartmäßigen grünen/vio Pot
einfügt zeige ich es nun hier.
Was wird benötigt?
- Das im oben genannten Thread (eingebaute) System
Server-Source:
ihr geht in die ../game/src/chat_item.cpp und sucht nach:
dann fügt ihr einen neuen "case" ein, als Beispiel nehme ich jetzt den weißen Tau.
nach
kopiert ihr diesen part, und ersetzt den alten case durch den neuen.
type = AFFECT_ATT_SPEED müsst ihr ebenfalls durch den nen affect flag ersetzen,
den wir neu definieren müssen.
dafür gehen wir in: ../game/src/affect.h
und fügen nun an einer (mehr oder weniger) beliebigen Stelle ein.
z.B: nach AFFECT_DEF_GRADE
dort fügen wir nun ein:
(Nicht für jeden AFFECT muss ein neuer AFFECT erstellt werden,
für viele gibt es bereits einen bestehenden AFFECT. Einfach mal
schauen ob es bereits einen passenden gibt. Ich nehme hier mit
Absich einen neuen um zu demonstrieren, wie es funktioniert
falls es KEINEN bestehenden AFFECT gibt.)
euer Part in der char_item.cpp sollte nun so aussehen:
- #ifdef ENABLE_NEW_TYPE_OF_POTION
- case NEW_MOVE_SPEED_POTION:
- case NEW_ATTACK_SPEED_POTION:
- case WEISSER_TAU:
- {
- EAffectTypes type = AFFECT_NONE;
- if (item->GetVnum() == NEW_MOVE_SPEED_POTION)
- type = AFFECT_MOV_SPEED;
- if (item->GetVnum() == NEW_ATTACK_SPEED_POTION)
- type = AFFECT_ATT_SPEED;
- if (item->GetVnum() == WEISSER_TAU)
- type = WEISSER_TAU_AFFECT;
- .
- .
- .
nun sucht ihr immernoch in der char_item.cpp nach:
ihr kopiert diesen teil, und fügt ihr nochmal darunter ein:
das NEW_ATTACK_SPEED_POTION ersetzt ihr durch den oben neu definierten case,
in diesem Fall WEISSER_TAU.
die Zeile:
könnt ihr komplett rauslassen, funktioniert auch ohne ihr, warum auch immer.
bei bonus = POINT_ATT_SPEED müsst ihr den POINT_ATT_SPEED (in diesem Fall) durch POINT_DEF_GRADE_BONUS ersetzen.
Für alle Bonis gibt es einen festgelegten Bezeichner, den ihr in der char.h finden könnt.
das ganze sollte nun so aussehen:
Nun geht ihr in die ../game/src/unique_item.h
und sucht nach:
nun fügt ihr IN den Define eure Items ein,
hier wird übrigens die VNUM der Items später bestimmt.
Also achtet darauf, dass ihr hier VNUMs nimmt welche auch noch frei sind.
Das ganze sollte nun so aussehen:
Das wars auch wieder mit dem Server-Source, compilen und ab zum Client Part.
Client Part:
Ihr geht in die (entpackte) locale_de.
Nun geht ihr in die itemdesc.txt und fügt unter die bereits zwei definierten Perma-Potts
die in der unique_item.h gewählte VNUM ein.
Also sieht das ganze folgendermaßen aus:
Nun in die item_list.txt und dasselbe erneut machen, das sieht dann wie folgt aus:
Nun geht ihr in die (enpackte) root eures Clients und öffnet die constinfo.py
sucht nach:
für jedes weitere item, muss hier bei dem return ein weiteres "or ..." eingefügt werden.
das ganze sieht nun so aus:
nun müsst ihr die Methode, auf welche im return zugegriffen wird unten ebenfalls ergänzen.
Also sucht ihr nach:
und fügt darunter ein:
So, das wars auch schon.
Natürlich müsst ihr die Items auch in der item_proto einfügen,
achtet darauf, dass ihr die in der unique_item.h definierten VNUM's für die
Items benutzt.
Die Höhe des Buffs, die der Trank einem gibt wird in der item_proto in der Spalte "Value2" bestimmt.
So das wars auch schon,
genauso macht ihr das auch für weitere Items.
Falls jemand die AFFECT Types für Drachengott Angriff etc. rausfindet, wäre es nett
wenn derjenige sie mir zukommen lassen würde
Danke fürs Durchlesen und ich hoffe ich konnte euch damit helfen