บทที่ 1 - การเขียน Script เริ่มต้น
ขอให้อ่านให้ละเอียดและทำความเข้าใจให้ดีด้วยนะครับ อนึ่งผมจะเน้นสี และกำหนดสัญลักษณ์ไว้ดังนี้
สีม่วง- > เป็นรายละเอียดของ Script นั้นๆ
สีน้ำเงิน - > เป็นคำสั่งต่างๆ เช่น
mes ,
next ,
close
สีน้ำตาล - > เป็นตัวที่แทนค่าต่างๆ ( ใช้ในการ Set ค่าต่างๆ )
สีแดง - > แทนค่ารหัสและชื่อเฉพาะต่างๆ ( เช่น รหัส Item , Mob , อาชีพ )
สีเขียว - > ข้อความเน้นเฉพาะ
สีส้ม - > ข้อความคำพูดต่างๆ
<T> - > บ่งบอกถึงการเว้นระยะด้วยปุ่ม Tab เท่านั้น ( ให้ลบออกแล้วกด Tab นะ )
การวางตำแหน่ง NPC
ชื่อแมพที่อยู่,พิกัด X,พิกัด Y,ทิศทางการหัน<T>script<T>ชื่อNPC<T>เลขรหัสรูปNPC,{
~ ยกตัวอย่าง
morocc,150,98,4<T>script<T>Test<T>123,{
รูปประกอบการวางตำแหน่ง NPC
1. เริ่มจากใส่ชื่อ map ที่จะให้ NPC ตัวนั้นอยู่
2. ใส่พิกัด x และ y ( สามารถหาได้โดยการใช้ตัวละคร Login เข้าไปในเกมส์แล้วยืนในตำแหน่งที่จะวาง NPC หลังจากนั้นใช้คำสั่ง
/where )
3. ทิศทางที่ NPC หันหน้า
[1] [8] [7]
[2] [0] [6]
[3] [4] [5]
4. ชนิดของ NPC
5. ชื่อของ NPC
6. รหัสเลขรูป NPC (
>> Click << )
การทำให้ NPC พูด
สามารถทำได้โดยการใช้คำสั่ง
mes ตามด้วยข้อความที่จะแสดงโดยจะต้องมีเครื่องหมาย
อัญประกาศ( " " ) ด้วยเสมอ
mes "<ข้อความ>"
~ ยกตัวอย่าง
การใช้คำสั่ง mes
-> ข้อควรระวัง
1. ทุกครั้งที่จบคำสั่งต้องมีเครื่องหมาย (
; ) ปิดท้ายเสมอ
2. อย่าลืมใส่เครื่องหมาย (
" " ) เด็ดขาด มิฉะนั้นจะทำให้ Script นี้ไม่สามารถทำงานได้
การใช้คำสั่ง menu , next , close
โดยการใช้คำสั่งเหล่านี้ไม่ยากเลย ลองดู
Script ด้านล่างนี้
1.
menu "<ข้อความที่ 1>",<ตัวเลือกที่ 1>,"<ข้อความที่ 2>",<ตัวเลือกที่ 2>;
จากรูปตัวอย่างจะสังเกตุได้ว่า <ตัวเลือกที่ 1> นั้นเป็นเครื่องหมาย ( - ) ซึ่งหมายความว่าจะทำงานต่อในบรรทัดต่อไป ( คือบรรทัดที่ 5 ) ส่วน <ตัวเลือกที่ 2> ที่เป็นคำว่า L_no หมายความว่าจะข้ามไปทำงานต่อในบรรทัดปลายทางที่กำหนดไว้ ( คือบรรทัดที่ 7 ) เป็นต้นไป โดยจะมีเครื่องหมาย ( : ) ต่อท้ายด้วยทุกครั้ง
2.
next
เป็นคำสั่งที่ใช้แสดงปุ่ม ต่อไป ( ในเกมส์ ) ซึ่งจะเป็นการแสดงข้อความถัดไปของ Script นั้น
3.
close
เป็นคำสั่งที่ใช้แสดงปุ่ม ปิด ( ในเกมส์ ) ซึ่งจะเป็นการปิดหน้าข้อความของ Script นั้น
การใช้สีในการแสดงข้อความ
~ ยกตัวอย่าง : [
^FF0000ทดสอบ^000000]
จะปรากฏสีแดงในการแสดงข้อความเป็น : [
ทดสอบ ]
-> ข้อแนะนำ
1. รหัสสีสามารถหาได้จาก
Google ( Search "
Code Color " ) ในส่วนของรูปภาพ หรือ >> Click <<
2. ในการใส่รหัสสีทุกครั้งจะต้องมีเครื่องหมาย (
^ ) นำหน้าเสมอ
3. อย่าลืมทำให้เป็นสีดำ (
^000000 ) ทุกครั้งมิฉะนั้นทุกข้อความก็จะแสดงสีเดียวกันหมด
-> Web Site ที่ให้บริการในส่วนของ Code Color ซึ่งสามารถผสมสีได้เอง >> Click <<
การใช้คำสั่ง goto
goto <ตัวเลือกปลายทาง>
จากตัวอย่างจะเห็นได้ว่า ใช้คำสั่ง
goto ในส่วนของบรรทัดที่ 4 ซึ่งเชื่อมต่อไปยัง บรรทัดที่ 7 ( โดยใช้
L_no ) ซึ่งจะทำให้ข้ามในส่วนของบรรทัดที่ 5 และ 6 ไป
การใช้คำสั่ง if และตัวแปรแทนค่าต่างๆ
if ( <ข้อกำหนด> )
จากตัวอย่างจะเห็นได้ว่า ข้อกำหนดคือ
Zeny >= 10000 หมายความว่า ถ้ามีเงินมากกว่าหรือเท่ากับ 10000 ก็จะไปที่ ตัวเลือก
Money_10000 ( ในบรรทัดที่ 5 ) แต่ถ้ามีเงินน้อยกว่านั้น ก็จะไปต่อในบรรทัดที่ 3 แทน
คำว่า
Zeny นั้นคือตัวแปรแทนค่าในส่วนของ จำนวนเงิน ที่มีอยู่ในขณะนั้น ซึ่งยังมีนอกเหนือจากนี้อีกดังนี้
StatusPoint / 9
BaseLevel / 11
SkillPoint / 12
Class / 19
Upper / 56
Zeny / 20
Sex / 21
Weight / 24
MaxWeight / 25
JobLevel / 55
BaseExp / 1
JobExp / 2
Karma / 3
Manner / 4
NextBaseExp / 22
NextJobExp / 23
Hp / 5
MaxHp / 6
Sp / 7
MaxSp / 8
BaseJob / 119
BaseClass / 120
bMaxHP / 6
bMaxSP / 8
bStr / 13
bAgi / 14
bVit / 15
bInt / 16
bDex / 17
bLuk / 18
bAtk / 41
bAtk2 / 42
bDef / 45
bDef2 / 46
bMdef / 47
bMdef2 / 48
bHit / 49
bFlee / 50
bFlee2 / 51
bCritical / 52
bAspd / 53
bFame / 59
bUnbreakable / 60
จะสังเกตุได้ว่ามีตัวเลขอยู่ด้านหลังกำกับไว้ สามารถนำไปใช้งานร่วมกับคำสั่ง
readparam ได้
~ ยกตัวอย่าง : readparam(20)
ค่าที่ได้ก็เหมือนกันกับตัวแปร
Zeny
-> ข้อสังเกตุ
1. ชุดด้านล่างจะมีตัวที่คล้ายกับด้านบนเช่น
MaxHp กับ
bMaxHP ซึ่งชุดด้านล่างนั้นอาจจะไม่ใช้คำสั่ง
readparam(6) แต่ใช้
readparam(
bMaxHP) ก็ได้เช่นกัน ซึ่งวิธีนี้จะใช้กันมากในส่วนของ
db/item_db.txt
2. จากข้อ 1 แนะนำให้ใช้ตัวแปร
MaxHp ในการเขียน
Script เพราะสั้นกระทัดรัดกว่าการใช้
readparam(
bMaxHP)
คำสั่งเกี่ยวกับ Script แลกเปลี่ยนซื้อขาย
1.
countitem(<รหัสItem>)
-> ใช้ในการนับจำนวนสิ่งของที่เรามีอยู่ในตัว
2.
getitem <รหัสItem>,<จำนวน>
-> ใช้ในการให้ Item แก่ผู้เล่น
3.
delitem <รหัสItem>,<จำนวน>
-> ใช้ในการลบ Item จากผู้เล่น
4. set <ตัวแปร>,ค่าที่กำหนด
-> ใช้ในการตั้งค่าตัวแปร ( จะใช้ในส่วนของการลดเพิ่มจำนวนเงิน ซึ่งเป็นค่าตัวแปร
zeny )
~ ยกตัวอย่าง Script แลกเปลี่ยนซื้อขาย
-> ข้อควรระวัง
1. เมื่อจบ
Script ให้ใส่เครื่องหมาย (
} ) ปิดท้ายทุกครั้ง เพื่อแสดงถึงการสิ้นสุดของ Script นี้
2. สำหรับคนที่ Add NPC หรือเพิ่ม NPC ลง Server ไม่เป็น
>> Click <<