1. विकी
  2. /एंटिटी
  3. /Filters

Filters

Minecraft Bedrock ऐड-ऑन में एंटिटी filters कैसे काम करते हैं: test, subject, operator, value, all_of, any_of और none_of, साथ में सबसे काम के tests की टेबल।

Filter एक हाँ-या-ना वाला सवाल है जो गेम किसी मॉब के बारे में पूछता है। "क्या हमला करने वाला प्लेयर है?" "क्या दिन है?" "क्या यह मॉब पानी में है?" अगर जवाब हाँ है, तो filter पास होता है और जिस चीज़ की वह रखवाली करता है उसे होने दिया जाता है।

Filters मॉब की फ़ाइलों में हर जगह दिखते हैं: इवेंट्स में, damage sensors और targeting जैसे कंपोनेंट में, और spawn rules में। इन्हें एक बार सीख लें और आप इन्हें हर जगह इस्तेमाल कर सकते हैं।

फ़ाइलें

Filters की अपनी कोई फ़ाइल नहीं होती। ये दूसरी फ़ाइलों के अंदर filters नाम की keys में रहते हैं (या spawn rules में biome_filter में)।

Filters कहाँ दिखते हैं
BP/
  entities/
    ruby_golem.json      <- in events and many components
  spawn_rules/
    ruby_golem.json      <- minecraft:biome_filter

एक test

सबसे छोटा filter एक अकेला test होता है:

एक अकेला test
{ "test": "is_family", "subject": "other", "operator": "==", "value": "player" }

इसे एक वाक्य की तरह पढ़ें: "क्या other एंटिटी की family player के बराबर है?"

Fieldइसका मतलबअगर आप इसे न लिखें
testकौन-सा सवाल पूछना है। नीचे की टेबल देखें।ज़रूरी है
subjectकिसके बारे में पूछना हैself
operatorvalue से तुलना कैसे करनी हैequals
valueकिससे तुलना करनी हैहाँ/ना वाले tests के लिए: true
domainकुछ tests के लिए अतिरिक्त जानकारी, जैसे equipment slot या property का नामTest पर निर्भर है

Defaults की वजह से छोटे filters आम हैं:

छोटे रूप
{ "test": "is_daytime" }
{ "test": "in_water", "value": false }
{ "test": "has_tag", "value": "wiki:tamed" }

पहला पूछता है "क्या दिन है?"। दूसरा पूछता है "क्या यह मॉब पानी में नहीं है?"।

Subjects: किसकी जाँच हो रही है

Subjectयह कौन है
selfवह मॉब जिसका यह filter है
otherInteraction में दूसरी एंटिटी: जिसे target किया जा रहा है, छुआ जा रहा है या जिससे interact हो रहा है
playerInteraction में शामिल प्लेयर
targetमॉब का मौजूदा target
damagerDamage sensor में, जिसने damage किया
parentमॉब का parent
blockशामिल ब्लॉक, is_block जैसे ब्लॉक tests के लिए

कौन-से subjects सही बैठते हैं, यह filter की जगह पर निर्भर करता है। Damage sensor में other और damager हमलावर होते हैं। Targeting बिहेवियर में other वह मॉब है जिसे target बनाने पर विचार हो रहा है।

Operators: तुलना कैसे करें

Operatorमतलब
==, =, equalsबराबर (default)
!=, <>, notबराबर नहीं
<से कम
<=से कम या बराबर
>से ज़्यादा
>=से ज़्यादा या बराबर

कम/ज़्यादा वाले operators सिर्फ़ actor_health या distance_to_nearest_player जैसे संख्या वाले tests के लिए सही बैठते हैं।

Tests को मिलाना

कई tests को एक group में साथ रखें:

Groupकब पास होता है
all_ofअंदर का हर test पास हो (AND)
any_ofअंदर का कम से कम एक test पास हो (OR)
none_ofअंदर का कोई भी test पास न हो (NOT)

Groups में दूसरे groups भी हो सकते हैं, इसलिए आप कोई भी नियम बना सकते हैं। यह filter ऐसे प्लेयर के लिए पास होता है जो sneak नहीं कर रहा, रात में या तूफ़ान में:

