Bedrock Edition beta 1.18.20.23

**Beta 1.18.20.23** (วินโดวส์/เอ็กซ์บ็อกซ์/แอนดรอยด์) **Preview 1.18.20.24** (ไอแพดโอเอส/ไอโอเอส) เป็นเวอร์ชันทดลอง (เบต้า/พรีวิว) ที่สองของรุ่นเบดร็อค 1.18.20 ปล่อยตัววันที่ 2 กุมภาพันธ์ 2022 ในเวอร์ชันที่มีการเปลี่ยนแปลงเกี่ยวกับคุณสมบัติทดลอง (Experimental), ทางเทคนิค และมีการแก้ไขข้อผิดพลาดจำนวนหนึ่ง

## คุณสมบัติทดลอง (Experimental)

### การเปลี่ยนแปลง

**กบ (Frog)**

* ตอนนี้กบจะใช้แอนิเมชันกระโดดต่อเมื่อใช้ Jump Goal
* ตอนนี้สามารถล่อและผสมพันธุ์กบโดยใช้ก้อนสไลม์ (Slime Ball)
* ตอนนี้ลูกน้ำมีค่าเลือดเท่ากับ 6
* ปรับแต่งการเกิดของกบในที่ลุ่มน้ำขัง - น้ำหนัก 10 เฮดไซซ์ 2-5

**ไข่กบ (Frog Spawn)**

* ตอนนี้ไข่กบ (Frog Spawn) สามารถทำลายได้ด้วยลูกสูบ (Piston)
* ตอนนี้ไข่กบ (Frog Spawn) สามารถวางไว้บนบล็อกที่มี waterlogged (น้ำขัง)
* ไข่กบ (Frog Spawn) จะไม่สามารถวางเหนือพื้นปกติหรือใต้น้ำอีกเมื่อใช้คำสั่ง `/fill`

**เขาแพะ (Goat Horn)**

* หลังจากใช้เขาแพะ (Goat Horn) มันจะมีระยะคูลดาวน์เล็กน้อยก่อนจะสามารถใช้ได้อีกครั้ง

### การแก้ไข

**กบ (Frog)**

* `JumpToBlockGoal` ตอนนี้ทำให้สิ่งมีชีวิตกระโดดไปยังบล็อกที่มีขนาดเล็ก เช่น ใบบัว (Lily Pad) ได้อย่างถูกต้อง

**ไข่กบ (Frog Spawn)**

* ไข่กบ (Frog Spawn) จะหายไปหากแหล่งน้ำทางด้านล่างถูกลบออก
* ไข่กบ (Frog Spawn) จะไม่ป้องกันการฟักตัวอีกต่อไปเมื่อมีบล็อกอยู่ทางด้านล่าง
* ไข่กบ (Frog Spawn) จะถูกทำลายด้วยบล็อกที่ร่วงลงมา (MCPE-150781)

## การเปลี่ยนแปลง

**ความเท่าเทียมกันของวานิลลา**

* ตอนนี้หม้อปรุงยา (Cauldron) ไม่สามารถถูกเติมเต็มด้วยน้ำจากหินหยด (Dripstone) ที่อยู่ใต้น้ำไหลได้

**ไอเทม**

* ชุดเกราะแบบกำหนดเอง (Armor) สามารถสวมใช้โดยการกดปุ่ม "Use (ใช้)" เมื่อสวมใส่ชุดเกราะที่แตกต่างกันอยู่ (MCPE-125323)

## การแก้ไข

**สกินกำหนดเอง (Custom Skin)**

* แก้ไขที่สกินกำหนดเองไม่ถูกบันทึกเมื่อออกจากห้องแต่งตัว (Dressing Room)

**เกมเพลย์**

* แก้ไขที่เวทซ่อมแซม (Mending enchantment) ใช้ XP ในการซ่อมแซมอุปกรณ์ไม่ถูกต้อง (MCPE-120119)

**สิ่งมีชีวิต**

* ซอมบี้ใต้น้ำ (Drowned) จะไม่สามารถเกิดได้อีกหากว่าแสงสว่างของบล็อกมากกว่า 0 (MCPE-150148)

**หน้าจอผู้ใช้**

* แก้ไขปัญหาป้ายกำกับถูกตัดหายไปในบางภาษา เหนือตารางการคราฟต์แบบ 2x2 ในหน้าช่องเก็บของเมื่อใช้ UI เป็นแบบ Pocket
* แก้ไขการตั้งค่าตัวเลือกหน้าสร้างโลกใหม่แบบทดลองไม่ทนอยู่ระว่างเซสชั่นการเล่น (Play Session)

## การอัปเดตทางเทคนิค

### การเปลี่ยนแปลง

**คำสั่ง**

* คำสั่ง `/tickingarea` จะไม่ดัดแปลงพื้นที่จากเอนทิตีที่มีส่วนประกอบ (Component) `tick_world`

**EatMobGoal**

* `EatMobGoal` จะไม่ทำงานเมื่อเริ่มหากว่าผู้เล่นนั้นเป็นเป้าหมาย

**GameTest Framework**

