Zum Hauptinhalt springen

Benutzerdefinierte Items und magische Waffen

FMM registriert gehaltene Items aus YAML-Dateien in plugins/FreeMinecraftModels/models/. Ein Modell kann eine begleitende .yml-Definition mit demselben Dateinamenstamm haben. Items können auch ohne .bbmodel-Datei die Vanilla-Darstellung verwenden.

Benutzerdefinierte Items​

Für flame_blade.yml:

isEnabled: true
material: DIAMOND_SWORD
name: "&6Flame Blade"
lore:
- "&7Burns enemies on hit"
enchantments:
- "minecraft:fire_aspect,2"
- "minecraft:unbreaking,3"

Lade FMM neu und verwende dann /fmm giveitem flame_blade. Dieser Befehl erfordert freeminecraftmodels.admin. Die Item-ID ist der kleingeschriebene Dateinamenstamm, nicht der Anzeigename. Verwende auch über Unterordner hinweg eindeutige Dateinamenstämme.

Um Lederrüstung zu färben, hänge wie bei EliteMobs-Ausrüstung eine RGB-Hexfarbe ohne # an das Material an: material: LEATHER_CHESTPLATE:ff8800. Das Suffix funktioniert nur bei LEATHER_-Materialien. Items, die sich bereits in Inventaren befinden, behalten ihre alte Farbe.

Ein Item behält das Anzeigemodell, das es bei seiner Erstellung hatte. FMM ergänzt das registrierte Anzeigemodell bei FMM-Items, die keines haben: bei jedem solchen Item im Inventar eines Spielers, wenn er beitritt, und bei den Items in seinen Händen, nachdem er den gehaltenen Slot wechselt, die Hände tauscht oder etwas aufhebt. Das behebt Items, die ausgegeben wurden, bevor ihr Modell existierte, etwa Zauberstäbe, die als einfache Lohenruten erschienen. Items, die bereits ein Modell angeben, bleiben unverändert.

Verzauberungseinträge müssen kleingeschriebene Strings im Format namespace:id,level mit einer positiven Ganzzahl als Stufe sein. Verwende minecraft: für native Verzauberungen, freeminecraftmodels: für FMM-Effekte und elitemobs: für Effekte aus EliteMobs. Der Provider muss installiert und die Definition verfügbar sein. Siehe Selbst definierte Verzauberungen. Ein Item mit einer Verzauberung eines Itemsets zeigt die Teile des Sets in der Lore-Zeile mit $itemSet, oder nach seiner Lore, wenn keine Zeile diesen Platzhalter enthält.

Item-Inhalte aktualisieren

scripts:-Listen für ausgerüstete Items und Einträge ohne Namespace wie SHARPNESS,3 wurden eingestellt. FMM überspringt diese Item-Definitionen, protokolliert den Grund und lässt die Dateien unverändert. Auch Items mit einem auf dem Server nicht verfügbaren Material werden übersprungen. Diese Fälle verhindern nicht das Laden anderer Inhalte.

Prop-Skripte verwenden weiterhin scripts:. Item-Effekte verwenden enchantments:. Füge einer neuen Waffendefinition kein altes Item-Skript hinzu.

Mitgelieferter Zauberstab und Stab​

FMM installiert fehlende Standarddefinitionen unter models/fmm_default_magic/. Fehlt in einer vorhandenen Definition des mitgelieferten Zauberstabs oder Stabs weapon.type, ergänzt FMM den passenden Eintrag WAND oder STAFF und erhält die übrigen Einstellungen:

Item-IDMaterialSteuerung
fmm_default_arcane_wandBLAZE_RODLinksklick feuert ein Projektil mit Zielhilfe
fmm_default_arcane_staffWOODEN_SPEARLinksklick führt einen schwachen Nahkampfschlag aus; Rechtsklick startet einen Flächenfeuerball

Du erhältst sie mit /fmm giveitem <id>. Eine gewöhnliche Lohenrute oder ein Speer wird dadurch nicht zur magischen Waffe. Der Stab benötigt eine Serverversion mit WOODEN_SPEAR; Definitionen mit nicht verfügbaren Materialien werden übersprungen.

Beide Waffen werden mit eigenem Modell und eigenem Anzeigemodell-JSON ausgeliefert. Der Zauberstab bringt außerdem fmm_default_arcane_wand_particles.particle.json samt Textur mit: Seine held-Animation spielt in einer Schleife einen Glitzereffekt um den Edelstein ab, während der Zauberstab in einer der beiden Hände gehalten wird. Siehe Partikel. FMM kopiert nur fehlende Dateien, daher behält ein Server, der bereits eine bearbeitete mitgelieferte .yml hat, diese und erhält zusätzlich die neuen Modelldateien.

Der Zauberstab sucht nach einem Ziel vor dem Spieler und schickt dann ein fliegendes Projektil los. Die Zielerfassung garantiert keinen Treffer: Das Projektil muss sein Ziel erreichen und kann mit Blöcken kollidieren. Stäbe verschießen langsamere Feuerbälle mit einem Wirkungsradius.

Zauberstab-Angriffe wenden kurz Verlangsamung I für 20 Ticks an, ohne einen vorhandenen stärkeren oder länger dauernden Verlangsamungseffekt zu ersetzen. Zauberstabschaden unterdrückt seinen eigenen nativen Rückstoß. Die Entität, die ein Stabfeuerball trifft, erleidet den vollen Schaden des Feuerballs. Andere Ziele in der Explosion benötigen Sichtlinie zum Aufprallpunkt und erleiden umso weniger Schaden, je weiter ihre Mitte davon entfernt ist: vom vollen Schaden am Aufprallpunkt bis auf 35 % am Rand. Entzündung erfolgt nur nach akzeptiertem Schaden und berücksichtigt das Verbrennungs-Event.

