سحر مخصص بدون تعديلات: صيغة السحر المعتمدة على البيانات
أصبحت أدوات السحر عبارة عن ملفات JSON لحزم البيانات، لذا فإن السحر المخصص لا يحتاج إلى تعديل. إليك شكل الملف، ومكونات التأثير التي تقوم بشيء فعلي، وكيفية جعله قابلاً للحصول عليه.
كانت أدوات السحر مبرمجة بشكل ثابت. أصبحت الآن بيانات حزمة بيانات (datapack data)، مما يعني أن السحر المخصص حقًا - اسم جديد، تأثير جديد، منحنى تكلفة جديد - هو ملف JSON.
مكان وجوده
data/<namespace>/enchantment/lightning_strike.json
مفرد enchantment/، مثل كل فئة حزمة بيانات أخرى منذ إعادة التسمية.
الحد الأدنى للملف
{
"description": { "translate": "enchantment.my_pack.lightning_strike" },
"supported_items": "#minecraft:enchantable/sword",
"weight": 2,
"max_level": 3,
"min_cost": { "base": 10, "per_level_above_first": 10 },
"max_cost": { "base": 50, "per_level_above_first": 10 },
"anvil_cost": 4,
"slots": ["mainhand"]
}
هذا القدر يعطي سحرًا حقيقيًا يظهر على الطاولة ويظهر على العنصر. لا يفعل شيئًا بعد - السلوك منفصل.
weightهي ندرة السحر على طاولة السحر. تستخدم الفانيليا 10 للعادي، و 1 للندر جدًا. إنها نسبية، وليست نسبة مئوية.slotsيحدد مكان نشاط السحر:mainhand,offhand,armor,head، وهكذا. إذا حذفته، فلن يتم تطبيق السحر أبدًا.supported_itemsيأخذ علامة عنصر أو قائمة. علامات#minecraft:enchantable/*موجودة بالفعل للمجموعات المعقولة.
جعله يفعل شيئًا
effects يرفق السلوك:
"effects": {
"minecraft:post_attack": [{
"effect": { "type": "minecraft:run_function", "function": "my_pack:strike" },
"requirements": { "condition": "minecraft:random_chance", "chance": 0.25 }
}]
}
run_function هو مخرج الطوارئ - أي شيء يمكن أن تفعله الدالة، يمكن أن يفعله السحر. تغطي أنواع التأثيرات المدمجة الضرر، والإبعاد (Knockback)، والمتانة، وإسقاط العناصر، والسمات دون الحاجة إلى دالة على الإطلاق، وهي أرخص.
requirements يأخذ أي شرط، لذا فإن التحديد بناءً على نوع الهدف (Target)، أو الطقس، أو فرصة عشوائية هو كتلة واحدة من JSON.
تسميته
description هو مكون نصي، لذا فإن الاسم المبرمج بشكل ثابت يعمل:
"description": { "text": "Lightning Strike", "color": "gold" }
ولكن مفتاح translate بالإضافة إلى ملف لغة في حزمة موارد هو ما يجعله يقرأ بشكل صحيح للاعبين في لغات أخرى - نفس السبب الذي يجعل هذا الموقع يأخذ مصطلحات اللعبة من ترجمات Mojang الخاصة.
جعله قابلاً للحصول عليه
ثلاث طرق، وعادة ما تريد أكثر من واحدة:
- طاولة السحر — تلقائي بمجرد تعيين
weightومنحنى التكلفة. - جداول الغنائم (Loot tables) —
enchant_randomlyمع سحرك المدرج، أو
enchant_with_levels إذا كان يجب أن يتنافس على التكلفة.
- قروي يتاجر — كتاب مسحور (Enchanted Book) بسحرك في عنصر التجارة.
إضافته إلى #minecraft:in_enchanting_table هو ما يجعل الطاولة تقدمه على الإطلاق؛ من السهل نسيان العلامة وتنتج سحرًا موجودًا ولكنه لا يظهر أبدًا.
قم ببناء JSON السحر ونظيره لزخرفة الدرع (Armor)، مع تعيين العلامات والفتحات، في Custom Enchantment & Trim Builder.