irpg Community
ปัญหาการเช็คเงื่อนไข และอื่นๆ - 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: ปัญหาการเช็คเงื่อนไข และอื่นๆ (/thread-3090.html)



ปัญหาการเช็คเงื่อนไข และอื่นๆ - Last0rder - 05-04-2017

1. ถ้ามีฮีโร่หลายคน จะเช็คยังไงว่าตอนนั้นในกลุ่มมีคนใดคนหนึ่งถืออาวุธตรงตามเงื่อนไขที่เราต้องการ โดยที่ไม่ต้องไล่เช็คทีละคนได้รึเปล่าคะ?
2. จะเช็คยังไงว่าฮีโร่ที่ต้องการอยู่ตำแหน่งแรกของกลุ่ม (เป็นหัวหน้าทีม)
3. จะเช็คไอเทมว่ามีจำนวนเท่าไรยังไงคะ?
4. เวลาแสดงรูปภาพ อยากให้กรอบข้อความอยู่ด้านหลังรูปภาพ ต้องไปปรับตรงไหนคะ?


RE: ปัญหาการเช็คเงื่อนไข และอื่นๆ - Mikichan - 05-05-2017

1. ถ้ามีฮีโร่หลายคน จะเช็คยังไงว่าตอนนั้นในกลุ่มมีคนใดคนหนึ่งถืออาวุธตรงตามเงื่อนไขที่เราต้องการ โดยที่ไม่ต้องไล่เช็คทีละคนได้รึเปล่าคะ?

ข้อนี้ไม่น่าใจนะ แต่คิดว่าไม่น่าจะมี คงต้องใช้เงื่อนไขตรวจอาวุธของตัวละครแต่ละตัวเอาเอง



2. จะเช็คยังไงว่าฮีโร่ที่ต้องการอยู่ตำแหน่งแรกของกลุ่ม (เป็นหัวหน้าทีม)

RPG Maker XP ไม่มีหัวหน้าปาร์ตี้นะ (ถ้าไม่ได้สร้างระบบต่อสู้ขึ้นมาเอง)



3. จะเช็คไอเทมว่ามีจำนวนเท่าไรยังไงคะ?

ใช้ตัวแปรช่วยนับจำนวนไอเทมค่ะ ในหน้าควบคุมตัวแปร เลือก "ตัวแปร" ที่จะเก็บจำนวนไอเทม แล้วกดเลือก "เท่ากับ" ในบริเวณด้านล่างเลือก "ไอเทม" แล้วเลือกไอเทมที่ต้องการจะนับจำนวน

[Image: image-CF97_590B7190.jpg]



4. เวลาแสดงรูปภาพ อยากให้กรอบข้อความอยู่ด้านหลังรูปภาพ ต้องไปปรับตรงไหนคะ?

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



ขอนอกเรื่องนิด เห็นคุณตั้งกระทู้ถามปัญหาต่าง ๆ ใน RPG Maker XP ซึ่งเป็นรุ่นที่เก่าล้าสมัยมากแล้ว มิกิแนะนำว่าให้คุณเปลี่ยนมาใช้ RPG Maker MV ดีกว่าค่ะ เป็นเวอร์ชันล่าสุดที่เพิ่งออกมาเมื่อปี 2015 ส่วน RPG Maker XP มันออกมาตั้งสิบกว่าปีแล้ว ตัวช่วยในการสร้างเกมจึงมีไม่มากเท่าเวอร์ชันใหม่


RE: ปัญหาการเช็คเงื่อนไข และอื่นๆ - OP_Jum_RPG - 05-05-2017

แวะมาเติมข้อ 1 กับ 2 ให้

ข้อ 1 ของท่านโซระจะมีปัญหาว่า ถ้าไม่รู้ว่าตอนนั้นใครอยู่ในปาร์ตี้บ้าง จะใช้ไม่ได้นะครับ
ไม่งั้นก็เช็คกันตายเลย

1. เช็คเงื่อนได้วยสคริปต์ 2 ชั้น
ชั้นแรก เช็คว่ามีตัวละครอยู่ในชองนั้นหรือเปล่า (จริงแค่กัน error ถ้ารู้จำนวนแน่นอนก็ไม่ต้องใส่ก็ได้)
Code:
$game_party.actors[0] != nil
ชั้นที่ 2
Code:
$game_party.actors[0].armor1_id == 1
0 ตัวหน้าหมายถึงตำแหน่งในปาร์ตี้ โดย 0 คือคนแรก
1 ตัวหลังคือ ID อาวุธตาม Database ที่เราจะใช้เป็นเงื่อนไข
ดูแล้วไม่ต่างจากวิธีถึกเท่าไรแฮะ