Nested filter
"filters": {
  "all_of": [
    { "test": "is_family", "subject": "other", "value": "player" },
    { "test": "is_sneaking", "subject": "other", "value": false },
    {
      "any_of": [
        { "test": "is_daytime", "value": false },
        { "test": "weather_at_position", "value": "thunderstorm" }
      ]
    }
  ]
}

खाली list का मतलब all_of

अगर आप group का नाम लिखे बिना tests की सादी list लिखते हैं, तो हर test को पास होना होगा, बिल्कुल all_of की तरह। Vanilla spawn rules अक्सर ऐसा करते हैं।

Filters कहाँ इस्तेमाल होते हैं

Damage sensor: किसने मारा, उस पर react करें

BP/entities/ruby_golem.json (components)
"minecraft:damage_sensor": {
  "triggers": [
    {
      "on_damage": {
        "filters": { "test": "is_family", "subject": "other", "value": "player" },
        "event": "wiki:become_angry"
      }
    }
  ]
}

सिर्फ़ प्लेयर ही golem को गुस्सा दिलाते हैं। मॉब, गिरने या आग से हुआ damage कुछ खास नहीं करता। देखें minecraft:damage_sensor।

Targeting: किस पर हमला करना है

BP/entities/ruby_golem.json (component_groups)
"minecraft:behavior.nearest_attackable_target": {
  "priority": 2,
  "entity_types": [
    {
      "filters": {
        "all_of": [
          { "test": "is_family", "subject": "other", "value": "monster" },
          { "test": "is_family", "subject": "other", "operator": "not", "value": "creeper" }
        ]
      },
      "max_dist": 16
    }
  ]
}

Golem monsters का शिकार करता है, लेकिन creepers को छोड़ देता है। देखें behavior.nearest_attackable_target।

Environment sensor: दुनिया पर react करें

BP/entities/ruby_golem.json (components)
"minecraft:environment_sensor": {
  "triggers": [
    {
      "filters": { "test": "in_water" },
      "event": "wiki:start_rusting"
    }
  ]
}

Environment sensor अपने filters लगातार जाँचता है और जब तक वे पास होते हैं, इवेंट fire करता है।

इवेंट्स और spawn rules

इवेंट्स के अंदर filters तय करते हैं कि कोई entry चलेगी या नहीं (देखें एंटिटी इवेंट्स)। Spawn rules में minecraft:biome_filter biomes चुनने के लिए इन्हीं tests का इस्तेमाल करता है (देखें Spawn rules)।

सबसे काम के tests

सौ से ज़्यादा tests हैं। ये वे हैं जिनकी आपको सबसे ज़्यादा ज़रूरत पड़ेगी, इस हिसाब से बाँटे गए कि वे क्या जाँचते हैं।

यह कौन है?

TestValueतब पास होता है जब subject...
is_familyFamily का नाम, जैसे "player"के minecraft:type_family में वह family हो
has_componentकंपोनेंट ID, जैसे "minecraft:is_baby"के पास अभी वह कंपोनेंट हो
has_tagTag का नामके पास /tag से दिया गया वह tag हो
is_babytrue / falseबच्चा हो
is_tamedtrue / falseपालतू हो
is_ownertrue / falseउस मॉब का मालिक हो जिसका यह filter है
has_nametagtrue / falseका कोई कस्टम नाम हो
is_variantसंख्याके minecraft:variant में वह संख्या हो
is_mark_variantसंख्याके minecraft:mark_variant में वह संख्या हो
is_colorरंग का नाम, जैसे "red"का वह रंग हो

Health और हालत

TestValueतब पास होता है जब subject...
actor_healthसंख्याकी health value से तुलना में सही हो (<, > आदि इस्तेमाल करें)
is_missing_healthtrue / falseकी health पूरी न हो
has_mob_effectEffect ID, जैसे "poison"पर वह effect हो। देखें Vanilla effects।
on_firetrue / falseजल रहा हो
on_groundtrue / falseज़मीन पर खड़ा हो
is_sneakingtrue / falsesneak कर रहा हो
is_sprintingtrue / falsesprint कर रहा हो
is_movingtrue / falseचल रहा हो
is_ridingtrue / falseकिसी दूसरी एंटिटी पर सवार हो
rider_countसंख्यापर इतने सवार हों
has_targettrue / falseके पास हमला करने के लिए कुछ हो
has_damageDamage का प्रकार, जैसे "fall" या "fire"को उस तरह का damage लग रहा हो (damage sensors)

