กลับหน้าแรก
Showcase

Option Tier — สุ่ม Random Option อุปกรณ์

ระบบ NPC สุ่ม Option 3 ช่อง (Tier 1-3) สำหรับ Armor, Shield, Shoes, Garment, Upper และ Weapon บน rAthena — รองรับค่า Zeny/ไอเทม, Plan A/B เมื่อล้มเหลว และเมนูยืนยันใช้ใบกันแตก

อัปเดต: มิ.ย. 2026 อ่าน ~18 นาที

ภาพรวม

NPC Option Tier ให้ผู้เล่นสุ่ม Random Option บนอุปกรณ์ที่สวมใส่ โดยใช้กลุ่ม Option ที่กำหนดใน db/import/item_randomopt_group.yml และฟังก์ชัน randomoptgroup() + setrandomoption()

  • ตำแหน่ง NPC: morocc 132/111 (option_ticket.txt)
  • ค่าใช้จ่ายเริ่มต้น: 100,000 Zeny ต่อครั้ง (+ ไอเทมเสริมผ่าน .req_id / .req_qty ได้)
  • โอกาสสำเร็จ: 50% (.rate)
  • ค่าบริการหักก่อนสุ่ม — ทั้งสำเร็จและล้มเหลว
  • ล้มเหลว: ขึ้นกับ .fail_mode — Plan A (อุปกรณ์ปลอดภัย) หรือ Plan B (อุปกรณ์อาจหาย)
  • Plan B + มีใบกันแตกครบ: ผู้เล่นเลือก ใช้ / ไม่ใช้ ใบกันแตกก่อนยืนยันสุ่ม
  • สำเร็จ: ใส่ Option ช่อง 1–3 (แทนที่ Option เดิมในช่องเหล่านั้น)
  • โหมดสุ่ม: สุ่ม 3 Tier พร้อมกัน หรือทีละ Tier — เลือกเปิดใช้ Tier 1 / 2 / 3 ได้

รายการ Option ตามประเภท

แต่ละ Tier สุ่ม 1 Option จาก pool (น้ำหนักเท่ากัน) — ช่อง 1 = Tier 1, ช่อง 2 = Tier 2, ช่อง 3 = Tier 3

ARMOR (ชุดเกราะ)

T1

Tier 1

ช่อง 1

  • Drop1~3%
  • Exp1~3%
  • แบกน้ำหนักเพิ่มขึ้น1~100
  • HP1~100
  • SP1~30
  • ฟื้นฟู HP1~5%
  • ฟื้นฟู SP1~5%
T2

Tier 2

ช่อง 2

  • Atk1~7
  • Matk1~7
  • Def1~3
  • Mdef1~3
  • Flee1~5
  • MaxHP1~3%
  • MaxSP1~3%
T3

Tier 3

ช่อง 3

  • Drop1~3%
  • Exp1~3%
  • แบกน้ำหนักเพิ่มขึ้น1~100
  • Aspd1~3%
  • ต้านทานการโจมตีทุกธาตุยกเว้น Neutral1~3%
  • Drop, Exp1~5%
  • Atk, Matk1~2%
  • โจมตีมอนเตอร์แบบ Nomal Attack แรงขึ้น1~3%

SHIELD (โล่)

T1

Tier 1

ช่อง 1

  • Drop1~3%
  • Exp1~3%
  • แบกน้ำหนักเพิ่มขึ้น1~100
  • HP1~100
  • SP1~30
  • ฟื้นฟู HP1~5%
  • ฟื้นฟู SP1~5%
T2

Tier 2

ช่อง 2

  • Atk1~7
  • Matk1~7
  • ต้านทานธาตุ Neutral1~2%
  • ต้านทานประเภท Demi-Human1~2%
  • Flee1~5
  • MaxHP1~3%
  • MaxSP1~3%
T3

Tier 3

ช่อง 3

  • Drop1~3%
  • Exp1~3%
  • แบกน้ำหนักเพิ่มขึ้น1~100
  • Aspd1~3%
  • ป้องกันการโจมตีระยะไกล1~2%
  • Drop, Exp1~5%
  • Atk, Matk1~2%
  • ลดระยะเวลาในการร่ายเวทมนต์1~3%

