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-3110.html)



สอนแก้โค๊ดเฉพาะจุดหน่อยครับ - lightningxii - 06-03-2017

[font=Arial][size=medium]

ขอคำแนะนำหน่อยครับ ไม่รู้จะ แก้โค๊ดตรงไหน (มือใหม่)
- ต้องการจะแก้ ให้บางส่วน ของหน้าจอ สเตตัสไม่แสดงผล
- ต้องการให้ตรงส่วนที่ชี้เป็นภาษาไทย ตรงส่วนอื่น ในเกมก็แสดงผลเป็นภาษาไทยหมด เพราะลง patch ไว้แล้ว แต่ตรงหน้าจอสเตตัส ผมใช้โปรแกรมช่วยสร้างด้วยโปรแกรม Default Menu System Enhancer มันเลย ไม่แสดงเป็นภาษาไทย
- ตรงเมนูด้านขวา item save quit เราสามารถ ขยายช่องมันตรงไหนได้ครับ อยากให้มันมีแค่ 3 ช่อง ผมปิดไม่ให้เมนูว่าง ๆ (ดั้งเดิม) ของมันทำงานได้แล้ว ส่วนที่ต้องการเหลือไว้มันไม่ต่อกันเลย แก้ตรงไหนดี

ตามรูปเลยครับ
https://www.img.in.th/image/fE8e


RE: สอนแก้โค๊ดเฉพาะจุดหน่อยครับ - Mikichan - 06-03-2017

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


RE: สอนแก้โค๊ดเฉพาะจุดหน่อยครับ - hengmana - 06-03-2017

อย่าลืมแก้ช่อง Scene_Save ตรง
Quote:$scene = Scene_Menu.new(4)
เป็น
Quote:$scene = Scene_Menu.new(1)
ด้วย เวลาเข้าเมนู Save แล้วกดออกให้เข้าคำสั่งบรรทัดเดิม


RE: สอนแก้โค๊ดเฉพาะจุดหน่อยครับ - lightningxii - 06-06-2017

(06-03-2017, 06:14 AM)Mikichan Wrote: ถ้าใช้สคริปต์อื่นนอกเหนือจากสคริปต์เดิมที่มีอยู่ใน RPG Maker XP อย่างในกรณีนี้ กรุณานำสคริปต์นั้นมาลงในกระทู้ด้วยค่ะ จะได้ช่วยแก้ปัญหาให้คุณได้

ครับผม


RE: สอนแก้โค๊ดเฉพาะจุดหน่อยครับ - lightningxii - 06-06-2017

ขอบคุณทุกท่านนะครับ
ผมไปลองแก้โค๊ดตามที่แนะนำมาแล้ว แต่ผมไม่รู้ว่าทำไมโปรแกรมช่วยสร้างเมนูไม่รองรับภาษาไทยเลย
ก็เลยลบโค๊ดพวกนั้นทิ้งไปแล้วครับ

ตอนนี้ผมไปแก้เมนูเองแบบ แมนนวล ลองปรับตามที่แนะนำ พยายามไล่หาไปทีละจุด
ตอนนี้ได้ตามนี้แล้วครับ

อยากแก้ ดังนี้ครับ
- ตัวละครที่แสดงภาพ อยากปรับให้ใหญ่กว่านี้ครับ
- อยาก ขยายกรอบ เมนู ด้านขวา ผมหาตำแหน่งปรับไม่เจอครับ (พยายามหามา2ชมแล้ว)
- เมนูด้านขวา ผมอยากใส่ icon ให้เหมือนที่ โปรแกรมสร้างเมนูทำได้น่ะครับ
- อยากให้ส่วนดำ ๆ ที่ไม่ใช่ ส่วนของหน้าต่าง เป็นค่าโปร่งใส จนเห็นภาพในเกม ครับ


RE: สอนแก้โค๊ดเฉพาะจุดหน่อยครับ - hengmana - 06-06-2017

Quote:- อยาก ขยายกรอบ เมนู ด้านขวา ผมหาตำแหน่งปรับไม่เจอครับ (พยายามหามา2ชมแล้ว)
มีให้ปรับอยู่ตรงช่อง Window_Command แต่ต้องก็อปสร้างอันใหม่นะ
ไม่งั้นอันที่เกี่ยวข้องกับมันจะเปลี่ยนไปด้วยนะ เช่น Scene_Title, Scene_End, Scene_Battle
ลองอ่านตรงในกระทู้ดูเป็นแนวทาง
http://irpg.in.th/thread-2411-post-24389.html#pid24389

Quote:- เมนูด้านขวา ผมอยากใส่ icon ให้เหมือนที่ โปรแกรมสร้างเมนูทำได้น่ะครับ
Window_Command สร้างอันใหม่ หาตรง
Code:
def draw_item(index, color)
    self.contents.font.color = color
    rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    ไว้ใส่คำสั่งโชว์รูป
    self.contents.draw_text(rect, @commands[index])
  end
คำสั่งโชว์รูป
icon = RPG::Cache.icon("ชื่อรูปในไฟล์ ICON")
rect0 = Rect.new(0, 0, icon.width, icon.height)
self.contents.blt(x, y, icon, rect0, 255เป็นค่าความชัดโปร่งใส )

Quote:- อยากให้ส่วนดำ ๆ ที่ไม่ใช่ ส่วนของหน้าต่าง เป็นค่าโปร่งใส จนเห็นภาพในเกม ครับ
RGSS1 การเขียน Script อย่างง่ายๆ บทที่ 3 การเขียน Scene เมนูต่างๆ
ในนี้มี การทำพื้นหลัง Scene แบบโปร่งใส (เห็นแม็พ) อยู่
http://irpg.in.th/thread-383.html


