มันจะเหมือนๆกับการใช้คำสั่ง "การตรวจเช็คเงื่อนไข" ของอิเวนท์นั่นแหล่ะ แต่นี่จะเขียนในรูปของสคริป
โดยหลักๆก็จะเขียนเป็นรูปนี้
Code:
if (เมื่อ)
<เนื้อหาเมื่อเช็คผ่าน>
end (จบ)
กรณีมี if ถ้าไม่เขียน end สคริปจะเออเรอร์ทันที
หรือถ้าอยากให้มีการเพิ่มเคสกรณีไม่ตรงกับ เงื่อนไขก็จะใส่ว่า
else(อื่นๆ)
Show ContentSpoiler:
เช่น
Code:
if (เมื่อ)
<เนื้อหาเมื่อเช็คผ่าน>
else (กรณีอื่นๆ)
<เนื้อหาเมื่อเช็คไม่ผ่าน>
end (จบ)
หรือถ้าอยากให้มีการเช็คหลายๆอย่างก็จะใส่ว่า
elsif(หรือ)
Show ContentSpoiler:
Code:
if (เมื่อ)
<เนื้อหา 1>
elsif (หรือ)
<เนื้อหา 2>
else (กรณีอื่นๆ)
<เนื้อหากรณีไม่ใช่ทั้ง 2 ข้อ>
end (จบ)
หรือจะใส่ว่า
Code:
if (เมื่อ)
<เนื้อหา 1>
elsif (หรือ)
<เนื้อหา 2>
elsif (หรือ)
<เนื้อหา 3>
end (จบ)
ก็ได้
หรือถ้าอยากให้มีการยกเว้นบางอย่างก็จะใส่ว่า
unless(เว้นแต่)
Show ContentSpoiler:
Code:
if (เมื่อ)
unless (เว้นแต่)
<เนื้อหา>
end (จบ unless)
end (จบ if)
เช่น
Code:
if Input.trigger?(Input::L)
unless $game_system.map_interpreter.running?
$scene = Scene_MissionMenu.new
end
end
เมื่อกด Q และไม่มี การเดิน ถึงจะเรียก เมนูภารกิจ ได้
โดยส่วนตัวผมคิดว่าคำสั่งนี้เหมือนกับ elsif
มีอะไรบ้างที่เอามาเช็คได้
Show ContentSpoiler:
ก็จะเหมือนๆคำสั่งตรวจเช็คเงื่อนไขแต่จะเช็คได้มากกว่า(เยอะ)
โดยนำข้อความด้านล่างไปใส่หลัง if ก็ถือเป็นการเช็คแล้วนั่นเอง
ตัวแปร = $game_variables[x]
สวิทซ์ = $game_switches[รหัสสวิทช์] (สวิทซ์จะเช็คได้เพียง 2 อย่างคือ true(เปิด) หรือ false(ปิด))
ชื่อฮีโร่คนแรก ในกลุ่ม = $game_party.actors[0].name
ชื่อฮีโร่คนแรกในฐานข้อมูล = $game_actors[1].name
$game_party.actors = นับจากฮีโร่ในปาร์ตี้ (เริ่มนับจาก 0)
$game_actors = นับจากฮีโร่ตาม id ในฉานข้อมูล (เริ่มนับจาก 0)
(หลัง . คือค่าที่จะเอามาใช้ เช่นถ้า อยากให้แสดงค่าสแตตัสต่างๆก็ไปเปลื่ยนตรง name เป็นอย่างอื่น เช่น
ระดับ(level) พลังชีวิต(hp หรือ maxhp) พลังเวทย์(sp หรือ maxsp) พลังโจมตี(atk) พลังป้องกัน(pdef) พลังป้องกันเวทย์(mdef) พลัง(str) ความชำนาญ(dex) ความคล่องตัว(agi) ฉลาด(int) อาชีพ(class_id)
หรือถ้าอยากเช็คอุปกรณ์ที่สวมใส่ก็ใส่ต่อไปว่า
equip(ชนิด,ID ตามฐานข้อมูล) /ชนิด 0 = อาวุธ 1 = โล่ 2 = หมวก 3 = ชุด 4 = เครื่องประดับ
แทน)
จำนวนก้าวเดิน= $game_party.steps
จำนวนเงิน= $game_party.gold
จำนวนครั้งที่เซฟ= $game_system.save_count
ชื่อของไอเทม IDที่x= $data_items[x].name
จำนวนของไอเทม IDที่x = $game_party.item_number(x)
ถ้าอยากให้เปลื่ยนเป็นอาวุธหรือเกราะก็ไปเปลื่ยนตรง item เป็นอย่างอื่น เช่น อาวุธ(weapon) เกราะ(armor) แทน
อยู่แม็บที่เท่าไร = $game_map.map_id
จำนวนสมาชิคในกลุ่ม = $game_party.actors.size
ฯลฯ อีกมากมาย(ถ้ารู้โค๊ต)
โดยใช้เครื่องหมายทางคณิตศาสตร์ในการตรวจเช็ค ดังนี้
Show ContentSpoiler:
== คือ เท่ากับ
>= คือ มากกว่าหรือเท่ากับ
<= คือ น้อยกว่าหรือเท่ากับ
> คือ มากกว่า
< คือ น้อยกว่า
!= คือ ไม่เท่ากับ
เช่น
Code:
if $game_party.actors.size >= 2 (เมื่อสมาชิคในกลุ่มมากกว่าหรือเท่ากับ 2 คน)
<เนื้อหาเมื่อเช็คผ่าน>
else
<เนื้อหาเมื่อเช็คไม่ผ่าน>
end
การเช็คเงื่อนไขพร้อมๆกันได้ โดยใส่
Show ContentSpoiler:
กรณีเพิ่มเงื่อนไข ใส่
and หรือ
&& (และ)
คือต้องตรงเงือนไขทุกอันถึงจะแสดงผล
ตัวอย่างเช่น
Code:
if $game_party.gold >= 10000 && $game_party.steps >= 1000 and
$game_party.actors[0].level < 10
ก็จะแปลว่า ต้องมีเงิน 10000 และเดินมาแล้ว 1000 ก้าว และ เลเวลหัวตี้ต้องไม่เกิน 10 ถึงจะจะผ่านเงื่อนไข
กรณีเงื่อนไขไหนก็ได้ ใส่
or (หรือ)
คือถ้าตรงเงือนไขอันใดอันหนึ่งก็จะแสดงผล
ตัวอย่างเช่น
Code:
if $game_party.gold >= 10000 or $game_party.steps >= 1000
ก็จะแปลว่า ต้องมีก้าวเดินมาก 10000 หรือมีเงินมากกว่า 1000 ก็จะผ่านเงื่อนไข
ถึงจะกด Enter ขึ้นบรรทัดใหม่แต่โค๊ตก็ยังทำงาน ขอแค่มี end ปิดท้ายก็พอ
คำสั่งตรวจเช็คนี้สามารถนำไปใช้กับคำสั่ง "ตรวจเช็คเงื่อนไข" และ "เรียกใช้สคริปต์" ได้
แต่คำสั่งใน "ตรวจเช็คเงื่อนไข" ไม่จำเป็นต้องใส่ if และ end
ตย.การ เรียกตรวจเช็คใน WD
โดยค่าฉายาจะเปลี่ยนไปตามตัวแปรที่มี
เปิด/ปิด หน้าต่างกดเหมือนเดิม
http://www.mediafire.com/?dqzmzkeg1zn
เครดิต : Shinryu