SHOES (รองเท้า)

T1

Tier 1

ช่อง 1

  • Drop1~3%
  • Exp1~3%
  • แบกน้ำหนักเพิ่มขึ้น1~100
  • HP1~100
  • SP1~30
  • ฟื้นฟู HP1~5%
  • ฟื้นฟู SP1~5%
T2

Tier 2

ช่อง 2

  • Atk1~7
  • Matk1~7
  • เพิ่มพลังโจมตีระยะประชิด1~2%
  • โจมตีมอนเตอร์แบบ Nomal Attack แรงขึ้น1~3%
  • Flee1~5
  • เมื่อกำจัดศัตรู ได้รับการฟื้นฟู HP1~20
  • เมื่อกำจัดศัตรู ได้รับการฟื้นฟู SP1~5
T3

Tier 3

ช่อง 3

  • Drop1~3%
  • Exp1~3%
  • แบกน้ำหนักเพิ่มขึ้น1~100
  • STR1~2
  • INT1~2
  • เพิ่มพลังโจมตีระยะไกล1~3%
  • Drop, Exp1~5%
  • Atk, Matk1~2%

GARMENT (ผ้าคลุม)

T1

Tier 1

ช่อง 1

  • Drop1~3%
  • Exp1~3%
  • แบกน้ำหนักเพิ่มขึ้น1~100
  • HP1~100
  • SP1~30
  • ฟื้นฟู HP1~5%
  • ฟื้นฟู SP1~5%
T2

Tier 2

ช่อง 2

  • Def1~3
  • Mdef1~3
  • Critical1~5
  • ต้านทานธาตุ Neutral1~2%
  • เพิ่มพลังโจมตีต่อธาตุ Neutral1~5%
  • เพิ่มพลังโจมตีเผ่า Demi-Human1~3%
  • โจมตีโดยไม่สนใจพลังป้องกันของมอนเตอร์ทั่วไป1~5%
T3

Tier 3

ช่อง 3

  • Drop1~3%
  • Exp1~3%
  • แบกน้ำหนักเพิ่มขึ้น1~100
  • เพิ่มพลังโจมตีขนาดเล็ก1~5%
  • เพิ่มพลังโจมตีขนาดกลาง1~3%
  • เพิ่มพลังโจมตีขนาดใหญ่1~5%
  • Drop, Exp1~5%
  • Critical Damage1~5%

HeadGear Upper (หมวก)

T1

Tier 1

ช่อง 1

  • Drop1~3%
  • Exp1~3%
  • แบกน้ำหนักเพิ่มขึ้น1~100
  • เพิ่มพลังโจมตีระยะไกล1~2%
  • ป้องกันการโจมตีระยะไกล1~2%
  • เพิ่มความแรงของสกิล Heal1~5%
  • ลดระยะเวลาในการร่ายเวทมนต์1~3%
T2

Tier 2

ช่อง 2

  • ลดการใช้งาน SP ลง1~5%
  • ต้านทานทุกธาตุ1~2%
  • Critical1~3
  • ป้องกันการโจมตีระยะประชิด1~2%
  • MaxHP1~3%
  • MaxSP1~3%
  • Atk1~5
T3

Tier 3

ช่อง 3

  • Drop1~3%
  • Exp1~3%
  • แบกน้ำหนักเพิ่มขึ้น1~100
  • Aspd1~3%
  • HIT1~10
  • Atk, Matk1~2%
  • Drop, Exp1~5%
  • Critical Damage1~5%

WEAPON (อาวุธ)

T1

Tier 1

ช่อง 1

  • Drop1~3%
  • Exp1~3%
  • แบกน้ำหนักเพิ่มขึ้น1~100
  • Atk1~7
  • Matk1~7
  • Critical1~5
  • โจมตีมอนเตอร์แบบ Nomal Attack แรงขึ้น1~5%
  • เมื่อกำจัดศัตรู ได้รับการฟื้นฟู HP1~20
  • เมื่อกำจัดศัตรู ได้รับการฟื้นฟู SP1~10
  • เมื่อกำจัดศัตรูด้วยเวทมนต์ ได้รับการฟื้นฟู HP1~20
  • เมื่อกำจัดศัตรูด้วยเวทมนต์ ได้รับการฟื้นฟู SP1~10