आइटम

TestValueतब पास होता है जब subject...
has_equipmentआइटम IDके domain में दिए slot में वह आइटम हो, जैसे "hand", "head" या "any"
has_equipment_tagआइटम tagके domain slot में उस tag वाला आइटम हो
has_ranged_weapontrue / falseधनुष या crossbow पकड़े हो

यह कहाँ है

TestValueतब पास होता है जब subject...
in_watertrue / falseपानी में हो
is_underwatertrue / falseपूरी तरह पानी के नीचे हो
in_water_or_raintrue / falseपानी या बारिश में हो
in_lavatrue / falselava में हो
is_undergroundtrue / falseके ऊपर ब्लॉक हों
in_nether / in_overworldtrue / falseउस dimension में हो
has_biome_tagBiome tag, जैसे "desert"उस tag वाले biome में हो। देखें Vanilla biomes।
is_biomeBiome का प्रकार, जैसे "ocean" या "jungle"उस बड़े प्रकार के biome में हो
is_altitudeसंख्याकी ऊँचाई value से तुलना में सही हो
is_blockब्लॉक ID("subject": "block" के साथ) शामिल ब्लॉक वही ब्लॉक हो
is_in_villagetrue / falseगाँव के अंदर हो

has_biome_tag या is_biome?

has_biome_tag को चुनें। Tags ज़्यादा सटीक होते हैं, और दूसरे ऐड-ऑन के कस्टम biomes में भी वही tags हो सकते हैं।

दूरी

TestValueतब पास होता है जब...
distance_to_nearest_playerब्लॉक की संख्यासबसे पास का प्लेयर इतनी दूर हो (< या > इस्तेमाल करें)
target_distanceब्लॉक की संख्यामॉब का target इतनी दूर हो
owner_distanceब्लॉक की संख्यामॉब का मालिक इतनी दूर हो
home_distanceब्लॉक की संख्यामॉब का घर इतनी दूर हो

समय, मौसम और world

TestValueतब पास होता है जब...
is_daytimetrue / falseदिन हो
hourly_clock_time0 से 24000 तक की संख्यादिन का समय value से तुलना में सही हो
moon_phase0 से 7 तक की संख्याचाँद उस phase में हो
weather_at_positionमौसम, जैसे "thunderstorm"subject जहाँ खड़ा है वहाँ का मौसम मेल खाए
is_difficulty"peaceful", "easy", "normal" या "hard"गेम उस difficulty पर हो
is_game_ruletrue / falsedomain में दिया game rule चालू हो
random_chanceसंख्याrandom पासा लग जाए: 10 की value लगभग 10 में से 1 बार पास होती है

एंटिटी properties

ये मॉब के description में declare की गई properties पढ़ते हैं। Property का नाम domain में जाता है:

TestValue
bool_propertytrue / false
int_propertyपूर्ण संख्या
float_propertyदशमलव संख्या
enum_propertyvalues के शब्दों में से एक
has_propertyProperty का नाम (value में, domain नहीं)
Property की जाँच
{ "test": "enum_property", "domain": "wiki:mood", "value": "angry" }

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

आपको क्या दिखता हैसबसे संभावित कारण
Filter कभी पास नहीं होतागलत subject। Damage sensor या targeting में आमतौर पर आपको self नहीं, other चाहिए।
Filter तब पास होता है जब नहीं होना चाहिएकिसी हाँ/ना test में "नहीं" के लिए "value": false छूट गया है, या किसी key की spelling गलत है (जैसे allof)। Content Log देखें।
Family test fail होता हैवह family target की minecraft:type_family list में नहीं है
Property test fail होता हैdomain में दिया property नाम description.properties वाले नाम से मेल नहीं खाता
संख्या वाला test अजीब बर्ताव करता हैOperator छूट गया है, इसलिए यह बिल्कुल सटीक मेल जाँचता है

और मदद समस्या निवारण में है।

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