1. विकी
  2. /आइटम
  3. /Custom खाना

Custom खाना

Minecraft Bedrock में एक Ruby Apple बनाएँ जिसे प्लेयर खा सकें: भूख, saturation, खाने का समय और animation, साथ में एक छोटी script से effects।

इस गाइड में आप एक Ruby Apple बनाएँगे: एक स्नैक जो भूख की पट्टी (hunger bar) का अच्छा-खासा हिस्सा भर देता है, पेट भरा होने पर भी खाया जा सकता है, और थोड़ी देर के लिए तेज़ रफ़्तार देता है। आप सीखेंगे कि भूख और saturation कैसे काम करते हैं और खाने में कितना समय लगता है।

यह गाइड आपका पहला custom आइटम पर आधारित है। अगर आपने अभी तक कोई आइटम नहीं बनाया है, तो वहीं से शुरू करें: icon, texture और नाम वाले कदम बिल्कुल एक जैसे हैं।

आसान तरीका: GodCraft

GodCraft में एक Food object है जिसमें नीचे दी गई हर चीज़ के लिए sliders हैं, और यह आपके लिए effect वाली script भी लिख देता है।

  1. Workshop खोलें और अपने ऐड-ऑन में एक Food जोड़ें।
  2. Pixel editor में icon बनाएँ।
  3. Hunger points, saturation और जो भी effects चाहिए, सेट करें।
  4. Export पर टैप करें और गेम में इसे खाकर देखें।

देखना चाहते हैं कि यह कौन-सी फ़ाइलें बनाता है? ये रहीं।

हाथ से

हम namespace myname इस्तेमाल करते हैं। हर जगह इसे अपने namespace से बदल दें।

कदम 1: खाने वाला आइटम

अपने बिहेवियर पैक में यह फ़ाइल बनाएँ:

BP/items/ruby_apple.json
{
  "format_version": "1.26.30",
  "minecraft:item": {
    "description": {
      "identifier": "myname:ruby_apple",
      "menu_category": {
        "category": "items"
      }
    },
    "components": {
      "minecraft:icon": {
        "textures": {
          "default": "myname_ruby_apple"
        }
      },
      "minecraft:display_name": {
        "value": "item.myname:ruby_apple.name"
      },
      "minecraft:max_stack_size": 16,
      "minecraft:food": {
        "nutrition": 6,
        "saturation_modifier": 0.8,
        "can_always_eat": true
      },
      "minecraft:use_modifiers": {
        "use_duration": 1.6,
        "movement_modifier": 0.35
      },
      "minecraft:use_animation": "eat",
      "minecraft:tags": {
        "tags": ["minecraft:is_food"]
      }
    }
  }
}

नए हिस्से आखिरी चार कंपोनेंट हैं। आइए हर एक को देखें।

Food कंपोनेंट

minecraft:food आइटम को खाने लायक बनाता है।

  • nutrition बताता है कि यह कितने hunger points वापस देता है। Hunger bar पर एक drumstick 2 points के बराबर है, इसलिए 6 तीन drumsticks भरता है। Vanilla सेब 4 देता है, steak 8।
  • saturation_modifier उस छिपी हुई "पेट भरे होने" की भावना को कंट्रोल करता है जो आपकी hunger bar को गिरने से रोकती है। गेम nutrition x saturation_modifier x 2 saturation जोड़ता है। कम वैल्यू (लगभग 0.1 से 0.3) स्नैक जैसी लगती है, 0.6 सामान्य है, और 0.8 या उससे ज़्यादा पेट भरने वाला खाना है।
  • can_always_eat प्लेयर्स को hunger bar भरी होने पर भी इसे खाने देता है। सामान्य खाने के लिए इसे हटा दें (इसकी default वैल्यू false है)।

एक और field है जो आपको पसंद आ सकती है: using_converts_to। यह खाने के बाद प्लेयर को एक दूसरा आइटम देती है, जैसे soup के बाद कटोरा:

minecraft:food के अंदर
"using_converts_to": "minecraft:bowl"

खाने में कितना समय लगता है

खाने को minecraft:use_modifiers की ज़रूरत होती है, वरना प्लेयर इसे खाने के लिए use बटन दबाकर नहीं रख सकता।

  • use_duration खाने का समय है, सेकंड में। Vanilla खाने में 1.6 सेकंड लगते हैं। Dried kelp में इसका लगभग आधा।
  • movement_modifier खाते समय प्लेयर को धीमा करता है। 0.35 vanilla वैल्यू है, और 1 का मतलब है बिल्कुल धीमा नहीं।

Animation और tags

  • minecraft:use_animation को "eat" पर सेट करने से चबाने वाला animation और टुकड़ों वाले particles दिखते हैं। Potion या smoothie जैसी चीज़ के लिए "drink" इस्तेमाल करें।
  • minecraft:tags में minecraft:is_food इसे खाने के रूप में मार्क करता है, ठीक वैसे ही जैसे vanilla खाने मार्क होते हैं।

कदम 2: texture और नाम

ये बिल्कुल पहली गाइड की तरह काम करते हैं। Texture को अपनी मौजूदा item_texture.json में जोड़ें (texture_data के अंदर, अपनी दूसरी entries के बगल में):