T2

Tier 2

ช่อง 2

  • เพิ่มพลังโจมตีประเภท Formless1~7%
  • เพิ่มพลังโจมตีประเภท Undead1~7%
  • เพิ่มพลังโจมตีประเภท Brute1~7%
  • เพิ่มพลังโจมตีประเภท Plant1~7%
  • เพิ่มพลังโจมตีประเภท Insect1~7%
  • เพิ่มพลังโจมตีประเภท Fish1~7%
  • เพิ่มพลังโจมตีประเภท Demon1~7%
  • เพิ่มพลังโจมตีประเภท Demi-Human1~7%
  • เพิ่มพลังโจมตีประเภท Angel1~7%
  • เพิ่มพลังโจมตีประเภท Dragon1~7%
  • Matk1~5
  • Critical Damage1~5%
  • เพิ่มพลังโจมตีระยะไกล1~5%
  • เพิ่มพลังโจมตีระยะประชิด1~5%
T3

Tier 3

ช่อง 3

  • เพิ่มพลังโจมตีประเภท Formless1~7%
  • เพิ่มพลังโจมตีประเภท Undead1~7%
  • เพิ่มพลังโจมตีประเภท Brute1~7%
  • เพิ่มพลังโจมตีประเภท Plant1~7%
  • เพิ่มพลังโจมตีประเภท Insect1~7%
  • เพิ่มพลังโจมตีประเภท Fish1~7%
  • เพิ่มพลังโจมตีประเภท Demon1~7%
  • เพิ่มพลังโจมตีประเภท Demi-Human1~7%
  • เพิ่มพลังโจมตีประเภท Angel1~7%
  • เพิ่มพลังโจมตีประเภท Dragon1~7%
  • Matk1~5
  • Critical Damage1~5%
  • เพิ่มพลังโจมตีระยะไกล1~5%
  • เพิ่มพลังโจมตีระยะประชิด1~5%

การตั้งค่า NPC

ตั้งค่าใน OnInit ของ server/npc/custom-npc/option/option_ticket.txt

OnInit:
	.cost = 100000;
	.rate = 50;
	// ไอเทมที่ใช้ต่อครั้ง (parallel array .req_id / .req_qty)
	// setarray .req_id[0], 7776;
	// setarray .req_qty[0], 1;
	// setarray .req_id[0], 7776, 501;
	// setarray .req_qty[0], 1, 10;
	// 0 = สุ่ม Tier 1-3 พร้อมกัน | 1 = สุ่มทีละ Tier
	.roll_mode = 0;
	.tier_enable[0] = 1; // Tier 1 (ช่อง 1)
	.tier_enable[1] = 1; // Tier 2 (ช่อง 2)
	.tier_enable[2] = 1; // Tier 3 (ช่อง 3)
	// 0=Plan A (ปลอดภัย) | 1=Plan B (ล้มเหลวอาจแตก)
	.fail_mode = 1;
	.bless_id = 6635;   // Blacksmith Blessing
	.bless_qty = 1;     // จำนวนกันแตกต่อครั้งที่ล้มเหลว (0=ปิด)
	end;

หลังแก้ไขใช้ @reloadscript ในเกม

.roll_mode

ค่าโหมดพฤติกรรม
0พร้อมกันสุ่ม Tier 1+2+3 ครั้งเดียว → ใส่ช่อง 1, 2, 3
1ทีละ Tierเลือก Tier ที่เปิดใช้ → สุ่ม 1 ช่องต่อครั้ง (จ่าย Zeny แยกครั้ง)

.tier_enable (ใช้เมื่อ .roll_mode = 1)

กำหนดว่า Tier ใดเปิดให้ผู้เล่นเลือกสุ่ม — ใช้ 0 = ปิด, 1 = เปิด

