irpg Community
ประยุก ศัตรูตรวจจับเรา เวอร์ชั่นEvent ได้ทั้งXPและVX - Printable Version

+- irpg Community (https://irpg.in.th)
+-- Forum: irpg Fabella RPG Maker Academia (https://irpg.in.th/forum-4.html)
+--- Forum: RPG Maker Engine School (https://irpg.in.th/forum-7.html)
+--- Thread: ประยุก ศัตรูตรวจจับเรา เวอร์ชั่นEvent ได้ทั้งXPและVX (/thread-1811.html)



ประยุก ศัตรูตรวจจับเรา เวอร์ชั่นEvent ได้ทั้งXPและVX - freemancer - 04-24-2014

อันนี้เปนการประยุตก์คำสั่งเคลื่อนย้ายเหตุการณ์นะครับซึ่งสามารถนำมาใช้แทนการมองของศัตรูหรือใช้เป็นการยิงกระสุนของศัตรูได้มาดูวิธีทำกันครับ (การทำสคริปอาจง่ายว่า แต่ผมไม่เป็นสคริปจึงนึกวิธีนี้ออกมาเผื่อคนหัวอกเดียวกัน)
รูปที่1
[Image: rBboyc.jpg]
1.จากรูปแรกสิ่งที่ต้องเตรียมมี4eventตามรูป ตัวใสๆคืออันซ้ายล่างผมเอาไว้เก็บข้อมูลฮีโร่
ส่วนแฟรี่น้อยที่อยู่ขวาล่างจิงๆต้องทำเป็นใสๆ แต่กลัวเพื่อนๆน้องๆ และพี่(ถ้ามีคนอายุเยอะกว่าผมอยุ่อะนะ- -) กลัวจะมองไม่เห็นกันเลยทำเป็นแฟรี่น้อยน่ารักไว้ให้เห็นตอนตรวจจับ มาเริ่มขั้นตอนที่สองดีกว่า

รูปที่2
[Image: tLnMBG.jpg]
2.ที่รูปeventใสด้านซ้ายล่างนี้ตั้งค่าeventตามรูปแล้ว ส่วนคำสั่งคือให้บันทึกพิกัดXYของฮีโร่ตลอดเวลาและตรวจว่า มันจะโดนตรวจจับจากeventศัตรูเมื่อไหร่ก็ให้เกิดเหตุการณ์เช่นเข้าฉากต่อสู้ หรือโดนยิงหรือต่างๆนาๆ แต่ผมจะใช้การโชวข้อความเพื่อเป็นผลลัพ หน้าที่มีแค่นี้เองของตัวนี้ บันทึกพิกัด เช็คว่าโดนรึยัง และเกิดเหตุเมื่อโดน

รูปที่3
[Image: pKpXWM.jpg]
3.ต่อมาeventตัวศัตรูเซทค่าตามนั้น และใส่คำสั่งว่า บันทึกพิกัดตัวเองลงตัวแปรXY ทั้งสองตัวแยกไว้ตลอดเวลา แล้วก็สร้างตัวแปรมาเพื่อเก็บข้อมูลว่า มันจะหันหน้าไปทางไหน มีวิธีเช็คการหันตัวแปรเป็นค่าตัวเลขอันนี้ผมจำไม่ได้ว่ามันหันหน้าทางไหนเป็นเลขไรบ้าง ผมเลยสร้างมันมาใหม่เลย
ใช้ตัวแปร1ตัวเพื่อเก็บค่าการหันหน้า หน้าที่เจ้ากระดูกมีแค่นี้ บันทึกพิกัดตัวเอง หันหน้าทางไหนให้บอกกล่าว แค่นั้นครับ

รูปที่4
[Image: xuAgCc.jpg]
4.มาถึงตัวตรวจจับ ที่ใส่รูปแฟรี่น้อยลงไปเพื่อให้เห็นชัดๆตอนกำลังตรวจจับ
ตั้งค่าeventตามนั้น จิงๆก็ตั้งเหมือนตัวอื่นๆทุกตัวนั่นแหละ ส่วนคำสั่งก็คือ
สร้างตัวแปรXYขึ้นมาอีกชุด แต่ให้เท่ากับตัวEventศัตรูเจ้าตัวกระดูกเมื่อกี้ เพราะเวลาแฟรี่ตัวนี้ไปไหนจะได้คอยเกาะเจ้าตัวกระดูกไป แต่เกาะเสร็จต้องบินไปตามที่กระดูกหันหน้า ดังนั้น
ชุดคำสั่งคือเช็คตัวแปรที่เก็บเลขของโครงกระดูกที่หันหน้า ยกตัวอย่างในรูปหันขึ้นด้านบน
ผมจะใช้วิธีการเคลื่อนที่แบบวนซ้ำๆจนครบ4ครั้งเลยสร้างตัวแปรLoop numberขึ้นมา วนหนึ่งครั้งก็ลดลงไปจนเหลือ0 ในการวนแต่ละครั้งของการหันหน้าขึ้น
ต้องนำค่าตัวแปรXYที่สร้างใหม่มาเพิ่มลดค่าก่อน จากรูป หันขึ้นบน ต้องลบค่าแกนX-1 แล้วย้ายเหตุการแฟรรี่น้อยไปด้านหน้าของโครงกระดูก ทุกๆครั้งที่วนเหตุการณใน label1นี้ มันจะขยับขึ้นตามแกนXที่ลบ แล้วเคลื่อนย้ายตัวแฟรี่ด้วยคำสั่งเคลื่อนย้ายเหตุการณ์(บางคนอาจสงสัยว่าทำไมผมไม่ใช้คำสั่งให้แฟรี่เดิน เพราะผมเคยติดบัคว่าเดินไปชนอีเวนท์โปร่งใสอื่นๆแล้วมันเดินไปต่อไม่ได้ทั้งๆที่โปร่งใส ผมเลยตัดปัญหาใช้คำสั่งเคลื่อนย้าย จิงๆก็สามารถเคลื่อนย้ายวนเป็นวงกลมได้เลยแว๊บๆ)คำสั่งมีแค่นี้ครับเฉพาะ หันขึ้นด้านบน ถ้าจะหันด้านอื่นก็แค่ก็อปตัวแรกมาวางครบ4ชุด ขึ้นลงซ้ายขวาแล้วแก้ค่าXYกับการตรวจเช็คตัวแปรการหันหน้าตามรูปที่5

รูปที่5
[Image: hO268f.jpg]
ตัวอย่างการก็อปคำสั่งมาแก้ไขครับ

รูปที่6
[Image: LPc6lS.jpg]
มาเริ่มทดสอบเกมกัน ตอนแรกของรูปนี้ผมยังไม่อยู่ในสายตาของเจ้าโครงกระดูก

รูปที่7
[Image: d5yLaZ.jpg]
พอผมอยู่ในสายตาของมันก็มีข้อความขึ้นว่าโดนเจอแล้ว ตามรูปภาพที่2ใส่คำสั่งไว้

อันนี้เป็นการยกตัวอย่างพื้นๆของคนที่จะใช้อีเวนท์นะครับ ซึ่งเอาวิธีนี้ไปใช้กับRMเวอชั่นอื่นๆก็ได้

ไม่ทราบเหมือนกันว่ามีคนอื่นเคยคิดขึ้นก่อนหรือยังเพราะอันนี้ผมคิดเองโดยส่วนตัวนะครับ
ดีร้ายประการใดโปรดอภัยด้วย ขอบคุณครับDerp


RE: ประยุก ศัตรูตรวจจับเรา เวอร์ชั่นEvent ได้ทั้งXPและVX - TheMoo2000 - 04-24-2014

ถ้าประยุกต์ต่ออีกนิด ถ้ามองข้างหน้าแล้วปกติจะมองได้ 120 องศา ก็ตรวจ ข้างหน้าทั้งหมดเลยก็ได้ (อาจจะมองหางตา อิอิ) ยังไงก็ดีมากฮะ Me gusta


RE: ประยุก ศัตรูตรวจจับเรา เวอร์ชั่นEvent ได้ทั้งXPและVX - Mysticphoenix - 04-25-2014

ระบบนี้ใช้ได้ดีเลยครับ สำหรับคนที่จะนำไปใช้ อย่าลืมคำนึงไว้ว่า เวลาจะสร้างแม็พใหม่ ต้องเผื่อ EventID ไว้ด้วยตามจำนวนที่ระบบรองรับด้วยนะครับ เพราะทุกแม็พ event ต้องมี EventID เดียวกันตามแม็พต้นฉบับ

ผมอยากฝากผู้พัฒนาครับ ฝากเอาโค้ดไปไว้ใน Common Event (ในฐานข้อมูล) แล้วเรียกใช้ Common Event เอา เพราะเวลาแก้จะได้แก้ที่เดียว ไม่ต้องไปไล่แก้ทุกแม็พครับ