跳至主要內容

自訂物品與魔法武器

FMM 從 plugins/FreeMinecraftModels/models/ 中的 YAML 檔案註冊手持物品。模型可以在同一目錄中搭配主檔名相同的 .yml 定義。物品也可以使用原版外觀,不需要 .bbmodel 檔案。

自訂物品​

flame_blade.yml 範例:

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

重新載入 FMM,然後執行 /fmm giveitem flame_blade。此指令需要 freeminecraftmodels.admin 權限。物品 ID 是去掉副檔名後的小寫檔名,而非顯示名稱。不同子目錄中的主檔名也必須唯一。

若要為皮革盔甲染色,請在材質後面加上 RGB 十六進位顏色(不含 #),與 EliteMobs 裝備的寫法相同:material: LEATHER_CHESTPLATE:ff8800。此後綴只適用於 LEATHER_ 材質。已在物品欄中的物品會保留原本的顏色。

物品會保留建立時的顯示模型。FMM 會為沒有顯示模型的 FMM 物品補上已註冊的顯示模型:玩家加入時套用到其物品欄中所有這類物品,切換手持欄位、交換主副手或撿起物品後則套用到手中的物品。這可修正在模型存在之前就發出的物品,例如顯示成普通烈焰桿的魔杖。已指定模型的物品不受影響。

附魔項目必須使用小寫的 namespace:id,level 字串,等級必須為正整數。原版附魔使用 minecraft:,FMM 效果使用 freeminecraftmodels:,EliteMobs 提供的效果使用 elitemobs:。必須安裝對應的提供者,而且相應定義必須可用。請參閱內容附魔。帶有物品套裝附魔的物品,會在含有 $itemSet 的說明文字行顯示該套裝的部件;沒有任何一行含有它時,則顯示在其說明文字之後。

升級物品內容

裝備物品的 scripts: 清單,以及 SHARPNESS,3 這類沒有命名空間的項目已經停用。FMM 會略過這些物品定義、記錄原因,並保留原檔案不變。伺服器不支援其材質的物品也會被略過。這些情況不會阻止其他內容載入。

擺設腳本仍使用 scripts:。物品效果使用 enchantments:。請勿將舊物品腳本加入新武器定義。

內建魔杖與法杖​

FMM 會在 models/fmm_default_magic/ 下安裝缺少的預設內容。如果現有內建魔杖或法杖定義缺少 weapon.type,FMM 會加入對應的 WAND 或 STAFF 宣告,同時保留其他設定:

物品 ID材質操作
fmm_default_arcane_wandBLAZE_ROD左鍵發射具有輔助瞄準的飛彈
fmm_default_arcane_staffWOODEN_SPEAR左鍵進行較弱的近戰攻擊;右鍵發射範圍火球

使用 /fmm giveitem <id> 取得。普通烈焰桿或長矛不會自動成為魔法武器。法杖需要提供 WOODEN_SPEAR 的伺服器版本;不支援的材質定義會被略過。

兩種武器都附帶各自的模型與顯示模型 JSON。魔杖另外附帶 fmm_default_arcane_wand_particles.particle.json 及其材質:當魔杖拿在任一手中時,其 held 動畫會在寶石周圍循環播放閃光效果。請參閱粒子。FMM 只會複製缺少的檔案,因此已編輯過內建 .yml 的伺服器會保留該檔案,並取得新的模型檔案。

魔杖先搜尋前方目標,再發射飛行彈體。鎖定不代表必定命中:彈體必須抵達目標,也可能撞上方塊。法杖發射較慢、具有衝擊半徑的火球。

魔杖施法會短暫施加 20 刻的緩速 I,但不會取代現有更強或更持久的緩速效果。魔杖傷害會抑制自身的原版擊退。被法杖火球直接擊中的實體會承受火球的全額傷害。爆炸範圍內的其他目標需要與衝擊點之間有視線,且其中心離衝擊點越遠,承受的傷害越少,從衝擊點的全額傷害遞減至邊緣的 35%。點燃只在傷害被接受後生效,並遵守燃燒事件的處理結果。

魔法命中會忽略原版的受傷冷卻,因此魔杖彈體、法杖打擊或火球,仍然能命中剛剛才被擊中過的目標,例如被隊友的劍擊中。FMM 之後會還原目標的冷卻;武器本身的裝填時間決定魔法命中的頻率。

用魔杖或法杖直接擊打生物會被視為左鍵攻擊:FMM 會取消原版近戰命中,改為執行武器的左鍵攻擊。玩家手持魔杖或法杖時,若外掛透過 MagmaCore 的明確傷害路徑以該玩家名義造成傷害(例如 EliteMobs 的附魔傷害),則不受影響,也不會觸發施法。在攻擊冷卻期間點擊只會播放輕微的點擊聲,不會有其他作用。

冷卻在施法或近戰動作成功發起後開始。內容重新載入期間,重建定義時會暫停新施法;已發射的彈體保留發射時擷取的武器與修正值。移除已註冊的戰鬥解析器會取消所有尚未結束的彈體,避免它們在飛行途中切換戰鬥規則。

定義魔法武器​

在普通物品定義中加入 weapon 區段:

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

type 必須為 WAND 或 STAFF。省略調整欄位時使用以下預設值:

設定魔杖法杖
projectileSpeed0.720.48
range1828
travelTicks2474
impactRadius02.75
aimAssistDegrees450

預設魔杖的目標捕捉錐體向正前方兩側各延伸 45 度。aimAssistDegrees 接受 0 至 180。半徑可以為零;速度與射程必須為正的有限數,飛行刻數必須為正整數。

攻擊basePowerreloadTicks
WAND_MISSILE0.67211
STAFF_MELEE0.4512
STAFF_FIREBALL1.2540

選用的 weapon.attacks 區段必須完整且僅包含該武器類型的攻擊鍵,每種攻擊都必須提供兩個欄位:

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

未知武器欄位與格式錯誤的值會被拒絕。basePower 是由戰鬥解析器解讀的傷害係數,不保證造成同等數值的生命值傷害。

魔法附魔​

ID用途
freeminecraftmodels:multicast增加彈體,並調整每個彈體的傷害
freeminecraftmodels:blast_radius調整法杖火球的衝擊半徑
freeminecraftmodels:ignition點燃被法杖火球擊中後存活的目標

這些附魔的 YAML 與 Lua 檔案位於 plugins/FreeMinecraftModels/enchantments/。內建目錄也包含供自訂內容物品使用的效果。僅安裝效果定義不會向玩家提供相應物品或模型包。

施法者穿戴的物品套裝,在每個部件都穿戴時,也適用於魔杖和法杖。套裝的施法修正每次施法只計算一次。魔法命中時,套裝的 on_attack_entity 掛鉤會在法杖打擊時執行,而 on_projectile_hit 掛鉤則在魔杖彈體或火球命中時執行。

EliteMobs 整合​

安裝 EliteMobs 後,精英戰鬥數值縮放與技能歸屬由 EliteMobs 負責。FMM 負責武器身分、輸入、彈體飛行及衝擊請求。武器或戰鬥狀態無效時,EliteMobs 可以拒絕施法或衝擊。

Alpha Advanced Combat System 的施法者使用 FMM 法杖與魔杖。職業能力與魔法武器攻擊使用不同輸入。處理 F 鍵職業能力選擇時,不應同時發射手持武器。

配送資源包時,重新產生 FMM 輸出,再讓 ResourcePackManager 合併並提供下載。武器已註冊本身不能證明用戶端已下載其模型。