Barter Shop — ร้านแลกเปลี่ยน/คราฟต์
ฐานข้อมูล YAML สำหรับร้านแลกไอเทมและคราฟต์ — กำหนดใน npc/barters.yml และเรียกจากสคริปต์ NPC ด้วย bartershop
Barter YML คืออะไร
ฐานข้อมูลที่กำหนด ร้านแลกเปลี่ยน/คราฟต์ ให้ผู้เล่นแลกไอเทมกับไอเทม หรือคราฟต์โดยใช้ของหลายชิ้นร่วมกัน แทนการขายด้วย Zeny อย่างเดียว
ตำแหน่งไฟล์
| ไฟล์ | หน้าที่ |
|---|---|
npc/barters.yml | ไฟล์หลักที่โหลด Barter ทั้งหมด |
npc/barters-npc/*.yml | ไฟล์ร้านแต่ละประเภท (refine, craft ฯลฯ) |
โครงสร้างพื้นฐาน (YAML)
Header:
Type: BARTER_DB
Version: 2
Body:
- Name: ชื่อ NPC # ชื่อร้าน (ใช้เรียกจากสคริปต์)
Map: morocc
X: 133
Y: 68
Direction: south
Sprite: 1_m_01
WaitingRoom: Craft Charm
CraftBarter: true # true = คราฟต์, false = ซื้อ Zeny
Items:
- Index: 1
Item: Charm_All_Status # ไอเทมที่ได้
Zeny: 1000000 # ราคา Zeny
Rate: 3000 # โอกาสสำเร็จ (%)
RequiredItems:
- Index: 0
Item: Cash_Coin
Amount: 10
- Index: 1
Item: Oridecon
Amount: 50
ฟิลด์สำคัญ
| ฟิลด์ | คำอธิบาย |
|---|---|
Name | ชื่อ NPC (เรียกจากสคริปต์ด้วย bartershop) |
Map, X, Y | ตำแหน่งบนแผนที่ |
Sprite | รูปร่าง NPC |
Item | ไอเทมที่ได้รับ |
Zeny | ราคา Zeny (ถ้าไม่ใช้ RequiredItems) |
RequiredItems | ไอเทมที่ต้องใช้แลก (สูงสุด 5 ชิ้น: Index 0–4) |
Stock | จำนวนสต็อก (0 = ไม่จำกัด) |
Rate | โอกาสสำเร็จสำหรับคราฟต์ (เช่น 3000 = 30%) |
CraftBarter | true = คราฟต์ไอเทม, false = ร้านขายธรรมดา |
วิธีเพิ่มไฟล์ Barter ใหม่
- สร้างไฟล์ใน
npc/barters-npc/เช่นmy_shop.yml - เขียนโครงสร้างตามตัวอย่างด้านบน
- เพิ่ม path ใน
npc/barters.ymlส่วน Footer Imports
Footer:
Imports:
- Path: npc/barters-npc/refine.yml
- Path: npc/barters-npc/craft_charm.yml
- Path: npc/barters-npc/my_shop.yml # เพิ่มบรรทัดนี้
การเรียกใช้จากสคริปต์ NPC
ใช้คำสั่ง bartershop "ชื่อร้าน"; เช่น:
prontera,150,150,4 script NPC_Test 123,{
bartershop "Craft Item";
end;
}
รีโหลดหลังแก้ไข
ใช้คำสั่ง GM: @reloadbarterdb
ไฟล์ Barter ที่มีในโปรเจกต์
refine.yml— แลกแร่craft_charm.yml— คราฟต์ Charmcraft_mineral.yml— คราฟต์แร่craft_headgears.yml— คราฟต์หมวกcraft_dye_making.yml— ทำสีย้อมcraft_juice_making.yml— ทำน้ำผลไม้- และอื่นๆ ในโฟลเดอร์
barters-npc