* เวกเตอร์
	+ เพิ่มฟังก์ชัน `length(): number` - ส่งกลับความยาวของเวกเตอร์นี้
	+ เพิ่มฟังก์ชัน `normalized(): Vector` - ส่งมาตรฐานของเวกเตอร์นี้กลับ
	+ เพิ่มฟังก์ชันคงที่ `distance(a:Vector, b:Vector): number` - ส่งกลับระยะทางระหว่างสองเวกเตอร์
	+ เพิ่มฟังก์ชันคงที่ `lerp(a:Vector, b:Vector, t: number): Vector` - ส่งกลับการแก้ไขเชิงเส้นระหว่าง a และ b โดยใช้ t เป็นตัวควบคุม
	+ เพิ่มฟังก์ชันคงที่ `slerp(a:Vector, b:Vector, s: number): Vector` - ส่งกลับการแก้ไขเชิงเส้นทรงกลมระหว่าง a และ b โดยใช้ s เป็นตัวควบคุม
	+ เพิ่มฟังก์ชันคงที่ `cross(a:Vector, b:Vector): Vector` - ส่งกลับผลคูณไขว้ของเวกเตอร์เหล่านี้
	+ เพิ่มฟังก์ชันคงที่ `add(a:Vector, b:Vector): Vector` - ส่งกลับผลบวกของเวกเตอร์เหล่านี้
	+ เพิ่มฟังก์ชันคงที่ `subtract(a:Vector, b:Vector): Vector` - ส่งกลับผลลบของเวกเตอร์เหล่านี้
	+ เพิ่มฟังก์ชันคงที่ `multiply(a:Vector, b:Vector): Vector` - ส่งกลับผล component-wise product ของเวกเตอร์เหล่านี้
	+ เพิ่มฟังก์ชันคงที่ `divide(a:Vector, b:Vector): Vector` - ส่งกลับผล component-wise division ของเวกเตอร์เหล่านี้
	+ เพิ่มฟังก์ชันคงที่ `multiply(a:Vector, b:number): Vector` - ส่งกลับผลคูณของเวกเตอร์และสเกลาร์เหล่านี้
	+ เพิ่มฟังก์ชันคงที่ `divide(a:Vector, b:number): Vector` - ส่งกลับผลหารของเวกเตอร์และสเกลาร์เหล่านี้
	+ เพิ่มฟังก์ชันคงที่ `min(a:Vector, b:Vector): Vector` - ส่งกลับเวกเตอร์ที่สร้างจากส่วนประกอบที่เล็กที่สุดของเวกเตอร์สองเวกเตอร์
	+ เพิ่มฟังก์ชันคงที่ `max(a:Vector, b:Vector): Vector` - ส่งกลับเวกเตอร์ที่สร้างจากส่วนประกอบที่ใหญ่ที่สุดของเวกเตอร์สองเวกเตอร์
* โลก
	+ เพิ่มฟังชัน `playSound(soundName: String, soundOptions: SoundOptions): void` - เล่นเสียงตามที่ระบุด้วยชื่อของเสียง, ตำแหน่งจัดเก็บ, การตั้งระดับเสียง, หรือระดับเสียงที่ตั้งค่าไว้ในอาร์กิวเมนต์ `SoundOptions`
* `EntityItemComponent`
	+ เพิ่มส่วนประกอบ `EntityItemComponentthat` สามารถใช้เพื่อรับ `ItemStack` จากไอเทมเอนทิตี เช่น `getComponent(“item”).itemStack`

### การแก้ไข

**บล็อก**

* แก้ไขปัญหาวัตถุที่พุ่งได้ (Projectile) กระเด้งแปลก ๆ เมื่อไปโดนระฆัง (Bell) (MCPE-47847)

**โมแลง (Molang)**

* แก้ไข Logical AND เพื่อให้ได้ประเมินก่อน Logical OR และสำหรับตัวดำเนินการเปรียบเทียบ (Comparison Operator) เพื่อให้ได้ประเมินก่อนตัวดำเนินการสมมาตร (Quality Operator)
	+ นี่คือการเปลี่ยนเวอร์ชันของโมแลง (Molang) ที่จะมีผลกระทบเฉพาะแค่กับนิพจน์ของโมแลง (Molang Expression) ในชุดแพ็คที่ใช้ `min_engine_version` ของเวอร์ชัน 1.18.20 หรือสูงกว่า

**การสร้างสิ่งก่อสร้างและการเกิดของ Actor**

* แก้ไขปัญหาที่ผลึกเอนด์ (End Crystal) เกิดซ้ำกันสองอันบนเสาเสาเดียว (MCPE-147817)

**ตัวทดลอง (Experimental)**

* แก้ไขปัญหาที่คุณสมบัติของ Actor ไม่ซิงค์จากเซิร์ฟเวอร์ไปยังไคลเอนต์เสมอ ๆ

## หมายเหตุ

1. ↑ เนื้อหาตัวอย่างในส่วนนี้ไม่แน่ใจในสำนวนการใช้งานเกี่ยวกับนิพจน์และคำอธิบาย จึงขอแทนด้วยภาษาต่างประเทศทั้งหมด หากมีใครที่ชำนาญในการใช้งานโมแลงโปรดแก้ไขคำที่ไม่เกี่ยวข้องเป็นภาษาไทยให้ด้วย ขอบคุณมากครับ

## อ้างอิง

1. ↑ https://feedback.minecraft.net/hc/en-us/articles/4423906361869 - feedback.minecraft.net