RE: สอนแก้โค๊ดเฉพาะจุดหน่อยครับ - lightningxii - 06-08-2017

ขอบคุณอีกครั้งครับ
ตอนนี้ แก้ในส่วน พื้นหลังโปร่งใส ได้แล้วครับ
แต่ยัง มึน ๆ กับ การ ขยายเมนู จริง ๆ ครับ ที่อ่าน ๆ ดู เข้าใจว่าต้องคัดลอดสคริปมาเป็นอีกไฟล์สคริปนึง ใส่ชื่อใหม่ แล้วก็ให้ scene ดึงจาก ไฟล์สคริปอันใหม่ แต่ก็ยังไม่เข้าใจจริง ๆ ว่าต้องแก้ตรงไหน ในไฟล์ใหม่ ถึงจะยืดขยายหน้าต่างนั้นได้ ขออภัยจริง ๆ ครับ ยังมองโค๊ดไม่ขาดขนาดนั้น
ส่วนการใส่ไอค่อนในเมนูด้านขวานี่ ถ้าผมเข้าใจไม่ผิดต้อง เข้าใจวิธีแก้ เมนูด้านขวาก่อน ถึงจะเพิ่มส่วนนี้เข้าไปได้

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


RE: สอนแก้โค๊ดเฉพาะจุดหน่อยครับ - lightningxii - 06-08-2017

หลังจากอ่านไปอ่านมา และมั่ว ๆ ไป เริ่มเข้าใจขึ้นมาบ้างแล้วครับ เกือบได้ตามต้องการแล้ว
ล่าสุด ได้ประมาณนี้


อันนี้ โค๊ดครับ ไม่รู้ว่า เหมือนกันว่าผิดตรงไหน /puke


ตอนนี้อยากแก้ ดังนี้ครับ
- แก้ภาพตัวละคร ให้ใหญ่ขึ้น
- แก้ในส่วน ไอค่อนกับตัวอักษรที่ทับกันมั่วมาก อยากจะเอา ภาพไอค่อนไว้ทางซ้ายของเมนูครับ

ขอบคุณอีกครั้งครับ


RE: สอนแก้โค๊ดเฉพาะจุดหน่อยครับ - hengmana - 06-08-2017

- แก้ภาพตัวละคร ให้ใหญ่ขึ้น
คำสั่งโชว์ ตัว character ในช่อง Window_MenuStatus
Quote: draw_actor_graphic(actor, x - 40, y + 80)
แล้วหา ตัวสร้างคำสั่ง draw_actor_graphic นี้ขึ้นมา (คลิ้กขวาตรงช่องแลัวกดค้นหา)อยู่ในช่อง
Show ContentSpoiler:
Code:
def draw_actor_graphic(actor, x, y)
    bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
    cw = bitmap.width / 4
    ch = bitmap.height / 4
    src_rect = Rect.new(0, 0, cw, ch)
    self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  end
จะแก้ข้างใน หรือ ก็อปสร้างอันใหม่เปลื่ยนชื่อใหม่ต่อข้างล่าง ก็แล้วแต่
โดยคำสั่ง โชว์รูปปกติ self.contents.blt
Quote:self.contents.blt(x, y, bitmap, src_rect)
และกำหนดตำแหน่งอาณาเขตช่องที่จะโชว์รูปแค่ไหน
Quote:src_rect = Rect.new(ตำแหน่งx, ตำแหน่งy, โชว์ความกว้างจากซ้ายไปขวา, โชว์ความสูงจากบนลงล่าง)

เปลี่ยนคำสั่งใหม่ โชว์รูปขยาย self.contents.stretch_blt
ตัวอย่าง ขยาย *2 (size = 2)
Code:
def draw_actor_graphic(actor, x, y)
        bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
       size = 2    
       cw = bitmap.width / 4
       ch = bitmap.height / 4
       src_rect = Rect.new(0, 0, cw, ch)
       dest_rect = Rect.new(x - (cw * size / 2), y -  (ch * size / 2), cw *size, ch *size)
       self.contents.stretch_blt(dest_rect, bitmap, src_rect)
    end
โดย dest_rect = Rect.new(ตำแหน่งx, ตำแหน่งy, ขยายความกว้างจากซ้ายไปขวา, ขยายความสูงจากบนลงล่าง)


- แก้ในส่วน ไอค่อนกับตัวอักษรที่ทับกันมั่วมาก อยากจะเอา ภาพไอค่อนไว้ทางซ้ายของเมนูครับ
Quote:def draw_item(index, color)
self.contents.font.color = color
rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
ไว้ใส่คำสั่งโชว์รูป
self.contents.draw_text(rect, @commands[index])
end
แก้เป็น
rect = Rect.new(4 + 26, 32 * index, self.contents.width - 8 - 26, 32)
ตรง 4 ให้+เพิ่ม 26 ขยับtextไปทางขวาเล็กน้อย แล้ว (- 26) ลดอาณาเขตtextให้แคบลง


RE: สอนแก้โค๊ดเฉพาะจุดหน่อยครับ - lightningxii - 06-09-2017

ขอบคุณทุกท่านอีกครั้งนะครับ จากใจเลย เป็นบุญคุณมาก
หลังจาก /puke ไปหลายรอบ ในที่สุดก็แก้ได้สักที 5555
ได้ตามต้องการแล้วสำหรับตอนนี้


โดยแก้โค๊ดแล้วได้ ดังนี้ครับ


ตอนแรกผมใส่ คำสั่งแสดงไอค่อนซ้อนข้างในแล้ว มีปัญหากับตัวอักษร แก้เท่าไหร่มันก็ทับกัน เลยลองแยกโค๊ดดูปรากฎว่าได้ซะงั้น

ขอบคุณมาก ๆ