Hướng dẫn chơi Minecraft: Tạo pack behavior – Làm lợn phát nổ


Hướng dẫn chơi Minecraft: Tạo pack behavior – Làm lợn phát nổ

Thêm các components

Nếu muốn xem cách để thiết lập một thực thể; hãy thử sửa đổi lại code của lợn!

Tìm file creeper.json trong folder Behavior Pack Vanilla của vật thể (Vanilla_Behavior_Pack/entities/) và mở nó trong một cửa sổ soạn thảo văn bản mới. Bây giờ bạn mở 2 hai  file pig.json từ add-on tùy chỉnh và creeper.json từ Vanilla ở hai cửa sổ riêng biệt.

Điều đầu nên làm là để con lợn tìm mục tiêu. Chúng ta có thể làm điều đó bằng cách thêm  hai components là “minecraft:nearest_attackable_target” và “minecraft:target_nearby_sensor” vào components object của file  pig.json.

Tìm “minecraft:behavior.random_look_around” trong components object, nó thường nằm ở vị trí cuối cùng trước phần “events”.

Thêm dấu phẩy sau dấu ngoặc đóng của random_look_around. Đây là nơi chúng ta sẽ thêm component nhắm mục tiêu. Nhập hoặc copy và paste  hai component  là target_nearby_sensor và nearest_attackable_target từ file creeper.json vào pig.json. Ở phần cuối của component thuộc file Pig.json sẽ trông giống như thế này (văn bản mới được tô sáng màu xanh lá cây):

pig.json excerpt:

"minecraft:behavior.random_look_around": {
  "priority": 9
},
"minecraft:behavior.nearest_attackable_target": {
  "priority": 1,
  "entity_types": [
    {
      "filters": { "other_with_families": "player" },
      "max_dist": 16
    }
  ], 
  "must_see": true
},
"minecraft:target_nearby_sensor": {
  "inside_range": 3.0,
  "outside_range": 7.0,
  "on_inside_range": {
    "event": "minecraft:start_exploding",
    "target": "self"
  },
  "on_outside_range": {
    "event": "minecraft:stop_exploding",
    "target": "self"
  }
}

Lưu ý rằng dấu ngoặc đóng cho target_nearby_sensor không có dấu phẩy phía sau nó bởi vì nó là giá trị cuối cùng trong danh sách giá trị cho ” components”.

minecraft:nearest_attackable_target

Component này tìm mục tiêu tấn công gần nhất với những hạn chế nhất định.

  • Priority – Cụm này dùng để set tầm quan trọng của thành phần này. Các thành phần có mức độ ưu tiên cao hơn sẽ có nhiều khả năng được chạy hơn. Lưu ý rằng số thấp hơn sẽ có mức được ưu tiên cao hơn và mức độ ưu tiên có thể là số âm!
  • Entity_types – Đây là nơi chúng ta lọc các loại thực thể mà thực thể chính có thể đặt làm mục tiêu.
  • Max_dist– nếu thực thể chúng ta muốn target nằm trong khoảng này thì ta có thể target nó.
  • Must_see – liệu thực thể chúng ta muốn target có phải được nhìn thấy thì mới target được hay không.

Lưu ý rằng trong code này, người viết đang lọc loại người chơi và chỉ có thể target được mục tiêu khi nó nằm trong phạm vi 16 khối.

minecraft:target_nearby_sensor

Component này sẽ kích hoạt các sự kiện dựa trên mức độ đóng của mục tiêu của thực thể.

  • Inside_range– khoảng cách trong các khối mà mục tiêu được coi là nằm trong phạm vi của thực thể này.
  • Outside_range – khoảng cách trong các khối mà mục tiêu được coi là nằm ngoài phạm vi của thực thể này
  • On_inside_range– mục này sẽ kích hoạt sự kiện được chỉ định khi mục tiêu gần hơn inside_range
  • On_outside_range– mục này sẽ kích hoạt sự kiện được chỉ định khi mục tiêu xa hơn outside_range

Lưu ý rằng on_inside_range và on_outside_range sẽ kích hoạt các sự kiện “minecraft:start_exploding” và “minecraft:stop_exploding” tương ứng. Điều này cho đến thời điểm hiện tại sẽ không xảy ra bất cứ điều gì vì chúng ta chưa thêm các sự kiện vào!

Thêm sự kiện (event)

Kéo xuống dưới cùng object “sự kiện” trong pig.json và thêm dấu phẩy vào phía sau dấu ngoặc kép đóng của “minecraft:on_unleash”. Đây là nơi chúng ta sẽ thêm các sự kiện bắt đầu và ngừng phát nổ.