Tier 1 · ช่อง 1 .tier_enable[0]
Tier 2 · ช่อง 2 .tier_enable[1]
Tier 3 · ช่อง 3 .tier_enable[2]

ตัวอย่างการตั้งค่า

ต้องการ.tier_enable[0/1/2]เมนูในเกม
เปิดแค่ Tier 11, 0, 0ข้ามเมนูเลือก Tier → สุ่มช่อง 1 โดยตรง
เปิดแค่ Tier 20, 1, 0ข้ามเมนูเลือก Tier → สุ่มช่อง 2 โดยตรง
เปิดแค่ Tier 30, 0, 1ข้ามเมนูเลือก Tier → สุ่มช่อง 3 โดยตรง
เปิด Tier 1 และ 21, 1, 0แสดงเมนู Tier 1 / Tier 2
เปิดทั้งหมด1, 1, 1แสดงเมนู Tier 1 / 2 / 3

เมื่อเปิด NPC ในโหมด 1 จะแสดงรายการ Tier ที่เปิดใช้ ในข้อความต้อนรับ หากปิดครบทุก Tier (0, 0, 0) NPC จะแจ้งว่าไม่สามารถใช้บริการได้

ค่าใช้จ่าย

ตัวแปรค่าเริ่มต้นรายละเอียด
.cost100000Zeny ต่อครั้ง (0 = ไม่ใช้ Zeny)
.req_id[](ว่าง)Item ID ที่ต้องใช้ — parallel กับ .req_qty[]
.req_qty[](ว่าง)จำนวนไอเทมที่หักต่อครั้ง

ตัวอย่างไอเทมเสริม

// 1 ไอเทม
setarray .req_id[0], 7776;
setarray .req_qty[0], 1;

// หลายไอเทม
setarray .req_id[0], 7776, 501;
setarray .req_qty[0], 1, 10;

NPC ตรวจสอบและหัก Zeny + ไอเทมก่อน progress bar สุ่ม — แสดงสรุปค่าใช้จ่ายในหน้ายืนยัน (เช่น 100,000 Zeny + 1x Ticket)

โหมดเมื่อล้มเหลว (Plan A / B)

กำหนดด้วย .fail_mode — ใช้เมื่อ rand(100) >= .rate (สุ่มไม่สำเร็จ)

.fail_modeโหมดเมื่อล้มเหลว
0Plan Aอุปกรณ์ไม่ถูกทำลายหรือหายไป
1Plan Bอุปกรณ์ถูกทำลาย (delequip) ยกเว้นใช้ใบกันแตก

ค่าบริการ (Zeny / ไอเทม) ถูกหักแล้วทั้งสองกรณี — ไม่คืนเมื่อล้มเหลว

ใบกันแตก (Blacksmith Blessing)

ใช้กับ Plan B เท่านั้น — ตั้งค่าใน OnInit:

ตัวแปรค่าเริ่มต้นรายละเอียด
.bless_id6635Item ID ใบกันแตก (Blacksmith Blessing)
.bless_qty1จำนวนที่หักเมื่อกันแตกสำเร็จ (0 = ปิดระบบกันแตก)

ขั้นตอนในเกม (Plan B)

  1. เลือกประเภทอุปกรณ์และยืนยันรายละเอียดการสุ่ม
  2. ถ้ามีใบกันแตกในกระเป๋า ≥ .bless_qty — NPC แสดงเมนู:
    ใช้ใบกันแตก / ไม่ใช้ใบกันแตก
  3. แสดงสถานะที่เลือก แล้วถึงเมนู ยืนยัน / ยกเลิก ค่าบริการ
  4. เมื่อล้มเหลว:
    • เลือก ใช้ใบกันแตก + มีไอเทมครบ → หักใบกันแตก อุปกรณ์ปลอดภัย
    • เลือก ไม่ใช้ หรือไม่มีใบกันแตกครบ → อุปกรณ์ถูกทำลาย

ใบกันแตกหักเฉพาะเมื่อล้มเหลวและผู้เล่นเลือกใช้ — ไม่หักเมื่อสุ่มสำเร็จ