RP/textures/item_texture.json
"myname_ruby_apple": {
  "textures": "textures/items/ruby_apple"
}

RP/textures/items/ruby_apple.png पर एक 16x16 PNG सेव करें, फिर नाम जोड़ें:

RP/texts/en_US.lang
item.myname:ruby_apple.name=Ruby Apple

अब /give @s myname:ruby_apple चलाएँ और एक कौर खाकर देखें। याद ताज़ा करनी हो तो /give देखें।

खाने पर effects जोड़ना

पुराने ऐड-ऑन minecraft:food के अंदर एक effects लिस्ट से खाने को effects देते थे। यह field अब मौजूदा आइटम फ़ॉर्मेट का हिस्सा नहीं है। अगर आप इसे नए format_version वाली फ़ाइल में जोड़ते हैं, तो गेम इसे नज़रअंदाज़ कर देता है और Content Log में एक warning दिखाता है।

आजकल इसका तरीका है एक custom कंपोनेंट: आपका आइटम आपके खुद के बनाए एक कंपोनेंट का नाम लेता है, और एक छोटी script तय करती है कि वह क्या करेगा। सुनने में डरावना लगता है, लेकिन यह करीब 15 लाइनों का काम है।

कदम 1: आइटम में कंपोनेंट जोड़ें

इसे ruby_apple.json के components में जोड़ें। नाम आप खुद चुनें, और object में आपकी अपनी settings होती हैं:

BP/items/ruby_apple.json (components के अंदर)
"myname:eat_effect": {
  "effect": "speed",
  "seconds": 10,
  "amplifier": 1
}

कदम 2: script लिखें

इसके लिए आपके बिहेवियर पैक के manifest में एक script module होना चाहिए। Project setup में बताया गया है कि इसे कैसे जोड़ें। फिर script बनाएँ:

BP/scripts/main.js
import { system } from "@minecraft/server";

system.beforeEvents.startup.subscribe(({ itemComponentRegistry }) => {
  itemComponentRegistry.registerCustomComponent("myname:eat_effect", {
    onConsume(event, { params }) {
      event.source.addEffect(params.effect, params.seconds * 20, {
        amplifier: params.amplifier,
      });
    },
  });
});

यह कैसे काम करता है:

  1. जब world शुरू होता है, script गेम को बताती है कि myname:eat_effect का मतलब क्या है।
  2. onConsume हर बार चलता है जब कोई प्लेयर इस कंपोनेंट वाला आइटम खाना खत्म करता है।
  3. params वही object है जो आपने आइटम फ़ाइल में लिखा था, इसलिए आप यही एक script अलग-अलग effects वाले कई खानों के लिए इस्तेमाल कर सकते हैं।
  4. Scripts में effect की अवधि ticks में होती है, और एक सेकंड में 20 ticks होते हैं। इसीलिए seconds को 20 से गुणा किया जाता है।
  5. amplifier 0 का मतलब level I, 1 का मतलब level II, और इसी तरह आगे।

Effect के नाम

/effect कमांड वाली ही effect IDs इस्तेमाल करें, जैसे speed, regeneration, night_vision, absorption या fire_resistance।

GodCraft यह पूरा हिस्सा आपके लिए करता है: Food editor में effects चुनें और export करते समय यह कंपोनेंट और script जोड़ देता है।

संतुलित खाने के लिए टिप्स

  • Vanilla से मेल रखें। स्नैक 2 से 4 nutrition का होता है, पूरा खाना 6 से 8 का। बहुत ज़्यादा नंबर बाकी सारे खानों को बेकार बना देते हैं।
  • Effects की कोई कीमत होनी चाहिए। एक दमदार effect किसी दुर्लभ खाने पर मज़ेदार लगता है, मिट्टी से craft होने वाले खाने पर नहीं। इसे किसी मुश्किल रेसिपी से जोड़ें (Crafting और भट्टी की रेसिपी देखें)।
  • can_always_eat को खास रखें। Vanilla इसे सिर्फ़ golden apples जैसी चीज़ों के लिए इस्तेमाल करता है, ताकि यह इनाम जैसा लगे।
  • Stack size मायने रखता है। छोटे stacks (16) से ताकतवर खाना जमा करना मुश्किल होता है।

जब कुछ गड़बड़ हो

आपको क्या दिखता हैसबसे संभावित वजह
आप इसे बिल्कुल नहीं खा पातेminecraft:use_modifiers नहीं है या use_duration 0 है
आप इसे खा सकते हैं, लेकिन सिर्फ़ भूख लगने परयह सामान्य है। इसे बदलने के लिए can_always_eat जोड़ें
खाने के बाद कोई effect नहींScript module manifest में नहीं है, या आइटम और script में कंपोनेंट का नाम मेल नहीं खाता
effects के बारे में warningआपने पुरानी field इस्तेमाल की: ऊपर दिए custom कंपोनेंट पर जाएँ

ज़्यादा मदद Troubleshooting में है। आगे: हथियार और औज़ार।

आइटम: गाइड

We use cookies to improve your experience and analyse site traffic. Learn more