หน้าเว็บ

วันพุธที่ 27 พฤษภาคม พ.ศ. 2558

[RmXP] GubiD's Tactical Battle System

GubiD's Tactical Battle System (GTBS)
สำหรับ RPG Maker XP

ต้นฉบับ
อันนี้เวอร์ชั่นที่ผมแก้ไข ให้ได้ EXP ตอนกำจัดศัตรู ตาม Database เลย

ในวีดีโอนี้เป็นเวอร์ชั่นเก่านะครับ

วิธีใช้งานเบื้องต้น
ในระบบนี้ จะสร้างฉากต่อสู้จำลองขึ้นในแผนที่ โดยอีเวนท์ที่ไม่เกี่ยวข้อง จะถูกลบหายไปชั่วคราว

1. การกำหนด Event ในแผนที่ ในฉากต่อสู้ (ไม่ต้องใส่รูปตัวละคร)
- สำหรับตัวละครผู้เล่น ให้เลือกอย่างใดอย่างหนึ่ง
  • ให้กำหนดชื่ออีเวนท์เป็น actor แล้วตามด้วย id ของตัวละคร (ตามปาร์ตี้)
  • ให้กำหนดชื่ออีเวนท์เป็น place จำนวนกี่ช่องก็ได้ และเมื่อเข้าฉากต่อสู้ เกมจะให้เาเลือกวางตัวละครเอง
** หากมีทั้งสองเงื่อนไข เกมจะให้เราใช้ได้เฉพาะ place เท่านั้น
** ถ้าจะใช้ place สคริปต์ -GTBS_Engine_Settings-
บรรทัด 29: CHOOSE_START = true
ต้องเป็น True ไม่ง้นจะ error ทันที

- สำหรับตัวละครศัตรู
ให้กำหนดชื่ออีเวนท์เป็น enemy แล้วตามด้วย id ของศัตรู (ตามปาร์ตี้ศัตรู)
** สามารถใส่ซ้ำได้ ดังนั้นจึงไม่จำเป็นต้องใส่ศัตรูซ้ำกันในกลุ่มเดียวกัน **

- ตัวละคร neutral (พวกเรา แต่เราควบคุมไม่ได้)
ให้กำหนดชื่ออีเวนท์เป็น neutral แล้วตามด้วย id ของตัวละคร (ตามปาร์ตี้) ลบด้วย 50
(id 1 คือ เบอร์ 50, id 2 คือ เบอร์ 52)

ตัวละคร neutral จะต้องเป็นตัวละครเบอร์ 50 ขึ้นไปเท่านั้น
แต่ ถ้ากลัว 49 ตัวจะไม่พอ ก็ไม่ต้องห่วง
เพราะเบอร์ 50 ขึ้นไป เป็นได้ทั้งสองอย่าง ดังนั้น ใช้ได้อย่างสบายใจ


2. การกำหนด ค่าพลังและ Character ที่ใช้ในฉากต่อสู้
ตั้งใน Database ตามปกติ
โดยเกมจะใช้ไฟล์ Character ที่ชื่อตรงกับไฟล์ Battler ที่เลือกไว้ (รูปอีเวนท์ไม่มีผลใดๆ)

3. การเข้าสู่ฉากต่อสู้
ใช้คำสั่งเข้าฉากต่อสู้ตามปกติ

4. การกำหดเงื่อนไขการแพ้/ชนะ
- เงื่อนไขการชนะ ให้ใช้คำสั่ง Call Script แล้วใส่
tbs_victory(condition, value, Common Event ID)
  • "reach",[x,y]                ไปให้ถึงตำแหน่งที่กำหนด
  • "boss",enemy id           กำจะัดศํตรูที่กำหนด (id ตามกลุ่มศัตรู)
  • "holdout", turn             รอเวลา
  • Common Event ID คือ Common Event ที่จะรันขึ้นมาตอนจบการต่อสู้