Magische Treffer ignorieren die Vanilla-Verletzungs-Abklingzeit, sodass ein Zauberstabgeschoss, ein Stabschlag oder ein Feuerball ein Ziel auch dann trifft, wenn es kurz zuvor getroffen wurde, etwa vom Schwert eines Gruppenmitglieds. FMM stellt die Abklingzeit des Ziels danach wieder her; wie oft magische Treffer landen, begrenzt das Nachladen der Waffe selbst.

Einen Mob direkt mit einem Zauberstab oder Stab zu schlagen, zählt als Linksklick-Angriff: FMM bricht den Vanilla-Nahkampftreffer ab und führt stattdessen den Linksklick-Angriff der Waffe aus. Schaden, den ein Plugin über MagmaCores expliziten Schadenspfad im Namen des Spielers zufügt, während dieser einen Zauberstab oder Stab hält, etwa Verzauberungsschaden von EliteMobs, bleibt unangetastet und löst keinen Zauber aus. Ein Klick während der Abklingzeit des Angriffs spielt ein leises Klicken ab und bewirkt sonst nichts.

Cooldowns beginnen erst, nachdem ein Zauber oder eine Nahkampfaktion erfolgreich gestartet wurde. Ein Inhalts-Reload pausiert neue Zauber, während Definitionen neu aufgebaut werden; bereits gestartete Projektile behalten ihre erfasste Waffe und ihre Modifikatoren. Wird der registrierte Kampf-Resolver entfernt, werden noch fliegende Projektile abgebrochen, damit sie nicht mitten im Flug die Kampfregeln wechseln.

Eine magische Waffe definieren​

Ergänze eine gewöhnliche Item-Definition um einen Abschnitt weapon:

isEnabled: true
material: BLAZE_ROD
name: "&dArcane Wand"
weapon:
type: WAND
enchantments:
- "freeminecraftmodels:multicast,1"

type muss WAND oder STAFF sein. Für nicht angegebene Einstellungen gelten diese Standardwerte:

EinstellungZauberstabStab
projectileSpeed0.720.48
range1828
travelTicks2474
impactRadius02.75
aimAssistDegrees450

Der standardmäßige Zielerfassungskegel des Zauberstabs reicht 45 Grad zu jeder Seite seiner Vorwärtsrichtung. aimAssistDegrees akzeptiert Werte von 0 bis 180. Der Radius darf null sein; Geschwindigkeit und Reichweite müssen positive endliche Zahlen sein, die Flugdauer in Ticks eine positive Ganzzahl.

AngriffbasePowerreloadTicks
WAND_MISSILE0.67211
STAFF_MELEE0.4512
STAFF_FIREBALL1.2540

Ein optionaler Abschnitt weapon.attacks muss genau die Angriffsschlüssel des jeweiligen Waffentyps enthalten, jeweils mit beiden Feldern:

weapon:
type: STAFF
attacks:
STAFF_MELEE:
basePower: 0.45
reloadTicks: 12
STAFF_FIREBALL:
basePower: 1.25
reloadTicks: 40

Unbekannte Waffenfelder und ungültige Werte werden abgelehnt. basePower ist ein Schadensfaktor, den der Kampf-Resolver interpretiert, keine Zusage über entsprechend viele Lebenspunkte Schaden.

Magische Verzauberungen​

IDZweck
freeminecraftmodels:multicastZusätzliche Projektile mit angepasstem Schaden pro Projektil
freeminecraftmodels:blast_radiusModifikator für den Wirkungsradius des Stabfeuerballs
freeminecraftmodels:ignitionEntzündet überlebende Ziele nach einem Stabfeuerball

Ihre YAML- und Lua-Dateien liegen in plugins/FreeMinecraftModels/enchantments/. Der mitgelieferte Katalog enthält außerdem Effekte für selbst definierte Inhalts-Items. Eine installierte Effektdefinition allein gibt Spielern weder das entsprechende Item noch das Modellpaket.

Itemsets, die der Zaubernde trägt, funktionieren auch mit Zauberstäben und Stäben, solange jedes Teil getragen wird. Die Zaubermodifikatoren eines Sets zählen einmal pro Zauber. Landet ein magischer Treffer, läuft der Hook on_attack_entity des Sets bei einem Stabschlag und sein Hook on_projectile_hit bei einem Zauberstabgeschoss oder Feuerball.

EliteMobs-Integration​

Wenn EliteMobs installiert ist, übernimmt es die Skalierung des Elitekampfs und die Zuordnung zu Fertigkeiten. FMM verwaltet Waffenidentität, Eingabe, Projektilflug und Aufprallanfrage. EliteMobs kann einen Zauber oder Aufprall ablehnen, wenn Waffe oder Kampfzustand ungültig sind.

Das Alpha Advanced Combat System verwendet FMM-Stäbe und -Zauberstäbe für Spellcaster. Klassenfähigkeiten und Angriffe magischer Waffen sind getrennte Eingaben. Wird eine F-Tasten-Auswahl für eine Klassenfähigkeit verarbeitet, darf sie nicht zusätzlich die gehaltene Waffe auslösen.

Erzeuge für die Paketauslieferung FMMs Ausgabe neu und lasse sie von ResourcePackManager zusammenführen und bereitstellen. Eine registrierte Waffe beweist allein nicht, dass ein Client ihr Modell heruntergeladen hat.