Chào mọi người! Hôm qua tui đăng cái tui làm, là một con ma-nơ-canh di chuyển khi không ai nhìn. Hôm nay, tui sẽ giải thích nó hoạt động ra sao và chỉ cho mấy bạn tự làm luôn.
Giải thích nè
Thật ra làm cũng đơn giản. Khó nhất là phần phát hiện khi nhìn, nhưng chỉ cần vài lệnh là xong. Cách nó hoạt động là có một con mob thù địch vô hình, có thuộc tính tốc độ cao hơn, AI của nó bị tắt khi bạn nhìn vào, và bật lại khi bạn nhìn đi chỗ khác. Tui cũng thêm một vòng lặp nhạc để tạo không khí rùng rợn, với tiếng "cạch" lặp lại khi bạn nhìn đi để báo hiệu nó đang di chuyển. Còn có một cái ngẫu nhiên để thay đổi tư thế của nó khi bạn nhìn đi nữa.
Cách làm
Để nó hoạt động, bạn cần triệu hồi 2 thực thể: cái giá đỡ áo giáp, và con mob bạn muốn gắn vào. Tui dùng xác sống vì nó không cháy vào ban ngày, nhưng cứ thoải mái dùng gì cũng được. Quan trọng là phải đặt tên riêng cho chúng để khỏi nhầm với mấy con mob cùng loại. Tui dùng "Mannequin" cho giá đỡ áo giáp và "Walking Mannequin" cho xác sống.
Walking Mannequin (Ma-nơ-canh di chuyển)
execute at @p run summon husk ~ ~ ~ {PersistenceRequired:1,Silent:1,NoAI:1,CustomName:""Walking Mannequin"",ActiveEffects:[{Id:14,Amplifier:0,ShowParticles:0b,Duration:999999}],Attributes:[{Name:"minecraft:generic.movement_speed",Base:.7},{Name:"minecraft:generic.follow_range",Base:100},{Name:"minecraft:generic.attack_damage",Base:10}]}Mannequin (Ma-nơ-canh)
execute at @p run summon armor_stand ~ ~ ~ {HandItems:[{id:"minecraft:iron_axe",Count:1b}],NoBasePlate:1b,ShowArms:1b,CustomName:"{"text":"Mannequin"}",Pose:{Body:[0f,0f,5f],LeftLeg:[16f,0f,0f],RightLeg:[345f,0f,0f],LeftArm:[270f,0f,0f]},Invulnerable:1,ArmorItems:[{},{},{},{}]}Đầu tiên, thiết lập một lệnh lặp lại như sau để liên tục dịch chuyển giá đỡ áo giáp đến vị trí của thực thể.
execute at @e[name=Mannequin] run tp @e[name=Mannequin,limit=1,sort=nearest] @e[name="Walking Mannequin",limit=1,sort=nearest]Tiếp theo, bạn cần một cách để phát hiện khi thực thể đang bị nhìn. Việc này có thể thực hiện bằng một khối lệnh lặp lại bằng cách sử dụng lệnh sau:
execute at @e[name="Walking Mannequin"] as @p[distance=..50] at @s anchored eyes facing entity @e[name="Walking Mannequin"] eyes anchored feet positioned ^ ^ ^1 rotated as @s positioned ^ ^ ^-1 if entity @s[distance=1.1..] run playsound minecraft:entity.armor_stand.hit master @a ~ ~ ~ .1 1 0Lệnh này tạo ra một loại vùng xung quanh giá đỡ áo giáp, có thể phát hiện nếu bạn không nhìn vào nó, khiến nó phát ra âm thanh "cạch" như một loại chỉ báo. [distance=..50] có thể được sửa đổi theo ý thích của bạn. Nó có thể được làm lớn hơn hoặc ngắn hơn tùy thuộc vào nhu cầu của bạn.
Giờ thì bạn phải xuất một bộ so sánh từ khối lệnh này để phần còn lại hoạt động. Tui kết nối nó với một bộ đảo ngược redstone, cái này kích hoạt và hủy kích hoạt xác sống tùy thuộc vào tín hiệu. Việc này có thể được thực hiện rất đơn giản với các lệnh sau:
Bật
execute at @e[name="Walking Mannequin"] run data merge entity @e[name="Walking Mannequin",sort=nearest,limit=1] {NoAI:0}Tắt
execute at @e[name="Walking Mannequin"] run data merge entity @e[name="Walking Mannequin",sort=nearest,limit=1] {NoAI:1}Và... xong! Tui có thêm nhiều thứ sau cái này, nhưng chỉ để trang trí (giá đỡ áo giáp thay đổi tư thế, nhạc nền, v.v.)
Không khí
execute at @e[name="Walking Mannequin"] run playsound minecraft:ambient.crimson_forest.loop master @a ~ ~ ~ 1 1 0Tui biết cái này có thể làm hiệu quả hơn nhiều với các hàm và gói dữ liệu, nhưng do giới hạn của tui trên server nên tui làm vậy. Cứ thoải mái thử nghiệm và sửa đổi nó theo ý thích của bạn nhé!