07-25-2012, 11:44 AM
![[Image: ss-if-2.png]](http://upic.me/i/v7/ss-if-2.png)
มันจะเหมือนๆกับการใช้คำสั่ง "การตรวจเช็คเงื่อนไข" ของอิเวนท์นั่นแหล่ะ แต่นี่จะเขียนในรูปของสคริป
โดยหลักๆก็จะเขียนเป็นรูปนี้
Code:
if (เมื่อ)
<เนื้อหาเมื่อเช็คผ่าน>
end (จบ)
หรือถ้าอยากให้มีการเพิ่มเคสกรณีไม่ตรงกับ เงื่อนไขก็จะใส่ว่า else(อื่นๆ)
Show ContentSpoiler:
Code:
else
Code:
if (เมื่อ)
<เนื้อหาเมื่อเช็คผ่าน>
else (กรณีอื่นๆ)
<เนื้อหาเมื่อเช็คไม่ผ่าน>
end (จบ)
Show ContentSpoiler:
Code:
if (เมื่อ)
<เนื้อหา 1>
elsif (หรือ)
<เนื้อหา 2>
else (กรณีอื่นๆ)
<เนื้อหากรณีไม่ใช่ทั้ง 2 ข้อ>
end (จบ)
Code:
if (เมื่อ)
<เนื้อหา 1>
elsif (หรือ)
<เนื้อหา 2>
elsif (หรือ)
<เนื้อหา 3>
end (จบ)
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
โดยส่วนตัวผมคิดว่าคำสั่งนี้เหมือนกับ 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
ฯลฯ อีกมากมาย(ถ้ารู้โค๊ต)
โดยนำข้อความด้านล่างไปใส่หลัง 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 หรือ && (และ)
คือต้องตรงเงือนไขทุกอันถึงจะแสดงผล
ตัวอย่างเช่น
ก็จะแปลว่า ต้องมีเงิน 10000 และเดินมาแล้ว 1000 ก้าว และ เลเวลหัวตี้ต้องไม่เกิน 10 ถึงจะจะผ่านเงื่อนไข
กรณีเงื่อนไขไหนก็ได้ ใส่ or (หรือ)
คือถ้าตรงเงือนไขอันใดอันหนึ่งก็จะแสดงผล
ตัวอย่างเช่น
ก็จะแปลว่า ต้องมีก้าวเดินมาก 10000 หรือมีเงินมากกว่า 1000 ก็จะผ่านเงื่อนไข
ถึงจะกด Enter ขึ้นบรรทัดใหม่แต่โค๊ตก็ยังทำงาน ขอแค่มี end ปิดท้ายก็พอ
คือต้องตรงเงือนไขทุกอันถึงจะแสดงผล
ตัวอย่างเช่น
Code:
if $game_party.gold >= 10000 && $game_party.steps >= 1000 and
$game_party.actors[0].level < 10
กรณีเงื่อนไขไหนก็ได้ ใส่ or (หรือ)
คือถ้าตรงเงือนไขอันใดอันหนึ่งก็จะแสดงผล
ตัวอย่างเช่น
Code:
if $game_party.gold >= 10000 or $game_party.steps >= 1000
ถึงจะกด Enter ขึ้นบรรทัดใหม่แต่โค๊ตก็ยังทำงาน ขอแค่มี end ปิดท้ายก็พอ
แต่คำสั่งใน "ตรวจเช็คเงื่อนไข" ไม่จำเป็นต้องใส่ if และ end
ตย.การ เรียกตรวจเช็คใน WD
![[Image: ss-if-1.png]](http://upic.me/t/13/ss-if-1.png)
![[Image: ss-if-2.png]](http://upic.me/t/v7/ss-if-2.png)
![[Image: ss-if-3.png]](http://upic.me/t/yk/ss-if-3.png)
โดยค่าฉายาจะเปลี่ยนไปตามตัวแปรที่มี
เปิด/ปิด หน้าต่างกดเหมือนเดิม
http://www.mediafire.com/?dqzmzkeg1zn
เครดิต : Shinryu