Gõ hoặc copy và paste sự kiện (event) “minecraft:start_exploding” và “minecraft:stop_exploding” từ creeper.json vào pig.json. Ở mục event cuôi cùng của Pig.jsons sẽ trông giống như thế này (văn bản mới được tô sáng màu xanh lá cây):

pig.json excerpt:

"minecraft:on_unleash": {
  "remove": {
    "component_groups": [
      "minecraft:pig_leashed"
    ]
  }
},
"minecraft:start_exploding": {
  "remove": {
    "component_groups":[
      "minecraft:hunting"
    ]
  },
  "add": {
    "component_groups": [
      "minecraft:exploding"
    ]
  }
},
"minecraft:stop_exploding": {
  "remove": {
    "component_groups": [
      "minecraft:exploding"
    ]
  },
  "add": {
    "component_groups": [
      "minecraft:hunting"
    ]
  }
}

Lúc nãy đã mang đến các sự kiện của creeper, bây giờ chúng ta cần phải làm một số công việc dọn dẹp. Lợn không cần một nhóm component về săn bắn nên chúng ta có thể xóa phần “remove” khỏi start_exploding và phần “add” khỏi stop_exploding. Code của chúng ta bây giờ trông giống như thế này:

pig.json excerpt:

Lưu ý rằng cả hai sự kiện đang được thêm và xóa một nhóm component được gọi là “minecraft:exploding”. Lợn của chúng ta thì vẫn chưa có nhóm component này!

"minecraft:on_unleash": {
  "remove": {
    "component_groups": [
      "minecraft:pig_leashed"
    ]
  }
},
"minecraft:start_exploding": {
  "add": {
    "component_groups": [
      "minecraft:exploding"
    ]
  }
},
"minecraft:stop_exploding": {
  "remove": {
    "component_groups": [
      "minecraft:exploding"
    ]
  }
}

Thêm các nhóm component

Cuộn ngược lên đầu pig.json đến phần ” component_groups”. Tìm nhóm component cuối cùng, thường là pig_leashed và thêm dấu phẩy vào dấu ngoặc nhọn đóng của nó. Bây giờ, hãy nhập nội dung sau hoặc copy nhóm component “minecraft: exploding” từ creeper.json. Pig.json bây giờ trông giống như sau (mã mới màu xanh lá cây):

pig.json excerpt:

  "minecraft:pig_leashed": {
    "minecraft:behavior.move_towards_restriction": {
      "priority": 2,
      "speed_multiplier": 1.0
    }
  },
  "minecraft:exploding": {
    "minecraft:explode": {
      "fuseLength": 1.5,
      "fuseLit": true,
      "power": 3,
      "causesFire": false
    }
  }
},
"components": {
  "minecraft:damage_sensor": {

minecraft:explode

fuseLength – Mất bao lâu, tính bằng giây, cho đến khi thực thể này phát nổ từ khi cầu chì được sáng

fuseLit – cầu chì có tự động sáng khi thành phần này được thêm vào không

power – mục này xác định thiệt hại và bán kính nổ lớn như thế nào

causesFire – mục này xác định liệu vụ nổ có khiến các khối gần đó bốc cháy hay không

Giờ hãy thêm một component về quy mô vào nhóm này, để lợn của chúng ta tăng kích thước lên to hơn trước khi nó phát nổ! Thêm dấu phẩy vào dấu ngoặc nhọn cuối cùng của component ” explode” và đặt vào phần sau (văn bản mới có màu xanh lá cây):

pig.json excerpt:

  "minecraft:exploding": {
    "minecraft:explode": {
      "fuseLength": 1.5,
      "fuseLit": true,
      "power": 3,
      "causesFire": false
    },
    "minecraft:scale": {
      "value": 2      
    }
  }
},
"components": {
  "minecraft:damage_sensor": {

minecraft:scale

Value – một cấp số nhân với quy mô bình thường của thực thể. Giá trị 2 sẽ nhân đôi tỷ lệ, giá trị 0,5 sẽ giảm một nửa tỷ lệ, v.v..

Chạy thử add-on

  • Khởi động game
  • Tạo một world mới
  • Set chế độ creative
  • Bận cheats
  • Click vào add-ons
  • Tìm mục “Tutorial Behavior Pack” trong danh sách bên phải và click vào
  • Click vào play
  • Spawn một con lợn bằng cách sử dụng trứng lợn pawn từ kho creative
  • Chạy 20 khối hoặc xa hơn
  • Đổi sang mode survival bằng cách sử dụng lệnh slash: /gamemode s
  • Chạy về phía con lợn

Xem bài viết tổng quan về file JSON của vật thể tại ĐÂY

Xem bài viết về gói behavior tại ĐÂY

Xem bài viết gốc tại ĐÂY