irpg Community
[สคริปต์] ระบบฉากต่อสู้ด้านข้าง (Minkoff) ดัดแปลงโดย Shinryu - Printable Version

+- irpg Community (https://irpg.in.th)
+-- Forum: irpg Fabella RPG Maker Academia (https://irpg.in.th/forum-4.html)
+--- Forum: RGSS and JS Showcase (https://irpg.in.th/forum-26.html)
+--- Thread: [สคริปต์] ระบบฉากต่อสู้ด้านข้าง (Minkoff) ดัดแปลงโดย Shinryu (/thread-649.html)



[สคริปต์] ระบบฉากต่อสู้ด้านข้าง (Minkoff) ดัดแปลงโดย Shinryu - Galaxy - 10-16-2012

[Image: minkoff-1.png]
ระบบ ฉากต่อสูแบบด้านข้าง หรือ Sideviewbattleมันก็คือระบบต่อสู้แบบไฟนอลนั่นแหล่ะ แต่จะมีการเคลื่อนที่เขาไปหาโจมตีศัตรูระยะประชิดได้ด้วยและจะแตกต่างจากระบบปกติ(frontview (ระบบต่อสู้ด้านหน้า))ตรงที่จะได้โจมตีตามความเร็วฮีโร่แทนที่จะเป็บแบบเทิร์นเบส(ผลัดกันโจมตี)ถ้าฮีโร่คนไหนมีความเร็วมากๆก็จะได้โจมตีบ่อยกว่าคนที่มีความเร็วน้อยๆ(แต่จริงๆระบบต่อสู้ด้านหน้าก็ใช้ RTAB ได้เหมือนกัน)

สคริปตัวนี้เป็นสคริปของ minkoff ผมจะมาแนะนำการใช้ให้ฟัง(อ่าน)รูป ต.ย. ระบบ Sideview

สคริป
http://www.mediafire.com/?zrymjzydhzx

หลังจากคลายซิปก็ก็อปไปเรียงตามรูปนี้
[Image: tuvss.png]

1.สคริป RTAB หรือ สคริประบบต่อสู้แบบเรียลไทม์ เป็นระบบซูมเข้าซูมออก หน้าต่าง ระบบทั้งหมด เป็นตัวหลักในการทำระบบเรียลไทม์
2.RTAB/CTB Changes หรือ สคริประบบซูมหน้าจอให้เป็นหน้าจอปกติ(มั้ง)
3-7 ส่วนเซต รูป Battlers ตำแหน่ง และระบบต่างๆ
3.Configuration เป็นส่วนเซตค่า Battlers ในรูปแบบต่างๆ*โดยหลักๆแล้วจะมาเซตที่สคริปนี้*
4.Sprite_System เป็นส่วนเกี่ยวกับการตั้งค่า Battlers เราไม่ต้องไปยุ่ง
5.Battle_System เป็นส่วนเกี่ยวกับการต่อสู้ การโจมตีหรือใช้ทักษะ การเคลื่อนที่ต่างๆ เราไม่ต้องไปยุ่ง
6.Misc_Code-7.RTAB_Patch เป็นส่วนเสริมอื่นซึ่ง เราไม่ต้องไปยุ่ง

สามารถเซต การแบ่งรูป Battlers ได้ที่ Configuration
และถ้ามีความเชี่ยวชาญมากขึ้นอาจไปปรับแต่งส่วนต่างๆเพิ่มเติมเอาเองก็ได้
(ดูได้ที่เรปต่อไป)

สามารถหาสคริปเสริมอื่นได้ที่
http://members.jcom.home.ne.jp/cogwheel/

ลิงค์ ต.ย. ระบบ RTAB
http://www.creationasylum.net/index.php?showtopic=11827
(แนะนำให้โหลด RTAB with Extras)

สคริปตัวนี้เป็นตัวที่ผมดัดแปลงมาจากต้นฉบับคือจะมีการใช้ท่าทางต่างๆมากขึ้น เช่น
-เมื่อมีดาเมจเป็น 0 จะแสดงท่าป้องกันด้วย
-มีการแลนดอมท่าโจมตีเป็น 2 แบบ(ปกติแบบเดียว) ด้วยท่าทางแถวที่ 7 และ 8 (กรณีคริติเคิลจะเป็น 8)
-มีการหารค่าประสบการณ์ออกตามจำนวนฮีโร่
-เมื่อ เลเวลอัพ จะเพิ่ม HP/SP เต็ม(9999)
-เมื่อจบการต่อสู้จะหยุดเพลงทันที

ตรงบรรทัดที่ผมแก้จะมีคำว่า #เพิ่ม หรือ #แก้ ต่อท้าย
ใครข้องใจหรือติดตรงไหนถามมาได้


Battlers หาได้ตามเว็บแจกทรัพยากรต่างๆนะครับ



สคริป(เสริม)&วิธีใช้
ให้เซิร์ดด้วยคำว่า เสริม+minkoff จะเจอกระทู้

ตัวอย่าง การลงสคริป+การเซต Battles

http://www.mediafire.com/?mmewxq1iyjm
id1 ใช้ bt 12 แถว/id2 ใช้ bt 4 แถว/id7 ใช้ bt 11 แถว/id8 ใช้ bt แบบไม่ขยับ
bt = battle

อันนี้เอาอาการเป็นรูปไอคอนออกนะ

เครดิต : Minkoff(cogwheel)
ดัดแปลง+แก้ไข : Shinryu

การเอา Battlers มาใช้

ในสคริปนี้เราสามารถเลือกใช้ Battlers ได้หลายแบบ ทั้งแบบ 4 แถว 7แถว 12แถว แล้วแต่จะอยากใช้หรืออยากใช้มากกว่า 12 แถวก็ได้ หรือจะใช้รูป Battlers ปกติเลยก็ได้ โดยการตั้งท่าต่างๆสามารถดูได้ที่สคริป 1 - Configuration

เราสามารถเซตจำนวนแถว ได้ที่บรรทัด 33
Code:
MNK_POSES = 12 # Maximum # of poses (stances) in the template
12 คือจำนวนแถวที่จะใช้ทุกตัวละคร

เราสามารถเซตจำนวนเฟรม(จำนวนท่าทางการเคลื่อนไหว)ได้ที่บรรทัด 34
Code:
MNK_FRAMES              = 4       # Maximum # of frames in each pose
4 คือจำนวนเฟรมที่จะใช้ทุกตัวละคร


โดยแต่ละแถวจะแสดงท่าทางอย่างไรมาดูที่ประมาณบรรทัด 59-70
Editable Template (Some people wanted to change their template design)
Code:
MNK_POSE1    =   1    #ท่าทางแถวที่1    ยืนปกติ
MNK_POSE2    =   2    #ท่าทางแถวที่2    บาดเจ็บ
MNK_POSE3    =   3    #ท่าทางแถวที่3    ใกล้ตาย
MNK_POSE4    =   4    #ท่าทางแถวที่4    ป้องกัน
MNK_POSE5    =   5    #ท่าทางแถวที่5    เดินซ้าย
MNK_POSE6    =   6    #ท่าทางแถวที่6    เดินขวา
MNK_POSE7    =   7    #ท่าทางแถวที่7    โจมตี1
MNK_POSE8    =   8    #ท่าทางแถวที่8    โจมตี2
MNK_POSE9    =   9    #ท่าทางแถวที่9    ทักษะ
MNK_POSE10  =  10   #ท่าทางแถวที่10   ชนะ
MNK_POSE11  =  11   #ท่าทางแถวที่11   ตาย
MNK_POSE12  =  12   #ท่าทางแถวที่12   ใช้ไอเทม

MNK_POSE 1-12 คือท่าทางที่จะใช้ตอนเกิดกิจกรรมต่างๆ(ดูด้านหลังของบรรทัด)

เลข1-12 หลัง = คือแถวของรูปที่จะใช้แสดงเวลาเกิิดท่าทางต่างๆ

โจมตี1-2 จะสุ่มการแสดงอัตโนมัติ (กรณีคริติเคิลจะเป็น 8 เท่านั้น)

*********************************************************************************************

ตัวอย่างการเซต Battlers

การเอารูป Battlers มาใช้เลย (รูปไม่มีการขยับ {แบบ rmxp ปกติ})

ให้ไป บรรทัดที่ 25
Code:
DEFAULT_ACTOR_ID                = [1,2,10] #ใส่เฉพาะ ID ที่ต้องการใช้รูป Battlers เลย

ในที่นี้คือฮีโร่ ID 1,2,10 จะใช้รูป Battlers แบบไม่เคลื่อนไหว

*********************************************************************************************

แบบ 4 แถว เช่นพวก Characters ธรรมดา มาเป็น battle

1.ก็ให้ก็อบ Characters ไปใส่ใน Battlers แล้วก็เซต Battlers เป็นอันนั้น
2.จากนั้นไปเซตจำนวนแถวที่ใช้ตรง
Code:
MNK_POSES_ACTOR                 = {2 => 4}

2=ID ฮีโร่
4=จำนวนแถว


3.จากนั้นก็ไปเซตท่าทางที่
Code:
Editable Template (for Custom Actor Spritesheets)
MNK_APOSE1   =   {2 => 2}
MNK_APOSE2   =   {2 => 2}
MNK_APOSE3   =   {2 => 2}
MNK_APOSE4   =   {2 => 2}  
MNK_APOSE5   =   {2 => 2}
MNK_APOSE6   =   {2 => 3}
MNK_APOSE7   =   {2 => 2}
MNK_APOSE8   =   {2 => 2}
MNK_APOSE9   =   {2 => 2}
MNK_APOSE10  =   {2 => 1}
MNK_APOSE11  =   {2 => 4}
MNK_APOSE12  =   {2 => 2}

เลขตัวแรกคือID ฮีโร่
เลขตัวหลังแถวที่ใช้
MNK_APOSE1-11 ท่าทางต่างๆดูรายละเอียดที่ด้านบน

เป็นอันเสร็จสิ้น

ในกรณีที่เราจะใส่หลายๆตัวละครก็จะใส่ว่า
Code:
{2 => 2 , 7 => 2 , 9 => 2}

IDฮีโร่คือ 2,7,9

*********************************************************************************************

แบบ 7 แถว

1.หา Battlers ที่ 7 แถวดังตัวอย่างไปลง
2.จากนั้นไปเซตจำนวนแถวที่ใช้ตรง
Code:
MNK_POSES_ACTOR                 = {2 => 7}
2=IDฮีโร่
7=จำนวนแถว

3.จากนั้นก็ไปเซตท่าทางที่
Code:
Editable Template (for Custom Actor Spritesheets)
ตัวอย่างการเซต Battlers ตามรูป
MNK_APOSE1   =   {9 => 2}  
MNK_APOSE2   =   {9 => 4}  
MNK_APOSE3   =   {9 => 7}
MNK_APOSE4   =   {9 => 3}  
MNK_APOSE5   =   {9 => 1}  
MNK_APOSE6   =   {9 => 4}
MNK_APOSE7   =   {9 => 5}
MNK_APOSE8   =   {9 => 5}
MNK_APOSE9   =   {9 => 6}
MNK_APOSE10  =   {9 => 2}
MNK_APOSE11  =   {9 => 7}
MNK_APOSE12  =   {9 => 6}

*********************************************************************************************

แบบ 11 แถว

1.หา Battlers ที่ 7 แถวดังตัวอย่างไปลง
2.จากนั้นไปเซตจำนวนแถวที่ใช้ตรง
Code:
MNK_POSES_ACTOR                 = {2 => 11}
2=IDฮีโร่
11=จำนวนแถว


3.จากนั้นก็ไปเซตท่าทางที่
Code:
Editable Template (for Custom Actor Spritesheets)
ตัวอย่างการเซต Battlers ตามรูป
MNK_APOSE1   =   {9 => 1}  
MNK_APOSE2   =   {9 => 2}  
MNK_APOSE3   =   {9 => 3}
MNK_APOSE4   =   {9 => 4}  
MNK_APOSE5   =   {9 => 5}  
MNK_APOSE6   =   {9 => 6}
MNK_APOSE7   =   {9 => 7}
MNK_APOSE8   =   {9 => 7}
MNK_APOSE9   =   {9 => 8}
MNK_APOSE10  =   {9 => 10}
MNK_APOSE11  =   {9 => 11}

*********************************************************************************************

ถ้าเป็นศัตรูก็ไปแก้สคริปที่ส่วน
Code:
Editable Template (for Custom Enemy Spritesheets)

*********************************************************************************************

ในตัวสคริป Minkoff ที่ผมลงที่เรปแรก ผมตั้งให้เป็นแบบ 12 แถวอยู่แล้ว
ถ้าใครใช้ Battlers แบบ 12 แถวอยู่แล้วก็ไม่ต้องมาตั้งค่าพวกนี้

MNK_APOSE12 = {9 => 8}

ถ้าต้องการสลับตำแหน่งการต่อสู้

ก่อนเริ่มการต่อสู้ให้ใส่โค๊ตว่า
Code:
$sideview_mirror = 1
[Image: uess1.png]
เมื่อกลับด้านแล้วรูป Battlers ต่างๆจะกลับด้านให้เองโดยอัตโนมัติ
สรุปก็คือให้วาด Battlers หันไปทางซ้ายทั้งหมดเป็นดี

ถ้าต้องการให้เป็นแบบเดิมก็ใส่
Code:
$sideview_mirror = 0
[Image: hcss2.png]
ปล.แต่สคริปนี้มีข้อเสียตรงที่ อนิเมชั่นมันไม่ได้กลับด้านด้วย เวลาตีศัตรูมันเลยพิลิกๆไงไม่รู้

*********************************************************************************************

การปรับแต่งอื่นๆ


มอนสเตอร์ตัวไหนที่ไม่ต้องการให้เคลื่อนที่ไปปรับที่นี่
Code:
MNK_STATIONARY_ENEMY_IDS = [31,32,33,34,37] # (IDมอนสเตอร์ ที่ไม่มีการเคลื่อนที่)

อาวุธอันไหนที่ไม่ต้องการให้เคลื่อนที่ไปปรับที่นี่
Code:
MNK_STATIONARY_WEAPONS = [167,168,169,170,171] # (IDอาวุธประเภทธนูและปืน  ที่ไม่มีการเคลื่อนที่)
ทักษะอันไหนที่ไม่ต้องการให้เคลื่อนที่ไปปรับที่นี่
Code:
MNK_STATIONARY_SKILLS  = []# (IDทักษะ ที่ไม่มีการเคลื่อนที่)
ไอเทมอันไหนที่ไม่ต้องการให้เคลื่อนที่ไปปรับที่นี่
Code:
MNK_STATIONARY_ITEMS   = []# (IDไอเทม ที่ไม่มีการเคลื่อนที่)
ถ้าอยากให้เวลาวิ่งไปโจมตีศัตรูแล้วจะไม่หายไปแวบนึงไปปรับที่นี่
Code:
MNK_PHASING           = true     # If battlers fade in/out while charging
ปรับเป็น false เป็นอันเรียบร้อย แต่ถ้าตัวละครยังอยากให้หายอยู่ก็ใส่ ID ตัวละครใน
Code:
MNK_PHASING_ACTOR = [1] # IDs of actors that fade in/out if charging

MNK_PHASING_ENEMY = [9] # IDs of enemies that fade in/out if charging

*********************************************************************************************

ปัญหาที่มักพบบ่อยๆ

*********************************************************************************************
คำศัพย์เฉพาะ
[Image: pexbt.png]
(รูปเป็นของ atoa นะ ของ minkoff ต้องมีรูปทั้ง 4 เฟรม)
โดยเราจะแบ่งตามรูปนี้คือ
แนวตั้งเรียก "แถว"
แนวนอนเรียก "เฟรม"
จากรุปนี้คือ 8 แถว 6 เฟรม
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ID ตัวละคร ก็คือลำดับตัวละครในฐานข้อมูลหน้าแรก เช่น อาเช่ คือ id1 บาซิล คือ id2 โดโรธี คือ id4
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

*********************************************************************************************
ทำไมมีฮีโร่ตัวหนึ่งเป็นภาพแบบไม่ขยับ
ทำไมมีตัวฮีโร่ตัวนึงที่เป็นภาพนึ่ง ซึ่งผมไม่รู้ว่าต้องปรับที่ ส่วนไหนของสคลิป มันถึงจะเป็น ภาพ ขยับ
อย่างตอนผมเอารูป Remu 12 แถวมาใส่มัีนก็เอารูป Remu แบบ12แถวโพร่มางั้นๆ เลยไม่ตัดอะไรทั้งซิ้น
วิธีแก้>>
ส่วนถ้ามีการใส่ id ใน บรรทัดที่ 24/25 จะใช้รูปแบทเทิ้ลนั้นทั้งแผ่นเลยโดยไม่มีการตัด
DEFAULT_ENEMY_ID = ศัตรู
DEFAULT_ACTOR_ID = ฮีโร่
ถ้าจะทำให้มีการขยับก็ลบเลขที่ผมใส่เป็นตัวอย่างออกไปเท่านั้นเอง


*********************************************************************************************
กำหนดจุดยืนของมอนสเตอร์อย่างไร
[Image: 7stan.png]
จะอยู่ตรงกลางล่างสุดของรูป ดังรูป อยากให้ศัตรูอยู่ตำแหน่งไหนก็วางให้ดีเท่านั้นเอง
(ถ้ารูปแบทเทิ้ลใหญ่อาจวางลำบากนิด และอาจต้องมีการปรับระยะ OFFSET ใน 1 - Configuration ด้วย)


*********************************************************************************************

ลงแล้วมองไม่เห็นฟอนท์
[Image: 26480375.png]
ให้ไปที่สคริป [b]Main แล้วใส่[/b]
Code:
Font.default_name = $fontface = "CordiaUPC" #ใส่ฟอนท์ที่ต้องการ
Font.default_size = $fontsize = 40 #ใส่ขนาดฟอนท์ที่ต้องการ
บรรทัดต่อจาก begin ก็ได้

*********************************************************************************************

เออเรอร์อันนี้เกิดจากอะไร
[Image: 41012833.png]
วิธีแก้>>
ให้ก็อบสคริปในลิงค์นี้ไปวางต่อ

Status Icons
และอาการนี้เกิดจากไม่มีรูปไอคอนอาการต่างๆด้วย
แก้โดยการเอารูปไอคอน(ที่เอามาใช้เป็นอาการ)มาใส่ในโฟลเดอร์ Icons
โดยตั้งชื่อไอคอนว่า "อาการ-" + ชื่ออาการ
เช่น อาการพิษ ก็ตั้งชื่อว่า "อาการ-พิษ"


*********************************************************************************************

จะทำให้ตัวละครยิง ธนูหรือปืน(ไม่เคลื่อนที่เวลาโจมตี) ทำอย่างไร

วิธีเซต>>
ไปที่สคริป
Configuration
หาบรรทัดที่เขียนว่า
Code:
MNK_STATIONARY_WEAPONS = []
ใส่ id อาวุธ ประเภทที่ไม่มีการเคลื่อนที่ใน [] ได้เลย

*********************************************************************************************

จะเอา charater มาใช้เลย ต้องทำอย่างไร
วิธีเซต>>
ไปที่สคริป
Configuration
ไปที่
Code:
MNK_POSE1   =   1   #ยืนปกติ Sets the 'Ready Pose'  (MNK_POSE1)   #1 in your template
MNK_POSE2   =   2   #บาดเจ็บ Sets the 'Struck Pose' (MNK_POSE2)   #2 in your template
MNK_POSE3   =   3   #ใกล้ตาย Sets the 'Woozy Pose'  (MNK_POSE3)   #3 in your template
MNK_POSE4   =   4   #ป้องกัน Sets the 'Block Pose'  (MNK_POSE4)   #4 in your template
MNK_POSE5   =   5   #เดินซ้าย Sets the 'Charge Pose' (MNK_POSE5)   #5 in your template
MNK_POSE6   =   6   #เดินขวา Sets the 'Retreat Pose'(MNK_POSE6)   #6 in your template
MNK_POSE7   =   7   #โจมตี1 Sets the 'Attack Pose' (MNK_POSE7)   #7 in your template
MNK_POSE8   =   8   #โจมตี2 Sets the 'Item Pose'   (MNK_POSE8)   #8 in your template
MNK_POSE9   =   9   #ทักษะ Sets the 'Skill Pose'  (MNK_POSE9)   #9 in your template
MNK_POSE10  =  10   #ชนะ Sets the 'Victory Pose'(MNK_POSE10) #10 in your template
MNK_POSE11  =  11   #ตาย Sets the 'Defeat Pose' (MNK_POSE11) #11 in your template
MNK_POSE12  =  12   #ไอเทม
แก้เป็น
Code:
MNK_POSE1   =   2   #ยืนปกติ Sets the 'Ready Pose'  (MNK_POSE1)   #1 in your template
MNK_POSE2   =   2   #บาดเจ็บ Sets the 'Struck Pose' (MNK_POSE2)   #2 in your template
MNK_POSE3   =   2   #ใกล้ตาย Sets the 'Woozy Pose'  (MNK_POSE3)   #3 in your template
MNK_POSE4   =   2   #ป้องกัน Sets the 'Block Pose'  (MNK_POSE4)   #4 in your template
MNK_POSE5   =   2   #เดินซ้าย Sets the 'Charge Pose' (MNK_POSE5)   #5 in your template
MNK_POSE6   =   3   #เดินขวา Sets the 'Retreat Pose'(MNK_POSE6)   #6 in your template
MNK_POSE7   =   2   #โจมตี1 Sets the 'Attack Pose' (MNK_POSE7)   #7 in your template
MNK_POSE8   =   2   #โจมตี2 Sets the 'Item Pose'   (MNK_POSE8)   #8 in your template
MNK_POSE9   =   2   #ทักษะ Sets the 'Skill Pose'  (MNK_POSE9)   #9 in your template
MNK_POSE10  =  1   #ชนะ Sets the 'Victory Pose'(MNK_POSE10) #10 in your template
MNK_POSE11  =  4   #ตาย Sets the 'Defeat Pose' (MNK_POSE11) #11 in your template
MNK_POSE12  =  2   #ไอเทม
เวลาจะใช้ char อันไหนเป็น battle ก็ให้ก็อปรูปมาใส่ในโฟลเดอร์ battle ด้วย

*********************************************************************************************
Credit(อธิบาย) : Shinryu