Das Metin2 Pet-System ist die Art und Weise, wie du die Begleiter verwaltest, die deinem Charakter folgen, passive Boni geben und sogar aufsteigen können. Auf klassischen Servern ist ein Pet rein kosmetisch, während ein modernes Pet-System Fütterung, Level, Boni und manchmal Fähigkeiten mitbringt. In dieser Anleitung erkläre ich, wie das System funktioniert, woher Pet-Boni kommen, wie die Fütterungsmechanik arbeitet und welche Schritte nötig sind, um ein ganz neues Pet-Modell auf deinem Server hinzuzufügen.
Wie das Pet-System funktioniert
In Metin2 ist ein Pet praktisch ein spezieller Mob-Eintrag. Der Charakter aktiviert das Pet über ein Beschwörungs-Item im Inventar (ein Ei, eine Pfeife oder ein Halsband); dies ist ein Item vom Typ USE, und beim Benutzen wird eine temporäre, an den Spieler gebundene Entität erzeugt. Das Pet entsteht nicht als Gegner am Boden, sondern als NPC, der seinem Besitzer folgt.
- Beschwörungs-Item — in
item_protodefiniert, meist mittype = USEund einem Subtyp in der Art vonUSE_PET. - Pet-Modell — entspricht einer
vnuminmob_proto; die Optik stammt aus einer.gr2-Modelldatei auf der Client-Seite. - Verhalten — der erzeugende Code bindet das Pet an seinen Besitzer; es greift nicht an, sondern bleibt einfach in der Nähe (ausgenommen Kampf-Pet-Varianten).
Die neueren Pet-Systeme (das Add-on, das gemeinhin als "Pet-System" bezeichnet wird) legen Level, eine Hunger-Leiste, eine Dauer und Boni über diese Grundstruktur. Diese Schichten werden überwiegend von der Quest-Engine (Lua) und ein paar zusätzlichen Tabellen gesteuert.
Woher die Pet-Boni kommen
Pet-Boni sind temporäre Statuserhöhungen, die auf den Spieler angewendet werden, der das Pet trägt. Du kannst sie auf zwei Hauptwegen verdrahten:
- Item-Boni — Boni direkt am Beschwörungs-Item über
item_protodefinieren (zum BeispielAPPLY_MAX_HP,APPLY_ATT_SPEED). Sie gelten, solange das Pet aktiv ist. - Quest-basierte Boni — wenn du Boni möchtest, die mit dem Pet-Level skalieren, ist es deutlich flexibler, sie aus einer Lua-Quest über Aufrufe wie
apply_bonushinzuzufügen.
Das folgende Beispiel ist vereinfachte Quest-Logik, die dem Spieler beim Beschwören einen Angriffsbonus basierend auf dem Pet-Level gewährt:
quest pet_bonus begin
state start begin
when 53001.use begin
local lvl = pc.getqf("pet_level")
-- +5 Angriffswert pro Level
apply.apply("ATT_GRADE_BONUS", lvl * 5, 60 * 30)
chat("Dein Pet stärkt dich!")
end
end
end
Der entscheidende Punkt: Binde die Bonusdauer an die Dauer des Pets und wende den Bonus konsistent erneut an, wenn das Pet beschworen oder zurückgerufen wird. Andernfalls kann ein Spieler ihn ausnutzen, indem er das Pet wiederholt neu beschwört.
Die Fütterungsmechanik
Die Fütterung ist der Teil des Pet-Systems, der den Spieler beschäftigt hält. Die Logik lautet: Das Pet hat einen Hunger-/Sättigungswert, der mit der Zeit sinkt, und der Spieler füllt ihn mit einem speziellen Pet-Futter-Item wieder auf. Erreicht die Sättigung null, hört das Pet auf, Boni zu geben, oder verschwindet.
- Speichere den Sättigungswert in einem Quest-Flag auf dem Spieler:
pc.setqf("pet_food", 100). - Lasse den Wert regelmäßig über einen Timer sinken (Quest
when … with timer). - Wenn das Pet-Futter-Item benutzt wird, erhöhe den Wert und verhindere, dass er die Obergrenze (z. B. 100) überschreitet.
quest pet_feed begin
state start begin
when 53010.use begin
local food = pc.getqf("pet_food")
food = math.min(food + 25, 100)
pc.setqf("pet_food", food)
item.remove()
chat("Pet-Sättigung: "..food.."/100")
end
end
end
Du kannst die Fütterung mit dem Level-System kombinieren: Beim Füttern erhält das Pet einen kleinen pet_exp-Wert, steigt bei festgelegten Schwellen auf und seine Boni wachsen. Diese Schleife motiviert den Spieler, sich regelmäßig um das Pet zu kümmern.
Schritte zum Hinzufügen eines neuen Pet-Modells
Ein optisch neues Pet auf deinem Server hinzuzufügen erfordert Dateien sowohl auf dem Client als auch auf dem Server. Die Reihenfolge ist wie folgt:
- 1. Modelldateien: Lege die
.gr2-Modell- und Animationsdateien des neuen Pets zusammen mit den Textur-Dateien (.dds) in den passendenpack-Ordner auf dem Client. - 2. mob_proto-Eintrag: Füge das Pet unter einer neuen
vnumzumob_protohinzu, als NPC-/Pet-Typ mit seinen Geschwindigkeits- und Größenwerten. Der Server muss diesen Eintrag korrekt einlesen. - 3. Client-Definition: Bringe die clientseitige
mob_proto(oder.txt-Definition) und den Modellpfad in Einklang; die Verbindung zwischen dervnumund der.gr2-Datei muss korrekt sein. - 4. Beschwörungs-Item: Erstelle einen neuen
item_proto-Eintrag und binde ihn beim Benutzen an die Quest bzw. den Code-Pfad, der das Pet mit dieser neuenvnumbeschwört. - 5. Lokalisierung: Ergänze Name/Beschreibung des Pets und des Items in den
locale-Dateien.
Gehe beim Testen Schritt für Schritt vor: Erscheint das Item zuerst im Inventar; wird dann beim Benutzen das Pet erzeugt; stimmen anschließend Modell und Animation; und funktioniert zuletzt die Bonus-/Fütterungsschleife. Jeden Schritt zu isolieren macht die Fehlersuche deutlich einfacher.
Häufige Fehler
- Unsichtbares Pet: Die
vnumexistiert auf dem Server, aber der Modellpfad passt auf dem Client nicht — es wird erzeugt, bleibt aber unsichtbar.mob_protomuss auf beiden Seiten konsistent sein. - Bonus bleibt dauerhaft: Der Bonus wird beim Zurückrufen des Pets nicht entfernt. Binde die Dauer an die Lebensdauer des Pets und setze den Bonus beim Zurückrufen zurück.
- proto-Inkonsistenz: Die
item_proto-/mob_proto-Versionen von Client und Server unterscheiden sich; das zeigt sich als "unbekanntes Item" oder als Absturz. Verteile immer dasselbe proto an beide Seiten.
Häufige Fragen
Kann ein Pet dem Charakter schaden oder angreifen?
Ein Standard-Pet folgt nur seinem Besitzer und greift nicht an. Wenn du ein "Kampf-Pet" möchtest, musst du ein eigenes Verhalten (Mob-KI) definieren und das Pet so programmieren, dass es Gegner angreift; das ist eine andere Entwicklungsaufgabe als das klassische Folge-Pet.
Verschwindet das Pet, wenn ich es nicht füttere?
Das hängt ganz von deinem Systemdesign ab. Ein verbreiteter Ansatz ist, dass das Pet keine Boni mehr gibt, sobald die Sättigung null erreicht; auf manchen Servern wird das Pet vollständig zurückgerufen. Die Logik legst du in der Lua-Quest fest.
Ist ein Pet-Level-System Pflicht?
Nein. Für ein einfaches kosmetisches Pet genügen ein Beschwörungs-Item und ein Modell. Level, Fütterung und Bonus-Schichten sind optionale Funktionen, die hinzugefügt werden, um die Spielerbindung zu erhöhen.
Möchtest du ein solides, missbrauchssicheres Pet-System für deinen Server? Ich kann den gesamten Ablauf aufbauen und testen — das Hinzufügen eines Pet-Modells, die Fütterungsmechanik und die Boni — von Anfang bis Ende. Nimm Kontakt auf, um über dein Projekt zu sprechen.