2. เช็คเงื่อนได้วยสคริปต์
Code:
$game_party.actors[0].id == 1
0 ตัวหน้าหมายถึงตำแหน่งในปาร์ตี้ โดย 0 คือคนแรก
1 ตัวหลังคือ ID ตาม Database ที่เราจะใช้เป็นเงื่อนไข

[Image: fgdgdgd_1.jpg]


RE: ปัญหาการเช็คเงื่อนไข และอื่นๆ - Last0rder - 05-05-2017

ขอบคุณทุกคนที่เข้ามาช่วยตอบคำถามนะคะ เอาวิธีของแต่ละคนไปทำตามแล้ว ใช้ได้ผลค่ะ

--- ผลทดสอบ --

ข้อ 1 เช็คตามวิธีของคุณ OP_Jum_RPG แล้วมันเป็นการเช็คเกราะที่สวมใส่ค่ะ
พอสังเกตรูปภาพดีๆ ตรงหน้าต่างเช็คเงื่อนไขเขียนเป็น weapon_id เลยลองเอาไปปรับดู
ตอนนี้เช็คอาวุธที่สวมใส่ได้แล้ว

ข้อ 2 ใช้ได้ทั้งวิธีของคุณ sora และคุณ OP_Jum_RPG

ข้อ 3 ใช้วิธีตามที่คุณ Mikichan แนะนำ

ข้อ 4 ใช้สคริปต์ของคุณ sora ได้ผลค่ะ แต่กลายเป็นติดปัญหาสระลอย ส่วนตัวแล้วไม่คิดมาก
เรื่องปัญหาสระลอยค่ะ เพราะพอจะหาทางแก้ได้อยู่

--------------

ขอบคุณทุกท่านอีกครั้งนะคะ ^o^ // โค้งงามๆ

ป.ล. @Mikichan พอดีมีโปรเจ็คของ XP ที่เริ่มไว้นานแล้ว จะรื้อเอาไปสร้างกับเวอร์ชั่นอื่นก็เสียดายตัวละครที่ดอทมาสำหรับ XP แผนที่ที่สร้าง และระบบอื่นๆ ที่เขียนค้างไว้ เลยอยากทำใน XP ต่อไปก่อนค่ะ ถ้าเกมทำต่อไปถึงเป้าที่ตั้งไว้ได้แล้ว จะเปลี่ยนมา MV ตามที่แนะนำมานะคะ


RE: ปัญหาการเช็คเงื่อนไข และอื่นๆ - OP_Jum_RPG - 05-05-2017

ก็อบมาผิดอัน แล้วลืมแก้ ต้องเป็น
Code:
$game_party.actors[0].weapon_id
ตามนั้นครับ

ข้อ 4
จริงๆแก้บรรทัดเดียวเอง

ใน Window_Message ตัวที่ใช้ได้
Code:
def initialize
    super(80, 304, 480, 160)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.visible = false
    self.z = 9998
    @fade_in = false
    @fade_out = false
    @contents_showing = false
    @cursor_width = 0
    self.active = false
    self.index = -1
  end

แก้บรรทัด
Code:
self.z = 9998
เปลี่ยน 9998 ให้เหลือน้อยๆ (0 เลยก็ได้)
ก็ใช้ได้แล้วครับ

*******************************************
ขอพูดถึงเรื่องเวอร์ชั่นนิดนึง
อย่ายึดติดกับคำว่า เก่า-ใหม่ ครับ ผมคนนึงล่ะที่ยังใช้ XP อยู่
ไม่ใช่ว่า MV จะดีกว่า/ง่ายกว่า ไปซะทุกเรื่อง
ว่ากันตามตรง XP ต่างหากที่ของสนับสนุนจะมากกว่า MV เพราะอยู่มานานกว่า

พิจารณาจากโปรเจ็คต์ที่มีอยู่ และความเหมาะสมในเกมที่จะสร้างจะดีกว่าครับ
เวลาผมสร้าง ผมก็กระโดดไปกระโดดมา แล้วแต่ว่าเกมไหนเหมาะกับเวอร์ชั่นไหน


RE: ปัญหาการเช็คเงื่อนไข และอื่นๆ - Last0rder - 05-05-2017

ข้อ 4 แก้ตามคุณ OP_Jum_RPG แล้ว บรรทัดเดียวได้ผลจริงๆ ค่ะ \^o^/