ถ้าไม่กำหนด จะเป็น จัดการศัตรูทั้งหมด
ถ้าไม่ใช้อันไหน ให้ใส่ 'nil' ไว้ ยกเว้น common event ให้เว้นว่างไปเลย

- เงื่อนไขการแพ้ ให้ใช้คำสั่ง Call Script แล้วใส่
tbs_failure(condition, value, Common Event ID)
  • "death",id                    เมื่อตัวะครที่กำหนดาย
  • "holdout", turn             เมื่อถึงเทิร์นที่กำหนด
  • Common Event ID คือ Common Event ที่จะรันขึ้นมาตอนจบการต่อสู้
ถ้าไม่กำหนด จะเป็น ฝั่งเราตายหมด
ถ้าไม่ใช้อันไหน ให้ใส่ 'nil' ไว้ ยกเว้น common event ให้เว้นว่างไปเลย

5.ตั้งค่าระยะการเดิน/โจมตี/สกิล/ไอเทม
ในสคริปต์ GTBS_Move/Weapon/Skill-
  • ระยะการเดินของผู้เล่น อยู่ที่ def self.move_range(class_id)  (ตามคลาส)
    • when id ; r = จำนวนช่อง
  •  ระยะการเดินของศัตรู อยู่ที่ def self.enemy_move(enemy_id)  (ตาม Database)
    •  when id ; r = จำนวนช่อง
  •  ระยะการโจมตีของอาวุธ อยู่ที่ def self.w_range(id)  (id ของอาุธ)
    • when id; range = [ระยะไกลสุด, ระยะเว้นรอบตัวที่ตีไม่ได้,ธนู?, LTE, AOE]
      • LTE คือ ถ้าอยู่ในแนวเดียวกันจะโดนทุกตัวที่อยู่ในระยะ 
      • AOE คือ โดนตัวรอบๆในระยะที่กำหนดด้วย
  • ระยะการโจมตีของศัตรู อยู่ที่ def self.m_range(id)
    • ตั้งค่าเหมือนอาวุธผู้เล่น
  • ระยะของสกิล อยู่ที่  def self.skill_range(id)
    • [RANGE, Field, LINE_SKILL?, exclude_caster?]
      • LINE_SKILL?  ถ้าอยู่ในแนวเดียวกันจะโดนหมด รวมถึงพวกเดียวกันด้วย
      • exclude_caster? อันนี้ไม่ทราบ
  • ระยะของไอเทม อยู่ที่    def self.item_range(id)
    •  [range, Field, Skill_ID]  
      • RANGE ระยะไกลสุด
      • Field โดนรอบๆในระยะที่กำหนดด้วย
      • Skill_ID ถ้าใส่ไว้ จะเป็นการร่ายสกิลแทน (ใส่ 0 ถ้าไม่ต้องการ)
  • อนิเมชั่นของ อาวุธ/สกิล/ไอเทม ตั้งใน Database ตามปกติ
  • ระยะการรอของสกิล ตั้งได้ที่  def self.skill_wait(id)
6. Class และ Level ของศัตรู เซ็ทที่ -Enemy Level/Class-
  • Class ไว้โชว์เฉยๆ ไม่มีผลอะไร   ID => "Class" 
  • Level มีผลกับ EXP ที่ได้หลังการโจมตี ID => Level

7. รูปตอนตาย เซ็ทที่ -GTBS_Char/Enemy Death-

8. ATB/TEAM Battle
 $game_system.cust_battle = "TEAM"
หรือ
 $game_system.cust_battle = "ATB"

สคริปต์ Extra Troop Member
เป็นสคริปต์ที่จะทำให้สามารถเพิ่มจำนวนศัตรูในกลุ่มได้ โดยกำหนด

case troop_id
    when troop_id  ใส่เลขตาม Database
      extras = [id, id, id,...]    ใส่ id ศัตรูตาม Databaseที่เราต้องการเพิ่มเข้าไป
    end
โดยจะได้หมายเลขต่อจากที่ใส่ไว้ในกลุ่มศัตรูเดิม

1 ความคิดเห็น: